T83310 【音乐会】二重变革

题解

你看数据那么大,又是一道数学题

题面描述这么个代码肯定不能傻fufu的直接把代码提交上去 我批评我自己

观察代码当中有一行

也就是说明最后这个数列都将变成同一个数字,否则会一直进行下去

所以答案应该是 n*这个数字

于是乎别人惊奇的发现:

答案=这段序列所有数字的gcd * 序列长度 n

证明

咱也不知道为啥,反正它就这个样,接下来我们证明一下:

当n=2时,代码就变成:

if ( X[1]>X[2])那么大数就变成大数减小数

(X[1] , X[2])->(X[2] , X[1]-X[2])

这不就是更相减损术么!!

那么我们继续把n推广到更大,那么最后每个数都变成了数列的gcd

证明

假设一开始所有数的 gcd 为 d

更相减损术无论操作多少次,这些数字的最大公因数都是不变的

最后数列里的数都变成一个数,设为k

那么此时他们的 gcd 就是 k

那么 k=d

end

PS:

假如数据随机生成,那么这些数字的 gcd 为1的可能性极大,所以直接输出n就好

但是这道题不随机生成QWQ

代码

#include<bits/stdc++.h>

using namespace std;

int n,d=,x,y;
long long ans; int gcd(int a,int b)
{
if(b==) return a;
else return gcd(b,a%b);
} inline int read()
{
int ans=;
char last=' ',ch=getchar();
while(ch<''||ch>'') last=ch,ch=getchar();
while(ch>=''&&ch<='') ans=ans*+ch-'',ch=getchar();
if(last=='-') ans=-ans;
return ans;
} int main()
{
n=read();
for(int i=;i<=n;i++)
{
x=read();
d=gcd(d,x);
}
ans=d*n;
printf("%ld\n",ans); return ;
}

T83310 【音乐会】二重变革的更多相关文章

  1. 【6.28校内test】T2 【音乐会】二重变革

    [音乐会]二重变革[题目链接] T2其实是一道数学题,因为你看: 2MB??一共就可以存下个int,然鹅再看数据范围: 那么大是稳稳的不是TLE就是MLE了,所以肯定是数学题,而且是只需要存很少数据的 ...

  2. 2019.6.28 校内测试 T2 【音乐会】二重变革

    看到这个题之后,一个很暴力很直接的想法就是贴上题目中的代码然后交上去走人,但是很显然这是会TLE+MLE的,想想谁会这么傻把主要代码给你QwQ~: 其实这段代码是想告诉你一件事:用序列中的大数减去小数 ...

  3. 小测试整理(含T1 T2)

    这次测试规模较小,前两题也较水,但需要整理 T1(Jelly的男♂难题1): 从一个点出发,以四连通的方式扩散,可以走#,不能走o,走过的格子每单位时间会增加1点高度,问扩散完整间屋子需要的时间,以及 ...

  4. MY TESTS

    励志整理所有的n次考试的博客: [五一qbxt]test1 [五一qbxt]test2 [校内test]桶哥的问题 [6.10校内test] noip模拟 6.12校内test [6.12校内test ...

  5. 快消品迎来B2B元年,行业将如何变革?

    一年接近尾声,又到了年终总结的时候,宴会厅里传来各种激情澎湃的演讲,有的行业遍地开花.欢声笑语不绝于耳:有的行业却没能迎来"昨夜东风",只能嗟叹"不堪回首".2 ...

  6. 《2016ThoughtWorks技术雷达峰会----变革的原因》

    变革的原因      张松 ,ThoughtWorks中国区总经理 首先回顾IT历史,观点如下: 1.在80,90年代,IT作为一个种生产效率的提高工具,主要是把手工的活动自动化.以client se ...

  7. C10K 问题引发的技术变革

    C10K 问题引发的技术变革 http://rango.swoole.com/archives/381

  8. web app变革之rem(手机屏幕实现全适配)

    以往web移动适配,常规写法是:media only screen @media only screen and (min-device-width: 320px){ //针对iPhone 3 } @ ...

  9. C语言二重指针与malloc

    (内容主要源于网上,只是加入了些自己的剖析) 假设有一个二重指针: char **p; 同时有一个指针数组 char *name[4]; 如何引用p呢? 首先我们有程序代码如下 #include &l ...

随机推荐

  1. spring cloud 入门

    某种程度上 软硬件 殊途同归了 (软件模仿硬件 总线设计, 资源定位 (寻址) ) spring 是什么 EDA ( Event-driven architecture ) (SOA , SOAP , ...

  2. 微信支付成功没有回调遇到的坑 onBridgeReady getBrandWCPayRequest wx.chooseWXPay

    最近在调微信支付,遇到一个问题,就是支付成功回调不执行的. 遇到的问题就是   苹果手机 支付成功没有进到回调函数里,但是支付的时候,点击取消支付是可以进到回调函数里的.    安卓手机测试一切正常! ...

  3. MySQL select之后再update

    1.先查询页面 而后再根据查询的结果来更改数据库,可以使用SELECT …… FOR UPDATE 来实现,具体的代码如下 SELECT * FROM chat //查询的表 //查询的条件 FOR ...

  4. js 继承的简单理解

    什么是继承 js中的继承就是获取存在对象已有属性和方法的一种方式. 继承一 属性拷贝 就是将对象的成员复制一份给需要继承的对象. // 创建父对象 var superObj = { name:'liy ...

  5. Hive Server2(五)

    HiveServer2 基本概念介绍 1.HiveServer2基本介绍 HiveServer2 (HS2) is a server interface that enables remote cli ...

  6. 修改phpMyAdmin 导入MySQL数据库文件大小限制

    默认情况下,phpMyAdmin导入MySQL数据库文件大小为2M. 很多朋友对网站进行搬家的时候,网站数据进行导入时会出现一些问题,提示超出导入大小限制. 默认MYSQL只能导入最大2MB的数据,于 ...

  7. 树形DP Choosing Capital for Treeland

    给你一棵有向树,需要选定一个点为capital,满足翻转边数最小 思路:先求出1为capital 的答案,然后向下更新孩子节点 dp[i]=dp[i-1]+judge(i); #include< ...

  8. base64 转 Image

    /// <summary> /// base64 转 Image /// </summary> /// <param name="base64"> ...

  9. vs2017 2019 下载更新慢的解决方法

    国庆期间 下载的速度只有20多kb. 1.去掉网络适配器里面的 ip6勾选. 2.修改电脑的自动dns, 修改为1.1.1.1  , 修改为8.8.8.8  更快. 记得禁用再启用网络: dns为1. ...

  10. __stdcall、__cdcel、__fastcall 调用

    常用的调用约定有stdcall,cdecl,fastcall,thiscall,naked call等,以下将 __stdcall.__cdecl和__fastcall三种函数调用协议加以比较,函数调 ...