[Updating]Codeforces Round #402 (Div. 1)解题报告
2017-03-06 08:04
423 查看
A-String Game
简单的二分+模拟
B-Bitwise Formula
大模拟
简单的二分+模拟
//Author: Lixiang #include<stdio.h> #include<string.h> const int maxn=200001; struct String_Game{ char A[maxn],B[maxn],c[maxn]; int pos[maxn],N,n; void init(){ scanf("%s%s",&A,&B); N=strlen(A); n=strlen(B); for(int i=1;i<=N;i++) scanf("%d",pos+i); } bool check(int p){ strcpy(c,A); for(int i=1;i<=p;i++)c[pos[i]-1]=0; int j=0; for(int i=0;i<N&&j<n;i++){ if(c[i]==0)continue; if(c[i]==B[j])j++; } if(j==n)return 1; else return 0; } void work(){ int L=0,R=N,ans,M; while(L<=R){ M=(L+R)>>1; if(check(M)){ L=M+1; ans=M; } else R=M-1; } printf("%d\n",ans); } }sol; int main(){ sol.init(); sol.work(); return 0; }
B-Bitwise Formula
大模拟
#include<stdio.h> #include<map> #include<string> #include<iostream> using namespace std; const int maxn=100001,maxm=1001; struct Bitwise_Formula{ map <string,int> hash; int a[maxn][maxm],t[maxn],ta[maxn],tb[maxn],N,M; void init(){ string s; hash["?"]=0; scanf("%d%d",&N,&M); for(int i=1;i<=N;i++){ cin>>s; hash[s]=i; cin>>s;cin>>s; if(s[0]=='0'||s[0]=='1'){ for(int j=0;j<M;j++)a[i][j]=s[j]-'0'; continue; } ta[i]=hash[s]; cin>>s; t[i]=(s[0]=='A')?1:(s[0]=='O'?2:3); cin>>s; tb[i]=hash[s]; } } int check(int p,int k){ int f[maxn],sum=0; f[0]=k; for(int i=1;i<=N;i++){ if(t[i]==0)f[i]=a[i][p]; if(t[i]==1)f[i]=f[ta[i]]&f[tb[i]]; if(t[i]==2)f[i]=f[ta[i]]|f[tb[i]]; if(t[i]==3)f[i]=f[ta[i]]^f[tb[i]]; sum+=f[i]; } return sum; } void work(){ int aa[maxn],bb[maxn],x,y; for(int i=0;i<M;i++){ x=check(i,0),y=check(i,1); aa[i]=y<x,bb[i]=x<y; } for(int i=0;i<M;i++)printf("%d",aa[i]); puts(""); for(int i=0;i<M;i++)printf("%d",bb[i]); puts(""); } }sol; int main(){ sol.init(); sol.work(); return 0; }
相关文章推荐
- [Updating] Codeforces Round #404 (Div. 2) 解题报告
- [Updating] Playrix Codescapes Cup (Codeforces Round #413, rated, Div. 1 + Div. 2) 解题报告
- [Updating] Codeforces Round #406 (Div. 2) 解题报告
- [Updating]Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals)解题报告
- Croc Champ 2013 - Round 2 (Div. 2 Edition) E. Cube Problem 解题报告
- 【解题报告】Codeforces Round #344 (Div. 2)
- Codeforces Round #305 (Div. 1) A.B.C 解题报告
- 【解题报告】Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition)
- Codeforces 448(#256 (Div. 2) ) 解题报告
- Codeforces 450(#257 (Div. 2) ) 解题报告
- 解题报告:Codeforces Round #193 (Div. 2) C. Students' Revenge 贪心
- Codeforces Round #380 (Div. 2) 解题报告
- 【解题报告】Codeforces Round #301 (Div. 2)
- Codeforces Round #341 (Div. 2) 解题报告
- Topcoder SRM 584 DIV2 解题报告
- Topcoder SRM 583 DIV2 解题报告
- Codeforces AIM Tech Round (Div. 2)解题报告
- Codeforces Round #306 (Div. 2) D.E. 解题报告
- codeforces Round #258(div2) A解题报告
- codeforces Round #238(div2) d解题报告