ZOJ 3903 Ant(数学,推公示+乘法逆元)

Ant


Time Limit: 1 Second      Memory Limit: 32768 KB


There is an ant named Alice. Alice likes going hiking very much. Today, she wants to climb a cuboid. The length of cuboid‘s longest edge is n, and the other edges are all positive integers. Alice‘s starting point is a vertex of this cuboid, and she wants to arrive at the opposite vertex. The opposite vertex means the vertex which has no common planes or edges with the starting point. Just like the picture below:

Alice is very clever, she always walks on the shortest path. But she can only walk on the surface of the cuboid. Now, Alice only knows the length of cuboid‘s longest edge is n, and doesn‘t know the length of other edges. Suppose the L is the length of shortest path of a cuboid. Alice wants to compute the sum of L2 for every possible cuboid.

Input

The first line of input contains an integer T(T ≤ 100) . is the number of the cases. In the following T lines, there are a positive integer n(1≤n≤1014) in each line. n is the longest edge of the cuboid.

Output

For each test case, output the sum of L2 for every possible cuboid in a line. L is the length of shortest path of a cuboid. It may be very large, so you must output the answer modulo 1000000007.

Sample Input

2
3
4

Sample Output

160
440

Hint

(3,2,1) and (3,1,2) are regrad as the same cuboids.

来自 <http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3903>

【题意】:

已知一长方体的最大边长 N

求所有可能情况下,两对顶角沿表面的最短距离(展开成平面即可)的平方和。

【解题思路】:

若长方体边长为 N A B,则 L^2 = N^2 + (A+B)^2;

即找出所有小于N的A B组合,求出平方和

例如N=3;则有组合

(1,1)(1,2)(1,3)

(2,2)(2,3)

(3,3)

即最终答案中共有 N(N+1)/2 个 N^2;

再考虑  (A+B)^2 的和:

A取值1~N,对于每个A,B取值为x~n;

将 (A+B)^2展开为 A^2+B^2+2AB 求和

其中平方项每个出现 n+1 次,

而2AB项通过代数可得

将上述项依次求和即可,由于取模原因,除法要先求逆元,这里拓展欧几里得易求。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 #include<algorithm>
 6 #define LL long long
 7 #define mod 1000000007
 8 #define IN freopen("in.txt","r",stdin);
 9 using namespace std;
10
11 LL x,y,gcd;
12 void ex_gcd(LL a,LL b)
13 {
14     if(!b) {x=1;y=0;gcd=a;}
15     else {ex_gcd(b,a%b);LL temp=x;x=y;y=temp-a/b*y;}
16 }
17
18 int main(int argc, char const *argv[])
19 {
20     //IN;
21
22     LL two,six;
23     ex_gcd(2, mod);
24     while(x<0) {x+=mod;y-=2;}
25     two = x;
26     ex_gcd(6, mod);
27     while(x<0) {x+=mod;y-=6;}
28     six = x;
29
30     int t;scanf("%d",&t);
31     while(t--)
32     {
33         LL n, ans = 0;
34         scanf("%lld",&n);n%=mod;
35
36         ans = (((((n*n)%mod)*((n*(n+1))%mod))%mod)*two)%mod;
37         ans = (ans + ((((((((n+2)*n)%mod)*(n+1))%mod)*((2*n)%mod+1))%mod)*six)%mod)%mod;
38         ans = (ans + ((((n*n)%mod+n)%mod)*(((((n+1)*n)%mod)*two)%mod))%mod)%mod;
39         LL tmp = (((n*(n+1))%mod)*two)%mod;
40         ans = ((ans - ((tmp*tmp)%mod))%mod+mod)%mod;
41
42         printf("%lld\n", ans%mod);
43     }
44
45     return 0;
46 }
时间: 2024-11-08 18:23:14

ZOJ 3903 Ant(数学,推公示+乘法逆元)的相关文章

zoj 3903 Ant(推公式,逆元)

Ant Time Limit: 1 Second      Memory Limit: 32768 KB There is an ant named Alice. Alice likes going hiking very much. Today, she wants to climb a cuboid. The length of cuboid's longest edge is n, and the other edges are all positive integers. Alice's

ZOJ 3903 Ant(公式推导)

这个公式推导过程是看的这位大牛的http://blog.csdn.net/bigbigship/article/details/49123643 扩展欧几里德求模的逆元方法: #include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef long long ll; const ll mod = 1e9 + 7; ll exgcd(ll a, ll b, ll

2016中国APP分类排行榜参选入围产品公示

