[Link]: [Description] [Solution] 发现1010mod(109+7)=999999937; 猜测答案是nk 写个快速幂; 注意对底数先取模; [NumberOf WA] 1 [Reviw] 看到过的人那么多就应该想到找规律的. 大胆猜测 [Code] #include <bits/stdc++.h> using namespace std; #define int long long const int MOD = 1e9+7; int n,k; int get_…
[Link]: [Description] [Solution] [NumberOf WA] 1 [Reviw] [Code] #include <bits/stdc++.h> using namespace std; int t; int main(){ cin >> t; int num = 0; for (int i = 1;i <= t;i++){ int x; cin >> x; if (x<=35) num++; } cout <<…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6063 题目意思:字面意思,给出n,k,算出这个式子的答案. 思路:比赛的时候是打表找规律过了,赛后仔细研究一下数学上的具体做法,首先莫比乌斯函数,就是他后面给的那个式子μ(n)=(−1)k(n=p1p2…pk)   p1,p2,p3…pk是互不相同的的素数.满足这个条件的n,μ^2(n)=1,否则μ^2(n)=0:从这个定义里面我们发现所有满足μ^2(n)=0的n值必定满足n=a^2*b,其中μ^2…
地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=6060 题目: RXD and dividing Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 522    Accepted Submission(s): 219 Problem Description RXD has a tr…
[Link]:http://acm.hdu.edu.cn/showproblem.php?pid=6053 [Description] 给你一个b数组,让你求一个a数组: 要求,该数组的每一位都小于等于b数组: 且这个b数组的n个数的gcd>=2 [Solution] 设f[i]表示gcd为i的a数组有多少个; 则从gcd大的开始,往gcd小的方向枚举gcd为i; 然后a的每个位置都可以为i的倍数; 则f[i] = a[1]/i * a[2] / i * a[3]/i - a[4]/i; 但是这…
[Link]:http://acm.hdu.edu.cn/showproblem.php?pid=6047 [Description] 给你一个数列a和一个数列b; 只告诉你a的前n项各是什么; 然后让你求第出a的第n+1..2*n项; 这里a的第i项等于max(a[j]-j)这里j∈[b[k]..i-1]; (i>n) 且,每个b只能用来推一次a. 让你求出∑2∗nn+1ai的最大值 [Solution] 一开始的a数组,对于ai也直接减去i就好; 这样在推的时候,直接取区间的最值就可以了,省…
[Link]: [Description] 给你n个点整数点; 问你这n个点,能够组成多少个正多边形 [Solution] 整点只能构成正四边形. 则先把所有的边预处理出来; 枚举每某两条边为对角线的情况; 看看这两条对角线能否组成一个正方形; 可以的话,递增答案. [NumberOf WA] 1 [Reviw] (排序的时候边的数目和点的弄混了) [Code] #include <bits/stdc++.h> #define int long long using namespace std…
[Link]: [Description] 两个人都做了完全一样的n道选择题,每道题都只有'A','B','C' 三个选项,,每道题答对的话得1分,答错不得分也不扣分,告诉你两个人全部n道题各自选的是什么,问你第一个人得X分,第二个人得Y分可不可能? [Solution] 我们可以倒着想这个问题; 第一个人答对一题,就让X减去1 第二个人答对一题,就让Y减去1 只要能让X和Y都变成0,那就可以了,因为剩余的题目,不管两个人答案 是什么,都可以让他们俩都错. 设xt,bxt是两人所有的题答案相同和…
[Link]: [Description] [Solution] 把所有人的能力从大到小排; 能力最大的肯定可能拿冠军; 然后一个一个地往后扫描; 一旦出现a[i-1]-a[i]>k; 则说明从这以后的人,都不可能再和有实力拿冠军的人竞争了 无论怎么安排都赢不了那部分可能拿冠军的人. [NumberOf WA] [Reviw] [Code] #include <bits/stdc++.h> using namespace std; #define lson l,m,rt<<1…
[Link]: [Description] 给你a数组的n个数的所有2^n个子集的2^n个子集元素的和; 子集元素的和最大为m; 告诉你各个子集元素的和出现的次数; 如 1 2 则0出现1次,1出现1次,2出现一次,3出现一次; 分别对应{},{1},{2},{1,2}; 问你能不能复原出原数组; 输出最小字典序的数组; [Solution] 给你一个b数组; 实际上和背包方案数问题的f数组是一样的; f[i]表示物品组成的体积为i时的方案数 for (int i = 1;i <= n;i++)…