Codeforces Round #428 (Div. 2) D. Winter is here[数论 II]
标签:数论 main eps ios fstream algo lin 二进制 air
题目:http://codeforces.com/contest/839/problem/D
题意:找出每种情况使得所有数字gcd不为1,对答案的贡献为gcd值乘数字个数。
题解:因为数字不大,可以哈希出每种数字的个数,然后从后往前,f[i]代表在gcd==i时存在的数字搭配种数。每次计算i时,要减去计算过的种数,所以从后向前计算。每个数字贡献次数为${2}^{sum-1}$(写二进制数的情况可以观察出来),所有数字贡献为$sum*{2}^{sum-1}$ 2次x次方可以先预处理取模出来。
1 #define _CRT_SECURE_NO_DEPRECATE
2 #pragma comment(linker, "/STACK:102400000,102400000")
3 #include 4 #include 5 #include 6 #include 7 #include
8 #include 9 #include10 #include11 #include12 #include13 #includestring>
14 #include15 #include
Codeforces Round #428 (Div. 2) D. Winter is here[数论 II]
标签:数论 main eps ios fstream algo lin 二进制 air
原文地址:http://www.cnblogs.com/Meternal/p/7569811.html
评论