codeforces 496B. Secret Combination 解题报告
题目链接:http://codeforces.com/problemset/problem/496/B
题目意思:给出 n 位数你,有两种操作:1、将每一位数字加一(当某一位 > 9 时只保存个位数) 2、循环右移(最右边那个数字去到第一位上)。问经过若个两种操作的组合后,得到的最小数值为多少。
我一开始用了vector来做= =,没有考虑到循环右移的情况。以为每一位从1加到9之后,找出最小的那个就可以.....
留个纪念(错误代码,别学,如果没有循环右移的限制,这个是对的)
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <vector>
using namespace std; const int maxn = 1e3 + ;
vector<int> v[maxn];
int a[maxn]; int main()
{
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
#endif // ONLINE_JUDGE int n;
char ch;
while (scanf("%d", &n) != EOF)
{
getchar();
v[].clear();
for (int i = ; i < n; i++)
{
scanf("%c", &ch);
a[i] = ch - '';
}
for (int i = ; i < ; i++)
{
for (int j = ; j < n; j++)
{
int add = a[j] + (i+);
v[i].push_back(add % );
}
sort(v[i].begin(), v[i].end());
}
sort(v, v+);
for (int i = ; i < n; i++)
printf("%d", v[][i], i == n- ? ' ' : '\n');
}
return ;
}
按照步骤一步一步模拟即可。但是需要用到 b 数组来还原原始的数字。还有就是循环右移其实等价于循环左移!最后就是strcmp() 放到 get_reverse() 后面,这样需要两个strcmp 判断(循环外的add后面),这样放置只需要用到一次 strcmp() 就行了。放置位置也是值得注意的,不要颠倒了。
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std; const int maxn = 1e3 + ;
char a[maxn];
int n; void add(char a[], int added)
{
for (int i = ; i < n; i++)
{
int tmp = (a[i]-'' + added) % ;
a[i] = tmp + '';
}
} void get_reverse(char a[])
{
char tmp = a[];
for (int i = ; i < n; i++)
a[i-] = a[i];
a[n-] = tmp;
} int main()
{
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
#endif // ONLINE_JUDGE while (scanf("%d", &n) != EOF)
{
getchar();
char b[maxn] = {''};
char ans[maxn] = {''};
for (int i = ; i < n; i++)
scanf("%c", &a[i]);
for (int i = ; i <= ; i++)
{
strcpy(b, a);
add(a, i);
for (int j = ; j < n; j++)
{
if (strcmp(ans, a) > )
strcpy(ans, a);
get_reverse(a);
}
strcpy(a, b);
}
puts(ans);
}
return ;
}
codeforces 496B. Secret Combination 解题报告的更多相关文章
- CodeForces 496B Secret Combination
Secret Combination Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u ...
- Codeforces Round 665 赛后解题报告(暂A-D)
Codeforces Round 665 赛后解题报告 A. Distance and Axis 我们设 \(B\) 点 坐标为 \(x(x\leq n)\).由题意我们知道 \[\mid(n-x)- ...
- Codeforces Round 662 赛后解题报告(A-E2)
Codeforces Round 662 赛后解题报告 梦幻开局到1400+的悲惨故事 A. Rainbow Dash, Fluttershy and Chess Coloring 这个题很简单,我们 ...
- cf 496B Secret Combination
题目链接:B. Secret Combination You got a box with a combination lock. The lock has a display showing n d ...
- Codeforces Round #277.5 解题报告
又熬夜刷了cf,今天比正常多一题.比赛还没完但我知道F过不了了,一个半小时贡献给F还是没过--应该也没人Hack.写写解题报告吧= =. 解题报告例如以下: A题:选择排序直接搞,由于不要求最优交换次 ...
- codeforces B. Simple Molecules 解题报告
题目链接:http://codeforces.com/problemset/problem/344/B 题目意思:这句话是解题的关键: The number of bonds of an atom i ...
- codeforces 591A. Wizards' Duel 解题报告
题目链接:http://codeforces.com/problemset/problem/591/A 题目意思:其实看下面这幅图就知道题意了,就是Harry 和 He-Who-Must-Not-Be ...
- codeforces 582A. GCD Table 解题报告
题目链接:http://codeforces.com/problemset/problem/582/A 网上很多题解,就不说了,直接贴代码= = 官方题解: http://codeforces.com ...
- codeforces 581C. Developing Skills 解题报告
题目链接:http://codeforces.com/problemset/problem/581/C 题目意思:给出 n 个数:a1, a2, ..., an (0 ≤ ai ≤ 100).给出值 ...
随机推荐
- css3动画由浅入深总结
阅读目录 一:过渡动画---Transitions 二:Animations功能 三:translate(tx,ty) 四:scale(x,y) 五:rotate(x): 5.1:skew(x,y): ...
- OC第三节——NSArray和NSMutableArray
1.OC数组和c数组的区别 C语言的数组: 相同类型变量的有序结合. 类型:可以是简答数据类型.构造数据类型 int a[10 ...
- iOS开发中乱用hook可能导致灾难
今天有同事遇到问题,他重写viewDidAppear:方法,但是,代码并没有执行到.后来我发现,是另个一同事用了黑魔法搞的鬼,而且他本人并不知道这么做会产生影响.(本文中所有黑魔法指Swizzle) ...
- Linux文件处理命令
1.权限处理 1.1 方法一 使用+-=的方法 1.1.1权限 rwx r 读 w 写 x 执行 1.1.2用户 ugoa u 所有者 g 用户组 o 其他人 a 表示以上所有 修改文件的方法 例: ...
- git 教程(2)--创建版本库
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或 ...
- (备忘)android清单文件中<meta-data>标签,以及<intent-filter>下的<data>标签及其他标签
1.metadata可以写在application下也可以写在activity下,作为全局或activity内共享的数据 以键值对形式保存 <meta-data android:name=&qu ...
- Webclent基本操作
/** * @Title: webclientTest.java * @Package webclient * @Description: TODO(用一句话描述该文件做什么) * @author A ...
- JQuery textarea中val(),text()
val()是当前输入框的前台显示内容 text()是原始内容, 调试时浏览器审查元素可以发现如果只改变val(),text()值是不会改变的
- jsoup解析HTML
Connection conn = Jsoup.connect(String url); conn.data("txtBill", key);// 设置关键字查询字段 Docume ...
- python gui之tkinter界面设计pythonic设计
ui的设计,控件id的记录是一件比较繁琐的事情. 此外,赋值和读取数据也比较繁琐,非常不pythonic. 有没有神马办法优雅一点呢?life is short. 鉴于控件有name属性,通过dir( ...