Educational Codeforces Round 132 (Rated for Div. 2)+Codeforces Round #810 (Div. 2)

A. Three Doors

平平无奇的一个模拟水题,经常考下标的知识。



    #include 
    using namespace std;
    int a[3];
    int main(){
    	int t;
    	cin>>t;
    	while(t--){
    		int x;
    		cin>>x;
    		for(int i=1;i<=3;i++)
    			cin>>a[i];
    	if(a[x]==0) {printf("NO\n");} 
        else if(a[a[x]]==0) {printf("NO\n");}
    	else printf("YES\n");
    		
    	}
    }

B 多次询问,有条件的前后前缀和+差分,即可求得

数据范围,记得long long

    #include 
    using namespace std;
    #define ll long long
    ll a[100010];	
    int n,m;
    ll d1[100010],d2[100010];
    void solve(){
    	cin>>n>>m;
    	for(int i=1;i<=n;i++) cin>>a[i];
    	 for(int i=1;i<=n;i++) {
    	 	d1[i]=d1[i-1];
    	 	if(a[i]=1;i--){
    	 	d2[i]=d2[i+1];
    	 	if(a[i]>x>>y;
    	 		if(x

C 括号匹配问题,尽量让左边都是左括号,右边都是右括号,找到临界值进行判断。

    #include 
    using namespace std;
    const int N=2e5+10;
    #define  ll long long
    char a[N];
    int s[N];
    void solve(){
        cin>>a+1;
    	int len=strlen(a+1);
    	int tot=0,id=0;
    	for(int i=1;i<=len;i++){
    		if(a[i]=='(') tot++;
    		if(a[i]==')') tot--;
    		if(a[i]=='?') s[++id]=i;
    		
    	}
    	if(tot==id||id==-tot){
    		printf("YES\n");
    		return;
    	}
    	int mid=(id-tot)/2;
    	for(int i=1;i

A 一道贪心而已,先输出这个数,然后每个数都会无法整除,最小为1

    #include 
    using namespace std;
    void solve(){
    	int x;
    	cin>>x;
    	cout<>t;
    	while(t--){
    		solve();
    	}
    }

B题

建图,然后分情况考虑。首先m为偶数的时候,那么把需要的人邀请过来即可,不开心为0;

如果m为奇数,那么一定至少少一对朋友,可以少一个人,也可以少两个人,少两个人的情况直接两层遍历,少一个人的情况:如果这个人为偶数对关系,那么剩下的是奇数对关系,将这个人的值和剩下的奇数对关系的值比较即可。

    #include 
    using namespace std;
    vectora[100100];
    long long  b[100100];
    int t;	int n,m;	int x,y;
    int main(){
     
    	cin>>t;
    	while(t--){
    	cin>>n>>m;long long ans=0;
    	for(int i=1;i<=n;i++) a[i].clear();
    	for(int i=1;i<=n;i++) {
    		cin>>b[i];
    		ans+=b[i]; 
    	}
    for(int i=1;i<=m;i++){
    		
    			cin>>x>>y;
    			a[x].push_back(y);
    			a[y].push_back(x);
    			
    }
     
     
    	if((m%2)==0) {
    		cout<<"0"<

从这里书写我的奇迹。

你可能感兴趣的:(7月份cf做题,c++,算法)