u++

[UR #3] 核聚变反应强度

。_饼干妹妹 提交于 2020-10-28 11:10:26
次大公约数就是gcd再除以其最小质因子(如果有的话)。可以发现要求的sgcd 的前身gcd都是a1的约数,所以把a1质因数分解直接做就行了。 #include<bits/stdc++.h> #define ll long long using namespace std; const int maxn=100005; unordered_map<ll,ll> mmp; ll gcd(ll x,ll y){ return y?gcd(y,x%y):x;} int n,c[233],num; ll a,d[233],now; void dfs(int x,ll y,ll Min){ if(x==num){ mmp[y]=Min?y/Min:-1; return;} dfs(x+1,y,Min),y*=d[x+1]; if(!Min) Min=d[x+1]; for(int u=1;u<=c[x+1];u++,y*=(ll)d[x+1]) dfs(x+1,y,Min); } inline void prework(ll x){ for(int i=2;i*(ll)i<=x;i++) if(!(x%i)){ d[++num]=i; for(;!(x%i);c[num]++,x/=i); } if(x!=1) d[++num]=x,c[num]=1; dfs(0,1,0); } inline

『ACM C++』 PTA 天梯赛练习集L1 | 018-020

扶醉桌前 提交于 2020-05-01 09:40:28
  终于一周有这么一天能够安静下来好好学习打打题,还是很美滋滋的哈哈~加油加油~ ------------------------------------------------ L1-018 ---------------------------------------------------------- 大笨钟 微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。不过由于笨钟自己作息也不是很规律,所以敲钟并不定时。一般敲钟的点数是根据敲钟时间而定的,如果正好在某个整点敲,那么“当”数就等于那个整点数;如果过了整点,就敲下一个整点数。另外,虽然一天有24小时,钟却是只在后半天敲1~12下。例如在23:00敲钟,就是“当当当当当当当当当当当”,而到了23:01就会是“当当当当当当当当当当当当”。在午夜00:00到中午12:00期间(端点时间包括在内),笨钟是不敲的。 下面就请你写个程序,根据当前时间替大笨钟敲钟。 输入格式: 输入第一行按照 hh:mm 的格式给出当前时间。其中 hh 是小时,在00到23之间; mm 是分钟,在00到59之间。 输出格式: 根据当前时间替大笨钟敲钟,即在一行中输出相应数量个 Dang 。如果不是敲钟期,则输出: Only hh:mm. Too early to Dang. 其中 hh:mm 是输入的时间。 输入样例1: 19 :