noip模拟69(待补)
2021/10/7 6:40:57
本文主要是介绍noip模拟69(待补),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
A. 石子游戏
B. 大鱼吃小鱼
C. 黑客
水题没做出来,感觉自己考试态度和状态不太好了.
要及时调整.
C_code
#include<bits/stdc++.h> using namespace std; namespace BSS { #define ll long long int #define ull unsigned ll #define lf double #define lbt(x) (x&(-x)) #define mp(x,y) make_pair(x,y) #define lb lower_bound #define ub upper_bound #define Fill(x,y) memset(x,y,sizeof x) #define Copy(x,y) memcpy(x,y,sizeof x) #define File(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout) inline ll read() { ll res=0; bool cit=1; char ch; while(!isdigit(ch=getchar())) if(ch=='-') cit=0; while(isdigit(ch)) res=(res<<3)+(res<<1)+(ch^48),ch=getchar(); return cit?res:-res; } } using namespace BSS; const ll mod=1e9+7; ll A,B,C,D,Ri,Rj,ans; inline ll gcd(ll x,ll y){ if(!(x and y)) return x+y; ll tmp; while(tmp=y) y=x%y,x=tmp; return x; } signed main(){ File(hacker); A=read(),B=read(),C=read(),D=read(); ll lc,rc; for(int i=1;i<=999;i++){ ll li=A/i+(A%i>0),ri=B/i; for(int j=1;j<=999-i;j++){ if(gcd(i,j) xor 1) continue; ll lj=C/j+(C%j>0),rj=D/j; lc=max(li,lj),rc=min(ri,rj); if(lc>rc) continue; ans=(ans+(rc-lc+1)*(i+j)%mod)%mod; } } printf("%lld\n",ans%mod),exit(0); }
D. 黑客
很明显这是个高精度.
但是为什么自己觉得高精度是关键于是就忘记了思考这道题的思路..?
感觉这个题目并不是很难做.
考试策略还是要调整.
D_code
#include<bits/stdc++.h> using namespace std; namespace BSS { #define ll long long #define ull unsigned ll #define lf double #define lbt(x) (x&(-x)) #define mp(x,y) make_pair(x,y) #define lb lower_bound #define ub upper_bound #define Fill(x,y) memset(x,y,sizeof x) #define Copy(x,y) memcpy(x,y,sizeof x) #define File(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout) auto read=[]()->ll{ ll res=0; bool cit=1; char ch; while(!isdigit(ch=getchar())) if(ch=='-') cit=0; while(isdigit(ch)) res=(res<<3)+(res<<1)+(ch^48),ch=getchar(); return cit?res:-res; }; } using namespace BSS; const ll N=503,M=103,W=(1<<9)+5; const ll P=100000000000000000; ll m,n,s,U; ll b1[M],b2[M],ban[W],num[W],bin[W][20],cnt[W]; struct Huge{ ll len; ll r[63]; inline friend Huge operator +(const Huge &x,const Huge &y){ Huge c; ll tmp=0; c.len=max(x.len,y.len),Fill(c.r,0); for(int i=1;i<=c.len;i++){ c.r[i]=x.r[i]+y.r[i]+tmp; tmp=c.r[i]/P,c.r[i]%=P; } if(tmp) c.r[++c.len]=tmp; return c; } inline friend Huge operator *(Huge x,ll y){ ll tmp=0; for(int i=1;i<=x.len;i++){ x.r[i]=x.r[i]*y+tmp,tmp=x.r[i]/P,x.r[i]%=P; } if(tmp) x.r[++x.len]=tmp; return x; } }anscnt,ansval,f[N][W],g[N][W]; auto print=[](Huge c)->void{ printf("%lld",c.r[c.len]); for(int i=c.len-1;i>=1;i--){ printf("%017lld",c.r[i]); } puts(""); }; signed main(){ File(hacker2); n=read(),m=read(),s=read(),U=(1<<s)-1; for(int i=1;i<=m;i++) b1[i]=read(),b2[i]=read(),ban[1<<b1[i]-1]|=1<<b2[i]-1; for(int i=0;i<=U;i++){ for(int S=i;S;(--S)&=i) ban[i]|=ban[S]; for(int j=1;j<=s;j++){ if((1<<j-1)&ban[i]) continue; bin[i][++cnt[i]]=j; } } f[0][0].r[1]=1,f[0][0].len=1; for(int i=0;i<=U;i++) g[0][i].len=1; for(int i=0;i<n;i++){ for(int j=0;j<=U;j++){ // cout<<j<<" cnt_j:"<<cnt[j]<<endl; for(int k=1;k<=cnt[j];k++){ f[i+1][j|(1<<bin[j][k]-1)]=f[i+1][j|(1<<bin[j][k]-1)]+f[i][j]; // cout<<i+1<<' '<<(j|(1<<bin[j][k]-1))<<' '<<i<<' '<<j<<endl; // print(g[i+1][j|(1<<bin[j][k]-1)]),print(g[i][j]); g[i+1][j|(1<<bin[j][k]-1)]=g[i+1][j|(1<<bin[j][k]-1)]+g[i][j]*10ll+f[i][j]*bin[j][k]; } } } for(int i=1;i<=U;i++) anscnt=anscnt+f[n][i]; // cout<<"NOW:"<<endl; for(int i=1;i<=U;i++) ansval=ansval+g[n][i];//print(ansval),print(g[n][i]); print(anscnt); print(ansval); exit(0); }
这篇关于noip模拟69(待补)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南