ural1007 Code Words (字符串处理)
来源:互联网 发布:小狐狸加速器mac 编辑:程序博客网 时间:2024/05/27 02:29
三种情况分别对应m < n , m = n , m > n。然后对每一位进行枚举判断即可。有几个地方要注意一下:
1. 对于n = m的情况,只能将1改为0,而不能将0改为1。
2. 数据中字符串的数目并不是n。
3. 可能原字符串就是正确答案(样例中已经包含了这种情况)。
#include <bits/stdc++.h>using namespace std;char s[3010], ss[3010];bool IsOk(char *s, int n) { int ans = 0; for (int i = 0; s[i] != '\0'; i++) { if (s[i] == '1') ans += i + 1; } return ans % (n + 1) == 0;}void StrAdd(char *s, int p, char c) { for (int i = strlen(s) + 1; i > p; i--) { s[i] = s[i - 1]; } s[p] = c;}void StrDel(char *s, int p) { int m = strlen(s); for (int i = p; i < m; i++) { s[i] = s[i + 1]; }}int main() { int n; scanf("%d", &n); while (scanf("%s", s) != EOF) { int m = strlen(s); if (m == n) { if (IsOk(s, n)) { puts(s); } else { for (int i = 0; i < m; i++) { strcpy(ss, s); ss[i] = '0'; if (IsOk(ss, n)) { puts(ss); break; } } } } else if (m < n) { for (int i = 0; i <= m; i++) { strcpy(ss, s); StrAdd(ss, i, '0'); //puts(ss); if (IsOk(ss, n)) { puts(ss); break; } ss[i] = '1'; if (IsOk(ss, n)) { puts(ss); break; } } } else { for (int i = 0; i < m; i++) { strcpy(ss, s); StrDel(ss, i); if (IsOk(ss, n)) { puts(ss); break; } } } } return 0;}
0 0
- ural1007 Code Words (字符串处理)
- UVA 10941 - Words adjustment(BFS+字符串处理)
- 5.【字符串】Reverse Words in a String--Accepted Java code
- ural 1007 Code Words
- ural 1007 Code Words
- URAL 1007 - Code Words
- LeetCode 151 Reverse Words in a String (字符串处理 推荐)
- Code[VS] 3301 Square words
- code[vs]3301 Square words
- 【Google Code Jam】Reverse Words
- 【字符串处理】文明的复兴 words.pas/c/cpp/in/out
- Code Forces 81 A. Plug-in 深搜||巧妙字符串处理
- Code Forces B. Strings of Power 字符串处理
- Google code jam: Problem B. Reverse Words
- Google Code Jam Notes - Reverse Words - Java
- (code jam)Problem B. Reverse Words
- Google Code Jam-Problem B. Reverse Words
- Code Jam - Reverse Words for Python
- Android从服务器取数据
- Android RadioButton自定义背景色圆角样式的方法
- hdu 1133 Buy the Ticket(卡特兰数+大整数)
- Java中main函数里面的的args
- 常见git命令
- ural1007 Code Words (字符串处理)
- Android 开发中OkHttp3解析
- 算法提高 最大乘积
- 北大 c++ 2.2 C++语言历史
- 2016蓝桥杯第十题答案
- leecode 解题总结:290. Word Pattern
- 使用maven+git+jekin实现自动打包
- 注册正则表达式的运用
- 算法第一周LeetCode解题报告