标签:ch day6 top pop 牛客 while pq 2021 ll
看到10000000个数中求最大的lcm感觉很难,但是数据随机
于是搞一百个最大的数字,100*100扫一遍就稳了(滑稽
#include <bits/stdc++.h> using namespace std; typedef int ll; inline ll read() { ll s=0; bool f=0; char ch=' '; while(!isdigit(ch)) {f|=(ch=='-'); ch=getchar();} while(isdigit(ch)) {s=(s<<3)+(s<<1)+(ch^48); ch=getchar();} return (f)?(-s):(s); } #define R(x) x=read() inline void write(ll x) { if(x<0) {putchar('-'); x=-x;} if(x<10) {putchar(x+'0'); return;} write(x/10); putchar((x%10)+'0'); } #define W(x) write(x),putchar(' ') #define Wl(x) write(x),putchar('\n') const int N=105; #define ull unsigned long long unsigned T,n,A,B,C,x,y,z; ull a[N]; inline unsigned tang() { unsigned t; x^=x<<16; x^=x>>5; x^=x<<1; t=x; x=y; y=z; z=t^x^y; return z; } inline ull gcd(ull x,ull y) { return (y==0)?(x):(gcd(y,x%y)); } signed main() { unsigned i,j,t,wwx,cnt; ull lwj; scanf("%u",&T); for(t=1;t<=T;t++) { scanf("%u%u%u%u",&n,&A,&B,&C); x=A; y=B; z=C; cnt=0; lwj=0; priority_queue<ull,vector<ull>,greater<ull> >pq; for(i=1;i<=100;i++) pq.push(0); for(i=1;i<=n;i++) { wwx=tang(); if(wwx>pq.top()) { pq.pop(); pq.push(wwx); } } while(pq.size()>0) { if(pq.top()!=0) { a[++cnt]=pq.top(); } pq.pop(); } for(i=1;i<=min(n,cnt)-1;i++) { for(j=i+1;j<=min(n,cnt);j++) { lwj=max(lwj,a[i]/gcd(a[i],a[j])*a[j]); } } printf("Case #%d: %llu\n",t,lwj); } return 0; }View Code
标签:ch,day6,top,pop,牛客,while,pq,2021,ll 来源: https://www.cnblogs.com/gaojunonly1/p/15418378.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。