数学
文章平均质量分 72
PrimeG
算法学习ing
展开
-
URAL-1979 Resources Distribution
一个正方体每个面分为n*n个小方块,每个小方块填上1~6*n*n的数字,要求所有方块数字不一样且绕一圈数字和相同。容易知道所有的绕圈方式一共有3*n种,而这些绕圈方式每个方块一共会被遍历两次,所以可以计算 (1+6*n*n)*6*n*n/2(所有数字和)*2=3*n*S(S为一圈的数字和) 得S=原创 2017-07-08 10:33:49 · 590 阅读 · 0 评论 -
2017多校训练第一场
1001这是一道签到题求出满足10^k1002这是道贪心算法的题,需要我们给每个字母赋一个贡献值,使得所有数的和最大。先把每个字母都看做1,然后按每个字母对结果的贡献排序来分别赋值,由于每个字母的贡献的极大且为26进制,我们可以使用数组来表示每个字母的每一位,然后按位比较大小即可,另外,由于不存在前置0,所以我们需要标记一下出现在首位的字母,最后找出不在首位里的贡献最小的数赋值为0原创 2017-07-26 15:34:31 · 525 阅读 · 0 评论 -
Project Euler 622
题目链接:点击打开链接题意:题目定义完美洗牌方式,s[i]表示i张牌时需要洗多少次回到最初情况,求s[i]=60的所有i的总和。易知,我们每次洗牌可以转化为公式(2*i-1)(mod n-1)(n为牌数),也就是s[i]等于 2 mod(i-1)的阶数,进而对求s[i]=60的i的总和可以转化为求2^60-1的所有因数加一的和(需要特别把2的低次幂-1的因数给排除掉)。代码:#include<...原创 2018-03-12 16:13:54 · 334 阅读 · 0 评论