「Clover & Poetize」杯秋分欢乐赛 总结
很2B的写个总结...比赛还没结束 就准备写了..好没节操= = 最后一题 没时间写了...我都不知道是9:30 还是9:50放学.........只能早点回去了...
果然是送分的欢乐赛...题目确实不难诶...交了前俩题 明天看分吧...看RP
第二天:果然交的两道都AC了...去写第三题
tyvj 的测试地址 http://new.tyvj.cn/Test_Show.aspx?id=1102
题解发布地址 http://hi.baidu.com/lydrainbowcat/item/f8ce1b1b0f445ce99913d6e6
汪星人入侵 From This_poet
(Rainbow和Freda正在城堡里玩得开心的时候,外面传来一阵声音:小猫乖乖,把门开开~)
Rainbow:不好!是汪星人入侵!
Freda:肿么办肿么办T_T?
Rainbow:我们先躲起来观察一下汪星人的动态吧>_<!
Rainbow和Freda躲到了瞭望塔里,发现汪星人这次的目标有些奇怪。
Rainbow的城堡有N扇门,从1到N标号,它们初始时都是关着的。现在来了N只汪星人,第i只汪星人会把所有标号能被i整除的门的状态改变(即把标号能被i整除的关着的门打开,把标号能被i整除的开着的门关上)。
Rainbow为城堡定义了一个不安全指数——即最后打开着的门的数目。Rainbow想请你帮忙计算,城堡的不安全指数是多少?
每个测试点包括多组测试数据。
第一行一个整数T,表示一共有T组测试数据。
接下来T行每行一个整数N,表示Rainbow城堡的门的数量。
输出T行,第i行的数字表示,对于第i个N,城堡的不安全指数。
4
4
10
16
27
2
3
4
5
样例解释:
当N=4的时候,4扇门情况如下(1表示开,0表示关):
没有汪星人来的时候:0000
第一只汪星人来后:1111
第二只汪星人来后:1010
第三只汪星人来后:1000
第四只汪星人来后:1001
所以答案为2
对于20%的数据,T<=100.
对于100%的数据,T<=20000,N<=50000.
各个测试点1s
题解:很脑残的一个数学知识..刚开始不知道- - 后来一神犇说 一行程序就搞定 我就给跪了...之前写了一个预处理的 目测也是能过的 但是还是贴简单的吧 就是 这个题目意思 就是求 每个数i 它的约数 是奇数还是偶数 一个数学知识就是 只有 完全平方数的约数是奇数个...所以 这题就很简单了 就是统计完全平方数的个数
Delphi语言: 高亮代码由发芽网提供
program cpp1;
var n,i,t:longint;
begin
readln(n);
for i:=1 to n do begin
read(t);
writeln(trunc(sqrt(t)));
end;
end.
rainbow与freda染旗 From This_poet
Freda:aya Rainbow,怎么没看见你城堡挂旗子呀?
Rainbow:我城堡旗子太难看了肿么办T_T
Freda:lala~那好办,我可以帮你染色呀~
Rainbow:嗯嗯,那就试试吧~
Rainbow城堡的旗子是一个有N个基本单位的长条>_<,每个单位都会被染成前m个大写字母当中的一个颜色。可是,Rainbow认为,两个相邻的单位有相同的颜色很难看的说。所以,Rainbow需要改动一些单位的颜色,使得不存在两个相邻的单位颜色相同。当然了,那些被改动的单位改动之后的颜色也是前m个大写字母当中的一个。Rainbow想请你帮忙计算,它最少要改动多少个单位的颜色才能让旗子好看呢?
第一行两个整数N、m,表示旗子组成的基本单位数目和颜色的范围。
接下来一行一个长度为N的字符串,字符串的每个字符都是在前m个大写字母的范围内的,表示Rainbow的旗帜。
一行一个整数表示Rainbow最少改动的单位数目。
6 3
ABBACC
2
样例解释:一种改动方法是ABCACA。当然,还可能有别的改动方法。
对于30%的数据,N<=20.
对于100%的数据,N<=10^5,1<=m<=26.
各个测试点1s
题解: 很简答的一道题 对m分类讨论就是 因为对于每一个位置 只要和前后不同就可以了 所以 当m>2 时.. 只要统计下有多少相同的即可 并标记为‘*’ 这样保证和后面的也不相同 是最优的 因为m>2 嘛 当m=2 时 就是特判 用 ABABABABA 和BABABABA去判断就可以了 统计不同的 输出最小值
Delphi语言: 高亮代码由发芽网提供
program cpp2;
var a:array[1..100000] of char;
t:array[1..2] of char;
n,m,k,i,ans,max:longint;ch:char;
begin
readln(n,m);ans:=0;t[1]:='A';t[2]:='B';
max:=maxlongint;
for i:=1 to n do read(a[i]);
if m=2 then begin
for k:=1 to 2 do begin
ch:=t[K];ans:=0;
for i:=1 to n do begin
if a[i]<>ch then inc(ans);
if ch<>'A' then ch:='A' else ch:='B';
end;
if max>ans then max:=ans;
end;
writeln(max);
end else begin
for i:=2 to n do
if a[i]=a[i-1] then begin
inc(ans);a[i]:='#';
end;
writeln(ans);
end;
end.
幻象迷宫 From lydrainbowcat
(喵星人rainbow和freda同心协力击退了汪星人的入侵,不幸的是,汪星人撤退之前给它们制造了一片幻象迷宫。)
freda:呜呜,肿么办啊……
rainbow:momo...我们一定能走出去的!
freda:嗯,+U+U!
幻象迷宫可以认为是无限大的,不过它由若干个N*M的矩阵重复组成。矩阵中有的地方是道路,用'.'表示;有的地方是墙,用'#'表示。rainbow和freda所在的位置用'S'表示。也就是对于迷宫中的一个点(x,y),如果(x mod n,y mod m)是'.'或者'S',那么这个地方是道路;如果(x mod n,y mod m)是'#',那么这个地方是墙。rainbow和freda可以向上下左右四个方向移动,当然不能移动到墙上。
请你告诉rainbow和freda,它们能否走出幻象迷宫(如果它们能走到距离起点无限远处,就认为能走出去)。如果不能的话,rainbow就只好启动城堡的毁灭程序了……当然不到万不得已,他不想这么做。。。
输入包含多组数据,以EOF结尾。
每组数据的第一行是两个整数N、M。
接下来是一个N*M的字符矩阵,表示迷宫里(0,0)到(n-1,m-1)这个矩阵单元。
对于每组数据,输出一个字符串,Yes或者No。
5 4
##.#
##S#
#..#
#.##
#..#
5 4
##.#
##S#
#..#
..#.
#.##
Yes
No
对于30%的数据,N,M<=20
对于50%的数据,N.M<=100.
对于100%的数据,N,M<=1500,每个测试点不超过10组数据.
各个测试点1s
浙公网安备 33010602011771号