BestCoder #37 Rikka with string (hdu 5205)

2024-04-09 16:08
文章标签 string 37 hdu bestcoder rikka 5205

本文主要是介绍BestCoder #37 Rikka with string (hdu 5205),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

// 这题一开始看的时候觉得就是取最右边的问号,依次从大到小枚举
// 注意没有?和?在中间的情况特判,结果wa了十一发,还是没有找到
// 错误在哪里,看了一下discuss里面的数据发现5 b??ab这组用我先开始
// 的思路是跪了的。我的会输出QwQ。。。
//
// 然后看了看大牛们的思路,发现自己所谓的最右边是错的,这题要求字典序最小
// 可以先全部把?填成a,判断是否回文,
// 如果不是回文直接输出,
// 如果是回文,那么我们可以直接把最右边的不是中间的填成b,输出就好了
// 这是第二种的做法
// 
// 还有一种就是爆搜,分情况讨论,发现爆搜的魅力是如此的强大,我要学爆搜啦
// 555,哎,就其原因,还是自己太水了,
// 今天听到大牛的一句话,没有ac不了的题目,只有懒惰的acmer
// 继续练吧。。。。// 第一次的代码是错误的,只是留着作为惊醒,望多多原谅//const int maxn = 1008;
//char s[maxn];
//int n;
char ch[maxn];
//int mark;
//int cnt;
//bool isp(char* s){
//	for (int i=0;i<n/2;i++)
//		if (s[i]!=s[n-1-i])
//			return false;
//	return true;
//}
//
//bool get(){
//	for (int i=0;i<26;i++){
//		s[mark] = i + 'a';
//		if (!isp(s)){
//			puts(s);
//			return true;
//		}
//	}
//	return false;
//}
//
//void solve(){
//	mark = -1 ;
//	for (int i=0;i<n;i++)
//		if (s[i]=='?'){
//			mark = i;
//		}
//	for (int i=0;i<n;i++)
//		if (s[i]=='?'){
//			s[i] = 'a';
//		}
//	//puts(s);
//	if (mark==-1){
//		if (isp(s))
//			puts("QwQ");
//		else
//			puts(s);
//	}
//	else {
//		if (isp(s)&&mark==n/2&&n%2!=0){
//			puts("QwQ");
//			return ;
//		}
//		bool flag = get();
//	}
//}
//
//int main() {
//    freopen("G:\\Code\\1.txt","r",stdin);
//	while(scanf("%d",&n)!=EOF){
//		scanf("%s",s);
//		solve();
//	}
//	return 0;
//}//#include <algorithm>
//#include <bitset>
//#include <cassert>
//#include <cctype>
//#include <cfloat>
//#include <climits>
//#include <cmath>
//#include <complex>
//#include <cstdio>
//#include <cstdlib>
//#include <cstring>
//#include <ctime>
//#include <deque>
//#include <functional>
//#include <iostream>
//#include <list>
//#include <map>
//#include <numeric>
//#include <queue>
//#include <set>
//#include <stack>
//#include <vector>
//#define ceil(a,b) (((a)+(b)-1)/(b))
//#define endl '\n'
//#define gcd __gcd
//#define highbit(x) (1ull<<(63-__builtin_clzll(x)))
//#define popcount __builtin_popcountll
//typedef long long ll;
//using namespace std;
//const int mod = 1000000007;
//const long double pi = acos(-1.l);
//
//template<class t> inline t lcm(const t& a, const t& b) { return a/gcd(a, b)*b; }
//template<class t> inline t lowbit(const t& x) { return x&-x; }
//template<class t> inline t maximize(t& a, const t& b) { return a=a<b?b:a; }
//template<class t> inline t minimize(t& a, const t& b) { return a=a<b?a:b; }
//
//const int maxn = 1008;
//char s[maxn];
//int n;
//
//bool isp(char* s){
//	for (int i=0;i<n/2;i++)
//		if (s[i]!=s[n-1-i])
//			return false;
//	return true;
//}
//
//
//void init(){
//	scanf("%s",s);
//}
//
//void solve(){
//	vector<int> v;
//	for (int i=0;i<n;i++)
//		if (s[i]=='?'){
//			s[i]='a';
//			v.push_back(i);
//		}
//	if (!isp(s))	puts(s);
//	else {
//		bool flag = false;
//		for (int i=v.size()-1;i>=0;i--){
//			if (!(v[i]==n/2&&(n&1)==1)){
//				s[v[i]] = 'b';
//				flag = true;
//				break;
//			}
//		}
//		if (flag)	puts(s);
//		else puts("qwq");
//	}
//}
//
//int main() {
//    freopen("g:\\code\\1.txt","r",stdin);
//	while(scanf("%d",&n)!=eof){
//		init();
//		solve();
//	}
//	return 0;
//}#include <algorithm>
#include <bitset>
#include <cassert>
#include <cctype>
#include <cfloat>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <deque>
#include <functional>
#include <iostream>
#include <list>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <stack>
#include <vector>
#define ceil(a,b) (((a)+(b)-1)/(b))
#define endl '\n'
#define gcd __gcd
#define highBit(x) (1ULL<<(63-__builtin_clzll(x)))
#define popCount __builtin_popcountll
typedef long long ll;
using namespace std;
const int MOD = 1000000007;
const long double PI = acos(-1.L);template<class T> inline T lcm(const T& a, const T& b) { return a/gcd(a, b)*b; }
template<class T> inline T lowBit(const T& x) { return x&-x; }
template<class T> inline T maximize(T& a, const T& b) { return a=a<b?b:a; }
template<class T> inline T minimize(T& a, const T& b) { return a=a<b?a:b; }const int maxn = 1008;
int n;
char s[maxn];
bool isp(char* s){for (int i=0;i<n/2;i++)if (s[i]!=s[n-1-i])return false;return true;
}bool flag;void dfs(int i){if (flag==true) return ;if (i==n){if (!isp(s)){puts(s);flag = true;}return ;}if (s[i]>='a'&&s[i]<='z'){dfs(i+1);}else{for (int j=0;j<26;j++){s[i] =j + 'a';dfs(i+1);s[i] = '?';}}
}void init(){scanf("%s",s);flag = false;
}void solve(){dfs(0);if (!flag)puts("QwQ");
}int main() {freopen("g:\\code\\1.txt","r",stdin);while(scanf("%d",&n)!=EOF){init();solve();}return 0;
}