2016中国APP分类排行榜参选入围产品公示 由中国科学院<互联网周刊>.中国社会科学院信息化研究中心.eNet硅谷动力共同主办的2016中国APP分类排行榜发布暨颁奖晚宴即将举行.此次颁奖晚宴主题是:惊喜的构想只需要1分钟,而惊人的产品却需要许多共性内涵--天下高见,多有相合.此次将要发布的APP分类排行榜,深刻剖析市场动态,解读新时代创新定义,分析用户真实需求,从不同的角度以产品实例为众人作答.以下为迄今的入围产品名单(注:现仍在查遗补缺中). 2016中国APP分类排行榜参选入围产品公示

赣南师范学院教师高级专业技术资格评审委员会评审通过人员公示名单

原链接 六.赣南师范学院教师高级专业技术资格评审委员会评审通过人员公示名单 序号 姓名 性别 工作单位 申报资格 申报专业 1 朱钦胜 男 赣南师范学院 教授(高校) 历史学 2 郑显亮 男 赣南师范学院 教授(高校) 心理学 3 曹新 男 赣南师范学院 教授(高校) 课程与教学论(数学) 4 杜恣毅 男 赣南师范学院 教授(高校) 化学 5 薛珺 女 赣南师范学院 教授(高校) 化学 6 刘义甫 男 赣南师范学院 副教授(高校) 思想政治教育 7 曹贤信 男 赣南师范学院 副教授(高校) 法学

一个想法(续五):IT联盟创业计划:现阶段进度公示、疑问解答及进行中的计划

前言: 首先今天是元宵节,先祝大伙元宵节快,单纯的快乐! 然后看看开展中的计划: IT联盟创业计划众筹发起:一个想法(续三):一份IT技术联盟创业计划书,开启众筹创业征程 IT联盟创业计划众筹进度:一个想法(续四):IT技术联盟创业众筹进度公示 以及现在向大伙公示目前的进展.解答疑惑及下一阶段的工作计划. 一:目前的进展: 1:入股人数: 目前确认已经入股的共的41人:36人已支付款,5人已登记并在常规的工资发放日15号支付. 2:众筹金额: 共计筹得174000,另有30000未付款. 3:合

云南省第一次全国地理国情普查信息采集(第四批)招标中标公示

来自: ( http://www.ynbsm.gov.cn/Readinfo.aspx?KindID=a4e74fbe-ef4d-4b76-ad6e-4385c82bc8ed&InfoID=accc3adb-b00b-49c8-89e3-c623aac3b814 ) 云南省第一次全国地理国情普查信息采集(第四批)招标中标公示 文章来源:云南省测绘地理信息局     作者:     时间:2014-05-19     点击数: 807 云南省第一次全国地理国情普查信息采集(第四批)招标,已于201

洛谷P1080 国王游戏 高精度 贪心 数学推公式

洛谷P1080 国王游戏        数学推公式      高精度    贪心 然而这并不是我打出来的,抄题解... 将左手与右手的乘积从小到大排序,然后计算求最大值即可.(需要高精度) 证明: 1)知道,如果相邻的两个人交换位置,只会影响到这两个人的值,不会影响他人 2)假设相邻的两个人i, i + 1.设A[i] B[i] <= A[i + 1] B[i + 1],i之前所有人的左手乘积为S. 则,ans1 = max{S / B[i], S * A[i] / B[i + 1]} 若交换

中移动2014 PC服务器招标结果公示 洋品牌都去哪儿了?

大数据在线报道,中国移动于10月8日公示了其2014 PC服务器招标结果,公示中以华为.浪潮为代表的本土厂商大获全胜,而HP.Dell等洋品牌却是难觅踪影. 中国移动作为全球最大的电信运营商,对于IT设备的需求量巨大.据悉,中国移动本次PC服务器招标共分为五个标段,涵盖了从机架式服务器.刀片式服务器.MAS服务器.高端应用服务器和多节点服务器.华为和浪潮是本次招标的最大赢家,这两家本土厂商在五个标段中占据突出位置.中国移动采购与招标网上的具体公示如下: 随着国家对于信息安全的重视,以及国产化浪潮

云南省第一次全国地理国情普查信息采集(第二批)招标中标公示

云南省第一次全国地理国情普查信息采集(第二批)招标,已于2014年5月5日在云南省公共资源交易中心公开开标,现已完成评标工作,依据<中华人民共和国招标投标法>及本次招标评标委员会提交的评标报告确定中标候选人,中标候选人结果如下: 标段 中标候选单位 投标报价   (万元) 得分(分) 第11标段(楚雄州牟定县) 第一中标候选人 云南省有色地质局楚雄勘查院 132.490000 89.45 第二中标候选人 云南地质工程勘察设计研究院 131.760000 85.27 第三中标候选人 楚雄立天科技