A.Anton and Letters (签到)
题意
判断字符串里面有多少个不同字符
思路
直接set一下
1 |
|
B.Kolya and Tandem Repeat (暴力模拟)
题意
给你一个字符串,你可以在末尾添加K个任意字符 ,让你找出一个最长的重复两次的字串
思路
直接暴力模拟
对于每个字串长度,字串起点,开始判断,复杂度n^3
1 |
|
C.Borya and Hanabi (大模拟,二进制模拟)
题意
现在有五种花色五种数字组成的二十五张牌,你手里有诺干张牌,每次你可以询问一种颜色和一种数字,你会得到所有这个花色/数字牌的位置,问你最少多少次可以把所有的牌分类
思路
把题目抽象成一个二维坐标,花色为横坐标,数字为纵坐标,每次可以连接一条线,把一条线上的牌找到,对于一张牌有两种找到方法,
1.这张牌被两条线连接,也就是花色和数字都固定了,
2.这张牌的其他花色或其他数字都被找到了,那么剩下的就只有他了
可以发现我们最多只要连接十条线,所以我们可以直接子集模拟一下十条线的搭配
然后暴力判断能否在这种情况分出任意两张牌
1 |
|
D.Andrey and Problem(贪心)
题意
你有N个朋友,每个朋友都有百分之a[i]的几率给你出题,你现在只想要一道题,
想知道你选择哪些朋友给只出一题的几率最大,输出最大几率
例如 n=2
a1=0.1 a2=0.2
答案是 0.1×0.8 + 0.9×0.2=0.26
思路
一开始我是直接DP背包的然后发现错了,结果答案直接排序一下,暴力枚举就行了,我也不知道怎么证明…感觉很奇怪
1 |
|
E.Artem and Array (模拟栈,贪心)
题意
给你N个数,这N个数相邻,你每次可以删除一个数,然后得到这个数周围两个数的最小值,(如果有一边没有数字只能获得零值)让你求把这N个数全部删除的值
思路
在纸上模拟一下,如果要最优那就是一开始把小的都删除(等于的也要删除),最后留下的都是比较大的,会发现留下的数组是一个先递增再递减的数组,并且最大和第二大的值是相邻的无法取到,所以答案就是前面删除获取的值和后面剩下的数组的前n-2小的值
1 |
|