这篇关于BestCoder #37 Rikka with string (hdu 5205)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/888607

相关文章

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

C#数据结构之字符串(string)详解

《C#数据结构之字符串(string)详解》:本文主要介绍C#数据结构之字符串(string),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录转义字符序列字符串的创建字符串的声明null字符串与空字符串重复单字符字符串的构造字符串的属性和常用方法属性常用方法总结摘

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

java String.join()的使用小结

《javaString.join()的使用小结》String.join()是Java8引入的一个实用方法,用于将多个字符串按照指定分隔符连接成一个字符串,本文主要介绍了javaString.join... 目录1. 方法定义2. 基本用法2.1 拼接多个字符串2.2 拼接集合中的字符串3. 使用场景和示例3

C# string转unicode字符的实现

《C#string转unicode字符的实现》本文主要介绍了C#string转unicode字符的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录1. 获取字符串中每个字符的 Unicode 值示例代码:输出:2. 将 Unicode 值格式化

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

IDEA如何将String类型转json格式

《IDEA如何将String类型转json格式》在Java中,字符串字面量中的转义字符会被自动转换,但通过网络获取的字符串可能不会自动转换,为了解决IDEA无法识别JSON字符串的问题,可以在本地对字... 目录问题描述问题原因解决方案总结问题描述最近做项目需要使用Ai生成json,可生成String类型

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

poj 3974 and hdu 3068 最长回文串的O(n)解法(Manacher算法)

求一段字符串中的最长回文串。 因为数据量比较大,用原来的O(n^2)会爆。 小白上的O(n^2)解法代码:TLE啦~ #include<stdio.h>#include<string.h>const int Maxn = 1000000;char s[Maxn];int main(){char e[] = {"END"};while(scanf("%s", s) != EO

hdu 2093 考试排名(sscanf)

模拟题。 直接从教程里拉解析。 因为表格里的数据格式不统一。有时候有"()",有时候又没有。而它也不会给我们提示。 这种情况下,就只能它它们统一看作字符串来处理了。现在就请出我们的主角sscanf()! sscanf 语法: #include int sscanf( const char *buffer, const char *format, ... ); 函数sscanf()和