牛客练习赛60
A
题意:
直接看图吧
暴力代码显然是不行的
1 |
|
正解:将每一个数的二进制位分格出来,只有二进制为1是才会有贡献,从高位计算进制位为1的数然后计算次数k,k*k就是这个位置的贡献了,计算求和即可
1 |
|
B
题意:给n个点的坐标,问它能组成的所有三角形的周长之和是多少。根据题目给的定义,每两个点之间距离为d = |xi-xj| + |yi-yj|;
题解:推出规律,选定两个点,然后选择第三个点时,有n-2种边,然后推导规律易知每条边会出现n-2次,然后直接算就行了
代码:注意开ll
1 |
|
C
题意:
给一个n长度字符串,字符串元素只能为a-z;问其k长度的子串有多少不同种
题解:不是很明白,dp还得练习呀
附上大佬的题解
代码:
1 |
|
D
题意:已知a,b,c,k,求方程ax+by+cz =k ,的任意一组整数解,题目保证有解,暴力即可了
题解:设x = k/a;判断temp1 = k - ax;每次让x–;如果temp1==0的话说明这个就是一组解,输出即可,否则对temp1进行拆分,y = temp1/b;temp2=temp1 - yb ;如果temp2%c==0;则这就是一组解
代码:
1 |
|