题目链接
A. Salem and Sticks
分析
暴力就行,题目给的n<=1000,ai<=100,暴力枚举t,t从2枚举到98,复杂度是1e5,完全可行.
代码
1 #include2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include
B. Zuhair and Strings
分析
暴力题,暴力查找k个相同字母组成的序列就行.
代码
1 #include2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include
C. Ayoub and Lost Array
分析
计数dp,算出l到r区间中mod3是0的数a0,mod3是1的数a1,mod3是2的数a2,dp[i][j]表示,i个数的和mod3是j,dp[1][0]=a0,dp[1][1]=a1,dp[1][2]=a3,i从2开始更新,最后dp[n][0]就是答案.
代码
1 #include2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include
D. Kilani and the Game
分析
bfs扩展题,这里的bfs需要控制步数且同时进行,每个玩家的speed就要求控制步数,同时进行是为了防止一个点扩展后把另一个点包住导致另一个点无法扩展,可以用优先队列设置优先级来完成这个bfs,结构体可以设置 a,b坐标,c步数(在一个回合内走了多少步),d回合数,e序数(第几个玩家),优先级设置是 回合数(从小到大)>序列数(从小到大)>步数(从小到大),需要注意的是优先队列的排序方式,优先队列是默认大的在前,小的在后.
代码
1 #include2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include