SRM 441(1-250pt, 1-500pt)】的更多相关文章

DIV1 250pt 题意:用数组A表示置换,由该置换得到数组B(B[0] = 0, B[i] = A[B[i-1]]).给定A,求一个A',使得由A'得到的B为单循环置换且A'与A的差距最小.定义A与A'的差距为,有多少个i满足A[i] != A'[i].返回最小差距值.A.size() <= 50. 解法:要得到的B为单循环置换,则A'也为单循环置换.如果置换A含有t个循环节,if (t==1)差距为0,否则最小差距为t,原因是可以通过交换某两个数的位置,使得两个循环变为1个循环. tag:…
SRM 475 DIV1 300pt 题意:玩游戏.给一个棋盘,它有1×n(1行n列,每列标号分别为0,1,2..n-1)的格子,每个格子里面可以放一个棋子,并且给定一个只含三个字母WBR,长度为n的字符串,代表每个格子的颜色.在游戏开始时,r个棋子随机摆放在这n个格子里(每个棋子摆在每个格子里的概率相同),问游戏结束时,这些格子里所剩棋子数的期望.游戏的规则为(记这个棋盘的列数为size): 1.如果棋子在0格,则向右移动一格: 2.如果棋子在size-1或size-2格,则向左移动一格: 3…
SRM 468 DIV1 250pt 题意:给出字典,按照一定要求进行查找. 解法:模拟题,暴力即可. tag:water score: 0.... 这是第一次AC的代码: /* * Author: plum rain * score : 0 */ #line 11 "T9.cpp" #include <sstream> #include <stdexcept> #include <functional> #include <iomanip&g…
SRM 470 DIV1 250pt 题意:有n个房间排成一排,相邻两个房间之间有一扇关闭着的门(共n-1扇),每个门上都标有‘A’-‘P’的大写字母.给定一个数n,表示第n个房间.有两个人John和Gogo,两人轮流按下面的规则选择一个大写字母(‘A’-‘P’),每选择一次字母,标有该字母的门就打开了. 某次选择之后:若所有门全部打开,则平手游戏结束,输出0:n房间之前的门全部打开,则John胜游戏结束,输出两人总共选择了的颜色的数量:n房间后的门全部打开,则Gogo胜游戏结束,输出-1 ×…
SRM 593 DIV1 250pt 题意:有如下图所示的平面,每个六边形有坐标.将其中一些六边形染色,要求有边相邻的两个六边形不能染同一种颜色.给定哪些六边形需要染色,问最少需要多少种颜色. 解法:首先,需要0种颜色和需要1种颜色很容易判断,其次,最多需要3种颜色.易证. 也就是说,难以判断的就是需要2种颜色还是3种颜色.假定只需要染2种颜色,然后将需要染色的六边形染色,看是否会出现矛盾.用DFS染色. Ps:和官方题解一比,自己写的代码太麻烦了.... tag:染色 /* * Author:…
div1 250pt: 题意:... 解法:先假设空出来的位置是0,然后模拟一次看看是不是满足,如果不行的话,我们只需要关心最后栈顶的元素取值是不是受空白处的影响,于是还是模拟一下. // BEGIN CUT HERE // END CUT HERE #line 5 "Suminator.cpp" #include<cstdio> #include<cstring> #include<cstdlib> #include<ctime> #i…
div1 250pt: 题意:用RGB三种颜色的球摆N层的三角形,要求相邻的不同色,给出RGB的数量,问最多能摆几个 解法:三种颜色的数量要么是全一样,要么是两个一样,另外一个比他们多一个,于是可以分类讨论:对于数量全一样的,直接算;对于另外的,我们可以先不考虑多出来的那一个,也是正常放,然后看最后剩下的位置能不能放完所有多出来的那一个,这个可以二分. // BEGIN CUT HERE // END CUT HERE #line 5 "FoxPaintingBalls.cpp" #i…
div1 250pt 题意:一个长度最多50的字符串,每次操作可以交换相邻的两个字符,问,经过最多MaxSwaps次交换之后,最多能让多少个相同的字符连起来 解法:对于每种字符,枚举一个“集结点”,让其他相同的字符尽可能和它连起来. // BEGIN CUT HERE // END CUT HERE #line 5 "ColorfulChocolates.cpp" #include<cstdio> #include<cstring> #include<cs…
div1 250pt: 题意:有个机器人,从某一点出发,他只有碰到地形边缘或者碰到走过的点时才会改变运动方向,然后接着走,现在给出他的运动轨迹,判断他的运动是否合法,如果合法的话,那么整个地形的最小面积是多少. 解法:先随便设定一个起点,然后模拟机器人走的路线,先确定出来运动的大致范围,然后判断运动轨迹是否合法,也就是出了最后一步可以手动终止之外,看其他的时候,它转变方向是不是合法.... // BEGIN CUT HERE // END CUT HERE #line 5 "RotatingBo…
div1 250pt: 题意:100*100的01矩阵,找出来面积最大的“类似国际象棋棋盘”的子矩阵. 解法:枚举矩阵宽(水平方向)的起点和终点,然后利用尺取法来找到每个固定宽度下的最大矩阵,不断更新答案. // BEGIN CUT HERE // END CUT HERE #line 5 "TheMatrix.cpp" #include<cstdio> #include<sstream> #include<cstring> #include<…