传智杯:
没ak。。。
A 软工实习
题意:看题易知
解题思路:
sort排序每一列,即每一组队伍的评分。然后每一列不合格数值剔除,然后再计算每个人,再sort排序。注意,分数相同按照字母序小的在前面,还有四舍五入,函数用round。
代码:
1 |
|
B1024 程序员节发橙子
解题思路:
1 、从后开始找每次找出前一个比后一个大的,然后如果大的话就将该处记为后一个+1,如果相等的话就记为后一个。
c数列存
2、从前开始找,找前一个比后一个大的话,则为前一个+1,
d数列存
然后答案既为c、d数列的最大值,因为这样就使得这个位置的数,前面的人可以分配好,后面的人也可以分配好。
坑点:sum注意开ll,会超出整型范围
代码:
1 |
|
C众数出现的次数
这道题应该是本场比赛最简单的一道题了吧。。。(个人理解)
题解:建立一个map,然后呢每次把a和a^b加进去,如果a==b时,a ^ b == a所以,这个时候就得剔除掉一个。然后找次数最大。并且记录次数最大的最小值,结束。
1 |
|
D特殊的翻转
题目链接
解题思路:
两种翻转策略:
将16进制转换为2进制,每次既转换为4个二进制数,比如16进制下的12既为2进制下的0001 0010;16进制下的AB既为2进制下的1010 1011,好了
转换后注意去除前导0.
策略1:开始翻第一个和第二个数。之后便翻转自己这个位置P[i] ,P[i+1],还有P[i+1],只当当前数为1时才需要翻转。翻转结束,后判断最后一个字母是否为0,如果是该策略可以。
策略2: 翻转P[i] ,P[i+1],P[i+2];也只翻转当前位置为1时,翻转结束,判断最后一个字母是否为0,如果是则该策略可以。
找出最优策略即可。
代码:
1 |
|