1.比赛链接
https://vjudge.net/contest/258305#overview
2.题解
A.1 10 100 1000
题目链接
https://vjudge.net/contest/258305#problem/A
题意
给一个数列1101001000...求第N位是1还是0
思路
只有满足m*(m-1)/2+1的N才是1,否则就是0,m为非负整数,可以通过逆运算判一下
B.三子棋
题目链接
https://vjudge.net/contest/258305#problem/B
题意
玩一个3*4的3连bingo,给出第一步下的位置,问需要几步能赢
思路
找室友玩了一会发现下在角落6步赢,长度3的边的中间只能平局,剩下的4步赢
C.罐子和硬币
题目链接
https://vjudge.net/contest/258305#problem/C
题意
给你n个罐子k个硬币,你可以任意分配罐子中的硬币,然后你无法区分罐子,从罐子中取硬币每次一个,问取出C个硬币需要多少次?
思路
最开始的想法是将硬币平均分,如果取得硬币比较少或者刚好整除都能够C次取出,否则就要多花n-k%n次但是写上去交了一发WA了
后来试了一下9 28 28的样例发现不是在任何情况下都是最优解的,把28个硬币平均分配在7个罐子中然后再尝试两次空罐子明显更省
仔细思考了一下发现果然有些问题,如果尽量均分的放法,某些罐子放a个,某些放a+1个,当a个的数目很多而且a+1个的数目很少的时候就会出问题,这个时候让每个罐子都放a+1个,剩下的全空出来,这样能够保证最少的查询空罐子的消耗,把这个结果和之前的那个结果比较一下大小就有结果了。
D.排列转换
题目链接
https://vjudge.net/contest/258305#problem/D
题意
两个长度为n的排列p和s。要求通过交换使得p变成s。代价是交换的距离,求代价
思路
分别计算每一个位数和目标的距离求和,由于是交换,每次会改变两个点,把求出来的和除以二就可以了
E.数数字
题目链接
https://vjudge.net/contest/258305#problem/E
题意
统计一下 aaa ⋯ aaa*b的结果里面有多少个数字d,a,b,d均为一位数
思路
特殊考虑最高位和最低位,剩下的每一位都应该是相同的数字,模拟乘法算一下就出来了。。是a*b%10+a*b/10
F.排船的问题
题目链接
https://vjudge.net/contest/258305#problem/F
题意
太麻烦了,,,直接看题面吧。。。
思路
不太会。。看了一下题解是二分?只看懂个大概
G.丢手绢
题目链接
https://vjudge.net/contest/258305#problem/G
题意
约瑟夫环,具体规则看原题吧
思路
输入一共只有13种。。。好像可以本地打个表?直接模拟就可以吧 和约瑟夫环最终判定还不太一样 不是很好算。。。
H.数袋鼠好有趣
题目链接
https://vjudge.net/contest/258305#problem/H
题意
有一堆袋鼠,袋鼠能被装到大小是他二倍以上的袋鼠里面,袋鼠只能装一次,问最后最少看到多少个袋鼠
思路
因为袋鼠被装之后不能再装别人,所以贪心,直接从最小的袋鼠开始找第一个能装下他的袋鼠就可以了
I.Save the problem!
题目链接
https://vjudge.net/contest/258305#problem/I
题意
给你一个方案总数n,求价格,以及多少种面值的硬币,每种面值是多少,刚好有n种方案可以凑成这个价格。
思路
这题应该是要special judge的 所以就只用1块和2块的硬币来凑就可以了,推算一下找一下规律就可以发现用1和2凑2n-1是正好n种方案的,输出就可以了。。。MMP想了好久