之前学长跟我说的是700-的应该都能自己做? 然后1000-的应该都能有一定的思路?
记不清了 但总之是要智力康复一下 又加上文化课比较紧 所以这个大概就会是长期计划了
————————————分鸽线————————————
今天体育中考晚上没事颓了3道题。
AGC024【至于为什么是24呢因为今天是24号233】
三道巨水的题我竟然A题WA了三发BC都1A...
A
B
C
————————————分鸽线————————————
竟然没让我们继续上课。本来以为体育中考和周六的课直接对调了的。
AGC025
A太水了不写了
B直接组合没有任何技术含量。。睿智的我RE了好几发。
//Love and Freedom. #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #define ll long long #define inf 20021225 #define mdn 998244353 #define N 900010 using namespace std; int a,b,n; ll k; int fac[N],inv[N]; int ksm(int bs,int mi) { int ans=1; while(mi) { if(mi&1) ans=(ll)ans*bs%mdn; bs=(ll)bs*bs%mdn; mi>>=1; } return ans; } int C(int n,int m) { if(n<m) return 0; return (ll)fac[n]*inv[m]%mdn*inv[n-m]%mdn; } void upd(int &x,int y){x=(x+y)%mdn;} int main() { int ans=0; scanf("%d%d%d%lld",&n,&a,&b,&k); fac[0]=inv[0]=1; for(int i=1;i<=n;i++) fac[i]=(ll)fac[i-1]*i%mdn; inv[n]=ksm(fac[n],mdn-2);// printf("%d\n",inv[n]); for(int i=n-1;i;i--) inv[i]=(ll)inv[i+1]*(i+1)%mdn; for(int i=0;i<=n&&(ll)i*a<=k;i++) { if((k-a*i)%b==0) { ll bi=(k-a*i)/b; upd(ans,(ll)C(n,i)*C(n,bi)%mdn); } } printf("%d\n",ans); return 0; } /** 300000 300000 300000 0 */
C题就贪个心然后写起来巨烦不写了QAQ
滚去学文化了嘤嘤嘤
额。。晚上打了个ABC125怎么这么简单啊。。。AK了怎么才258名好菜啊。。。
还是把代码丢下吧。。。
//Love and Freedom. #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #define ll long long #define inf 20021225 using namespace std; int main() { int a,b,t; scanf("%d%d%d",&a,&b,&t); printf("%d\n",(t/a)*b); return 0; }
//Love and Freedom. #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #define ll long long #define inf 20021225 using namespace std; int c[21],v[21]; int main() { int st,top,n; scanf("%d",&n); top=1<<n; for(int i=0;i<n;i++) scanf("%d",&v[i]); for(int i=0;i<n;i++) scanf("%d",&c[i]); int ans=0; for(int st=1;st<top;st++) { int tmpv=0,tmpc=0; for(int i=0;i<n;i++) if((st>>i)&1) tmpv+=v[i],tmpc+=c[i]; ans=max(ans,tmpv-tmpc); } printf("%d\n",ans); return 0; }
//Love and Freedom. #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #include<map> #define ll long long #define inf 20021225 #define N 100010 using namespace std; int a[N]; int n; int pre[N],suf[N]; int gcd(int x,int y){return !y?x:gcd(y,x%y);} void solve() { for(int i=1;i<=n;i++) { if(i==1) pre[i]=a[i]; else pre[i]=gcd(pre[i-1],a[i]); } for(int i=n;i;i--) { if(i==n) suf[i]=a[i]; else suf[i]=gcd(suf[i+1],a[i]); } int ans=1; for(int i=1;i<=n;i++) { if(i==1) ans=max(ans,suf[2]); else if(i==n) ans=max(ans,pre[n-1]); else ans=max(ans,gcd(pre[i-1],suf[i+1])); } printf("%d\n",ans); } int main() { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); solve(); return 0; }
//Love and Freedom. #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #define ll long long #define inf 20021225 #define N 100010 using namespace std; ll f[N][2]; ll a[N]; int n; void solve() { memset(f,-48,sizeof(f)); f[0][0]=f[0][1]=0; for(int i=1;i<=n;i++) { if(i==1) f[i][0]=a[i]; else { f[i][0]=max(f[i-1][0],f[i-1][1])+a[i];// printf("QAQ %d %lld\n",i,a[i]); f[i][1]=max(f[i-1][0]-2*a[i-1],f[i-1][1]+2*a[i-1])-a[i]; } } printf("%lld\n",max(f[n][0],f[n][1])); } int main() { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%lld",&a[i]); solve(); return 0; }
————————————分鸽线————————————
AGC026
B是个特判 就是看一下(kd+a)%b>c是否存在就行了
C是个典型的meet in the middle 模数要设的大一点不然会冲突 我直接unsigned long long了 不卡好评
//Love and Freedom. #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #define ll long long #define inf 20021225 using namespace std; ll a,b,c,d; ll gcd(ll x,ll y){return y?gcd(y,x%y):x;} bool okay(ll a,ll b,ll c,ll d) { ll g=gcd(d,b); ll x=(b-a)/g*g; if((x+a)%b>c) return 0; x=(b-a-1)/g*g; if((x+a)%b>c) return 0; return 1; } int main() { int t; scanf("%d",&t); while(t--) { scanf("%lld%lld%lld%lld",&a,&b,&c,&d); if(a<b || b>d){printf("No\n"); continue;} a%=b; if(okay(a,b,c,d)) printf("Yes\n"); else printf("No\n"); } return 0; }
//Love and Freedom. #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #include<map> #define ll long long #define inf 20021225 #define bs 331 #define ull unsigned long long using namespace std; map<ull,int> f[20]; char ch[40]; int col[20],n; ll ans; ull pw[20]; void calc(int fl) { ull x=0,y=0; int p=0,q=n; for (int i=1;i<=n;i++) if(col[i]>0) x+=(ull)col[i]*pw[p],p++; else y+=(ull)col[i]*pw[q],q--; if(fl) ans+=f[p][x+y]; else f[q][x+y]++; } void dfs1(int x) { if(x>n){calc(0); return;} col[x]=ch[x]-'a'+1; dfs1(x+1); col[x]=-col[x]; dfs1(x+1); } void dfs2(int x) { if(x<=n){calc(1); return;} col[2*n-x+1]=ch[x]-'a'+1; dfs2(x-1); col[2*n-x+1]=-col[2*n-x+1]; dfs2(x-1); } int main() { scanf("%d",&n); scanf("%s",ch+1); pw[0]=1; for(int i=1;i<=n;i++) pw[i]=pw[i-1]*bs; dfs1(1); dfs2(2*n); printf("%lld\n",ans); return 0; }
————————————分鸽线————————————
AGC034
A特判 B在整 感冒真不舒服
//Love and Freedom. #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #define ll long long #define inf 20021225 using namespace std; char ch[200001]; int a,b,c,d,n; int main() { scanf("%d%d%d%d%d",&n,&a,&b,&c,&d); int f=(d<c); scanf("%s",ch+1); for(int i=b-1;i<=d-1;i++) { if(i+2>n) continue; if(ch[i]=='.'&&ch[i+1]=='.'&&ch[i+2]=='.') f=0; } for(int i=a;i<=max(c,d)-1;i++) if(ch[i]=='#'&&ch[i+1]=='#'){f=1;break;} if(f==1) printf("No\n"); else printf("Yes\n"); return 0; }