Codeforces Round #352 (Div. 2),A题与B题题解代码,水过~~
1 second
256 megabytes
standard input
standard output
Every year, hundreds of people come to summer camps, they learn new algorithms and solve hard problems.
This is your first year at summer camp, and you are asked to solve the following problem. All integers starting with 1 are written in one line.
The prefix of these line is "123456789101112131415...". Your task is to print the n-th
digit of this string (digits are numbered starting with 1.
The only line of the input contains a single integer n (1 ≤ n ≤ 1000) —
the position of the digit you need to print.
Print the n-th digit of the line.
3
3
11
0
In the first sample the digit at position 3 is '3',
as both integers 1 and 2 consist
on one digit.
In the second sample, the digit at position 11 is '0',
it belongs to the integer 10.
与其做BC还不如做CF,CF上的题真的是很好,虽然每次只能做两个。
这道题题意很简单,就是一连串的数字排列在一起,求第n位是几;其实一看这种题就知道是规律题,但奈何脑袋笨,只能用笨方法做,我们可以打表将这些位都存起来,数据范围不大,所以估算到400就足够有1000位了;
#include<bits/stdc++.h>
using namespace std;
const int N=1000+10;
int a[N];
int main()
{
int n,i,j=1;
for(i=1;i<550;i++)//其实到400就足够了;
{
int x=i;
if(x<=9)
a[j++]=x;
else if(x<=99)//将两位数拆开存起来,下面同理;
{
int x1=x%10,x2=x/10;
a[j++]=x2,a[j++]=x1;
}
else
{
int x1=x%10,x2=(x%100)/10,x3=x/100;
a[j++]=x3,a[j++]=x2,a[j++]=x1;
}
if(j>=N) break;//N应该稍微开大一点,我在开始定义1000结果贡献了一个WA;
}
while(~scanf("%d",&n))
{
printf("%d\n",a[n]);
}
return 0;
}
其实考的就是思路,思路清晰代码能力可以这题就没什么问题了;
2 seconds
256 megabytes
standard input
standard output
A wise man told Kerem "Different is good" once, so Kerem wants all things in his life to be different.
Kerem recently got a string s consisting of lowercase English letters. Since Kerem likes it when things are different, he wants allsubstrings of
his string s to be distinct. Substring is a string formed by some number of consecutive characters of the string. For example, string
"aba" has substrings "" (empty substring), "a",
"b", "a", "ab",
"ba", "aba".
If string s has at least two equal substrings then Kerem will change characters at some positions to some other lowercase English letters.
Changing characters is a very tiring job, so Kerem want to perform as few changes as possible.
Your task is to find the minimum number of changes needed to make all the substrings of the given string distinct, or determine that it is impossible.
The first line of the input contains an integer n (1 ≤ n ≤ 100 000) —
the length of the string s.
The second line contains the string s of length n consisting
of only lowercase English letters.
If it's impossible to change the string s such that all its substring are distinct print -1.
Otherwise print the minimum required number of changes.
2
aa
1
4
koko
2
5
murat
0
In the first sample one of the possible solutions is to change the first character to 'b'.
In the second sample, one may change the first character to 'a' and second character to 'b',
so the string becomes "abko".
第一次看见B题这么水,哈哈,还没A题麻烦;
题意:给你一个长度为n的字符串,在其所有的子集中如果至少有两个相同的则要替换某个字母,其实单个字母就是一个子集,所以只要这个字符串中有多少个相同的就得替换多少个字母,但是,我们知道,超过26个字母无论怎么替换都有相同的,所以只要长度大于26则应该输出-1,反之求出重复字母个数输出;
至于怎么求出不同字母个数嘛;介绍一个简单函数unique(),这个我在文章分类中的知识点中已经给出了具体用法,下面来看超简洁代码:
#include<bits/stdc++.h>
using namespace std;
const int N=100000+10;
char a[N];
int main()
{
int n;
while(~scanf("%d",&n))
{
scanf("%s",a);
sort(a,a+n);
int x=unique(a,a+n)-a;
if(n>26)
printf("-1\n");
else
printf("%d\n",n-x);//输出重复的个数;
}
return 0;
}
目前能力只能水前两个题,请见谅;
Codeforces Round #352 (Div. 2),A题与B题题解代码,水过~~的更多相关文章
- Codeforces Round #575 (Div. 3) 昨天的div3 补题
Codeforces Round #575 (Div. 3) 这个div3打的太差了,心态都崩了. B. Odd Sum Segments B 题我就想了很久,这个题目我是找的奇数的个数,因为奇数想分 ...
- Codeforces Round #303 (Div. 2) D. Queue 傻逼题
C. Woodcutters Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/545/probl ...
- Codeforces Round #352 (Div. 1) B. Robin Hood
B. Robin Hood 讲道理:这种题我是绝对不去(敢)碰的.比赛时被这个题坑了一把,对于我这种不A不罢休的人来说就算看题解也要得到一个Accepted. 这题网上有很多题解,我自己是很难做出来的 ...
- Codeforces Round #352 (Div. 2) B. Different is Good 水题
B. Different is Good 题目连接: http://www.codeforces.com/contest/672/problem/B Description A wise man to ...
- Codeforces Round #352 (Div. 2) A. Summer Camp 水题
A. Summer Camp 题目连接: http://www.codeforces.com/contest/672/problem/A Description Every year, hundred ...
- Codeforces Round #371 (Div. 2) D. Searching Rectangles 交互题 二分
D. Searching Rectangles 题目连接: http://codeforces.com/contest/714/problem/D Description Filya just lea ...
- Codeforces Round #352 (Div. 2) C. Recycling Bottles 暴力+贪心
题目链接: http://codeforces.com/contest/672/problem/C 题意: 公园里有两个人一个垃圾桶和n个瓶子,现在这两个人需要把所有的瓶子扔进垃圾桶,给出人,垃圾桶, ...
- Codeforces Round #310 (Div. 2) A. Case of the Zeros and Ones 水题
A. Case of the Zeros and Ones Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/con ...
- Codeforces Round #352 (Div. 2) D. Robin Hood
题目链接: http://codeforces.com/contest/672/problem/D 题意: 给你一个数组,每次操作,最大数减一,最小数加一,如果最大数减一之后比最小数加一之后要小,则取 ...
随机推荐
- JD商家后台管理的细节
1: 宝贝主图和滚动图都是800px,只有刚好这么多时才能得到显示,否则不会显示. 2:宝贝描述图只支持750px, 只有这么多时才能得到显示, 刚开始不知道, 上传图片上去后, 发现始终无法显示, ...
- ubuntu14.04 + GTX980ti + cuda 8.0 ---Opencv3.1.0(基础+opecv_contrib)配置
如果喜欢视频的话:YouTube 上有视频教程 https://www.youtube.com/watch?v=1YIAp3Lh5hI 后来我在mac上安装最新版的OpenCV 找到了一片非常详细的教 ...
- mysql 中 时间函数 now() current_timestamp() 和 sysdate() 比较
转载请注明出处 https://www.cnblogs.com/majianming/p/9647786.html 在mysql中有三个时间函数用来获取当前的时间,分别是now().current_t ...
- Oracle用户角色权限相关视图
常用相关视图概述 DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限 USER_SYS_PRIVS: 当前用户所拥有的系统权限 SESSION_PRIVS: 当前用户所拥有的全部权限 ROLE ...
- 设置电脑IP
1.首先在Win7桌面上找到“网络”入口,如下图: 进入Win7网络 2.进入网络之后我们再点击顶部的“网络共享中心”,如下图: 进入Win7网络共享中心 3.进入Win7网络共享中心之后,我 ...
- 设置webbrowser浏览器内核
var hklm = Microsoft.Win32.Registry.LocalMachine; var lmRun64 = hklm.OpenSubKey(@"SO ...
- iOS Programming UISplitViewController
iOS Programming UISplitViewController The iPad, on the other hand, has plenty of screen space to pr ...
- 遮罩 HUD 指示器 蒙板 弹窗
遮罩 HUD 指示器 蒙板 弹窗 UIAlertView的使用<代理方法处理按钮点击> UIAlertView *alertView = [[UIAlertView alloc] init ...
- HTML5——loading
https://www.cnblogs.com/wangmeijian/p/4449150.html https://www.cnblogs.com/yunser/p/canvas-baidu-loa ...
- SQL GROUP BY 和 ORDER BY 区别
order by 是按表中某字段排列表中数据group by 是按某些字段分类. 例如按 1.按年龄排序表中的记录select * from users order by age 2.按年龄分类表中数 ...