「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 它的约数 是奇数还是偶数 一个数学知识就是 只有 完全平方数的约数是奇数个...所以 这题就很简单了 就是统计完全平方数的个数
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去判断就可以了 统计不同的 输出最小值  
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

posted on 2012-09-23 21:24  馒头~blue  阅读(470)  评论(0)    收藏  举报

导航