A.做游戏
https://ac.nowcoder.com/acm/contest/3003/A
签到题:只要求两个人当中最小的值就行了.
#include
#include
#include
#include
#include
#include
#include
#include
#include
B.排数字
https://ac.nowcoder.com/acm/contest/3003/B
将字符串遍历一遍,然后记录'1'和'6'的个数
1.'1'的个数>='6'的个数,ans='6'的个数-1;
2.'1'的个数<'6'的个数,ans='1'的个数;
#include
#include
#include
#include
#include
#include
#include
#include
#include
D.数三角
https://ac.nowcoder.com/acm/contest/3003/D
额,这几主要考思维和几何,首先我们用结构体记录每个点的x和y,然后暴力遍历三个点(注意不能有重复),判断这三个点是否构成三角形,如果可以再次判断三条边长看是不是钝角三角形
注意!一定要判断三个点是否在同一直线上!!!
#include
#include
#include
#include
#include
#include
#include
#include
#include
E.做计数
https://ac.nowcoder.com/acm/contest/3003/E
将等式两边平方得:i+j+sqrt(i*j)=k,所以只要i*j是完全平方数,即可满足条件,暴力枚举统计答案即可;
#include
#include
#include
#include
#include
#include
#include
#include
#include
F.拿物品
https://ac.nowcoder.com/acm/contest/3003/F
这题我WA了十发,最开始我以为只要用一个结构体数组记录每个物品的a,b值然后交叉排序a,b的最大值就行了,但我忘了一点:可以选择抢走对方的值大的物品;
然后我想了一下,(就当我是第一个人)假如这个物品a大b也大,那我拿走这个肯定是赚的,假如a小b也小,那我肯定不拿这个,转念一想a大b小和a小b大应该算是同一种情况,于是我们将a和b相加,从大到小进行排序;
#include
#include
#include
#include
#include
#include
#include
#include
#include
G.判正误
https://ac.nowcoder.com/acm/contest/3003/G
快速幂,但是直接算的话必然爆掉,模一个1e9+7即可;
这里讲一下快速幂:利用递归将指数分解,如果指数为偶,将其二分相乘
若为奇,将其减1和自己相乘;
eg:2^10=2^5*2*5 ..........(递归)
2^11=2*2^10 ..........(递归)
#include
#include
#include
#include
#include
#include
#include
#include
#include