先因式分解,记录所有的因子

然后直接容斥即可,四次方和公式:n*(n+1)*(2*n+1)*(3*n^2+3*n-1)/30

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
typedef long long LL;
const LL mod=1000000007;
int vis[1000010],c;
LL rev;
int prime[1000000];
LL pow_mod(LL n)
{if(n==0) return 1;LL ans=pow_mod(n/2);ans=ans*ans%mod;if(n%2==1) ans=ans*30%mod;return ans;
}
void init()
{memset(vis,0,sizeof(vis));c=0;rev=pow_mod(mod-2);for(int i=2;i<=1000;i++) if(!vis[i]){for(int j=i*i;j<=1000000;j+=i) vis[j]=1;}for(int i=2;i<=1000000;i++) if(!vis[i])prime[c++]=i;
}
LL getsum(LL x)
{LL t1=(x*x%mod+x)%mod;LL t2=(2*x%mod+1)%mod;LL t3=((3*x)%mod*x%mod+3*x%mod-1+mod)%mod;return ((t1*t2%mod)*t3%mod)*rev%mod;
}
LL getfour(LL x)
{return ((x*x%mod)*x%mod)*x%mod;
}
int fac[100],f,n;
int main()
{init();int T;scanf("%d",&T);while(T--){scanf("%d",&n);int tmp=n;f=0;for(int i=0;i<c;i++){if(tmp%prime[i]==0) fac[f++]=prime[i];while(tmp%prime[i]==0) tmp/=prime[i];}if(tmp!=1) fac[f++]=tmp;LL ans=getsum(n);for(int i=1;i<(1<<f);i++){int bitcount=0,a=1;for(int j=0;j<f;j++) if(i&(1<<j)){a*=fac[j];bitcount++;}LL t=getfour(a)*getsum(n/a)%mod;if(bitcount%2==1) ans=(ans-t+mod)%mod;else ans=(ans+t)%mod;}printf("%lld\n",ans);}return 0;
}

trainging contest#1(2011大连现场赛)I BY bly相关推荐

  1. trainging contest#1(2011大连现场赛)C BY bly

    需要推出一个很奇妙的性质,知道了这个性质之后这道题就是道简单区间dp了. 就是一段区间[i,j]必须从2个端点之一开始按,仔细想想确实是这样的,比赛的时候贪心不出dp顺序,还以为是搜索(还是思维太弱了 ...

  2. trainging contest#1(2011大连现场赛)G BY bly

    AC自动机+状压DP,这个相当明显 状态设置为dp[len][u][st]表示在自动机内走了len步后,位于结点u,经过的pattern的状态为st时,所能取得的最大value. 然后就很容易得出状态 ...

  3. trainging contest#2(2011成都现场赛)D BY bly

    这种dp其实不算难,状态什么的都不难想,就是需要用SPFA写,不然就会莫名奇妙的WA 昨天用dp写,怎么改都是WA,确切的说应该说是记忆化搜就WA 今天改成用SPFA就过了,还有我把堆优化的dij和S ...

  4. trainging contest#2(2011成都现场赛)A BY bly

    额,这题我想了半场也没有想出来,思维是硬伤-- 比赛的时候只是想到了,减1和合并都只算一个操作数,唯一的例外是减掉一个1时,算两个操作数. 于此同时减去最后一个1时只算一个操作数. 设状态为dp[i] ...

  5. trainging contest#2(2011成都现场赛)G BY bly

    一道AC自动机+DP,因为单词可能重复,所以记录结点信息的需要是以个vector,然后dp的时候需要递归的更新dp值,因为一个结点可能为多个单词的结尾. #include <iostream&g ...

  6. 2016ACM/ICPC亚洲区大连站现场赛题解报告(转)

    http://blog.csdn.net/queuelovestack/article/details/53055418 下午重现了一下大连赛区的比赛,感觉有点神奇,重现时居然改了现场赛的数据范围,原 ...

  7. 2016ACM/ICPC亚洲区大连站现场赛题解报告

    此文章可以使用目录功能哟↑(点击上方[+]) 下午重现了一下大连赛区的比赛,感觉有点神奇,重现时居然改了现场赛的数据范围,原本过的人数比较多的题结果重现过的变少了,而原本现场赛全场过的人最少的题重现做 ...

  8. 2011 ACM/ICPC 北京现场赛 B HouYi's secret

    周日起床后看见QQ群消息说 bupt上有半同步北京现场赛试题,就进入看了下题,一共读了两个题 A和B(因为这两个题目当时就都提交的很多) A题不会做,有限制的生成树的这类知识好像还没有接触过... B ...

  9. 2011年国赛B题论文研读

    本文知识点速查 0-1规划.线性加权评价.权重确定 一.2011年国赛B题的要求 2011年国赛B题的概括如下. 试就某市(有六个区,分别为A,B,C,D,E,F)设置交巡警服务平台的相关情况,建立数 ...

最新文章

  1. 如何修改SAP登录界面的文字
  2. BGP——ORF+条件路由过滤(讲解+配置)
  3. 自动查询成绩的小玩意
  4. 多个html页面拼接成一个页面_浏览器渲染页面机制以及如何减少DOM操作
  5. VC dimension(Vapnik-Chervonenkis dimension)
  6. 泛微服务器运维监控,泛微协同平台E-cology8后台维护手册-流程引擎(261页)-原创力文档...
  7. 扬州市 工程师职称计算机考试,扬州市建筑专业工程师专业技术资格条件
  8. Unity游戏开始界面制作教学
  9. c++ Dxgi+FFmpeg 完成对截图屏幕,以及将屏幕数据保存为MP4格式,以完成录屏功能
  10. 产品逻辑图和产品流程图的区别?
  11. Kaavi and Magic Spell
  12. java设计模式5,接口隔离原则
  13. 马来西亚留学回国人员证明
  14. ibm tivoli_IBM Tivoli Directory Server中的安全复制
  15. mipi传输距离3米_弱电网络工程中网线大于100米怎么办?离300米远用什么线缆较好?...
  16. Base64加密与解密
  17. 软件开发中的CI、CD、CD概念
  18. 【转】RMAN-06094: datafile 1 must be restored ID 1339439.1
  19. buctoj-2022寒假集训4
  20. narx神经网络 matlab,神经网络 NARX

热门文章

  1. CloudComparePCL 基于FPFH特征的SAC-IA算法
  2. 阿里云国际站云服务器ECS自助搭建网站
  3. 大数据分析的下一代架构--IOTA架构[上]
  4. 如何让百度搜索到我的博客或者网站
  5. 热力学第二定律的局限性与对热寂说的反驳
  6. 2021年中国百货零售行业发展现状及发展趋势分析:百货店仍是时尚和品质消费的主渠道[图]
  7. 能上QQ但打不开网页
  8. 位图php,ps中什么是位图
  9. 远景举办首届综合能源服务合作发展论坛 智慧能源技术创见美好未来
  10. 关于虚拟机检测技术的研究