2022杭电暑期多校训练营2
作者:互联网
1,2,3,4,5,6,7,8,9,10,11,12
1002 模拟,把所有std::make_tuple忽略掉即可。

#include<bits/stdc++.h> using namespace std; typedef long long ll; ll read() { ll x;scanf("%lld",&x);return x; } string s; int main() { for(int t=read();t;t--) { cin>>s; for(int i=0;i<s.length();i++) { if(s[i]=='-'||s[i]=='('||s[i]==')'||s[i]>='0'&&s[i]<='9'||s[i]==',') cout<<s[i]; } cout<<endl; } }2
1009被gcf坑了,本来只需要改一下的,最后重构代码发现没有原来的版本好。。只需要质因数分解然后判断是否有满足条件的质因数。

#include<bits/stdc++.h> using namespace std; typedef long long ll; ll read() { ll x;scanf("%lld",&x);return x; } long long quick(long long a,long long b,ll mod) { long long ans=1; for(;b;b>>=1,a=a*a%mod) if(b&1)ans=ans*a%mod; return ans%mod; } ll P,Q,data,xx,sum,cnt; ll prime[4000000],ans[4000000]; void work() { P=read();Q=read();data=read(); xx=P*Q-1; sum=0;cnt=0; for(int i=2;i<=2000010;i++) { if(xx%i==0) { sum++; prime[sum]=i; while(xx%i==0) xx=xx/i; } } if(xx!=1) sum++,prime[sum]=xx; for(int i=1;i<=sum;i++) { if(prime[i]>P&&prime[i]>Q&&prime[i]>data) { cnt++; ans[cnt]=data*Q%prime[i]; } } if(cnt!=1) { cout<<"shuanQ\n"; return ; } cout<<ans[1]<<endl; } int main() { for(int t=read();t;t--) { work(); } }9
1012优雅的暴力,小范围内暴力,再大一点的直接用365凑。

#include<bits/stdc++.h> using namespace std; typedef long long ll; ll read() { ll x;scanf("%lld",&x);return x; } ll f[1001000]; int main() { memset(f,0x3f,sizeof(f)); f[0]=0; for(ll i=0;i<=1000000;i++) { if(f[i]!=f[1000999]) { f[i+7]=min(f[i+7],f[i]+1); f[i+31]=min(f[i+31],f[i]+1); f[i+365]=min(f[i+365],f[i]+1); } } for(ll t=read();t;t--) { ll n=read(); if(n<=1000000) { if(f[n]==f[1000999]) printf("-1\n"); else printf("%lld\n",f[n]); } else { ll ans=f[1000999]; for(ll i=n%365;i<=1000000;i+=365) { if(f[i]!=f[1000999]) ans=min(ans,f[i]+(n-i)/365); } printf("%lld\n",ans); } } }12
标签:cnt,read,ll,多校,long,杭电,int,2022,ans 来源: https://www.cnblogs.com/qywyt/p/16515368.html