首页 > 其他分享 >Codeforces Round 911 (Div. 2) A-C

Codeforces Round 911 (Div. 2) A-C

时间:2023-11-27 15:35:59浏览次数:32  
标签:const int tt 单元格 vertex Codeforces st Div 911

Codeforces Round 911 (Div. 2)

A. Cover in Water

题意:

有n个单元格,有的空着有的被堵住,可以做两种操作:给一个空着的单元格放入水;将单元格的水移到另一个单元格。并且,若一个单元格左右两边都有水,它也会自动充满水。所有空着的单元格都要充满水,求最少的放入水的次数

思路:

若存在三个空着的单元格,则可以放入两次水实现水的无限再生
(类似于minecraft中三格水可以实现无限水的操作)

代码:

#include <bits/stdc++.h>
using namespace std ;
const int MAXN=1e5+7;
const int INF = 0x3f3f3f3f;
typedef long long ll;
#define endl "\n"

void solve(){
	int n;
    cin>>n;
    string s;
    cin>>s;
    int ans=0;
    int count=0;
    for(int i=0;i<n;i++){
        if(s[i]=='.'){
            count++;
            ans++;
        }else{
            if(count>=3){
                cout<<2<<endl;
                return ;
            }
            count=0;
        }
    }
    if(count>=3){
        cout<<2<<endl;
    }else
    cout<<ans<<endl;
}

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);

	int t=1;
	
	cin>>t;
	while(t--){
		solve();
	}
	
	return 0;
}

B. Laura and Operations

题意:

黑板上有三个数字123,有a个1,b个2,c个3,可以做操作:擦去1和2,写上3也可以同理写上1和2,请问是否能通过操作实现黑板上只有1或者只有2或者只有3

思路:

假设要实现黑板上只有1,可以将2和3抵消来生成1,可能还会剩余k个3,此时将一个1和一个3生成一个2,这个2和一个3生成回到一个1同时这个操作消耗掉了两个3,所以只要k是个偶数就能够实现

代码:

#include <bits/stdc++.h>
using namespace std ;
const int MAXN=1e5+7;
const int INF = 0x3f3f3f3f;
typedef long long ll;
#define endl "\n"

void solve(){
	int a,b,c;
    cin>>a>>b>>c;
    int num=max(b,c)-min(b,c);
    if(num%2==1){
        cout<<0<<" ";
    }else{
        cout<<1<<" ";
    }
    
    num=max(a,c)-min(a,c);
    if(num%2==1){
        cout<<0<<" ";
    }else{
        cout<<1<<" ";
    }

    num=max(b,a)-min(b,a);
    if(num%2==1){
        cout<<0<<" ";
    }else{
        cout<<1<<" ";
    }
    cout<<endl;
}

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);

	int t=1;
	
	cin>>t;
	while(t--){
		solve();
	}
	
	return 0;
}

C. Anji's Binary Tree

题意:

有一棵二叉树,每个节点有一个字母,U代表前往父节点,L代表前往左孩子,R代表前往右孩子,从节点1出发,通过修改几个节点的字母来到达叶子节点,求修改的最小次数

思路:

树上bfs,\(d_i\)代表到达节点最少要几次修改操作

代码:

#include <bits/stdc++.h>
using namespace std ;
const int MAXN=3e5+7;
const int INF = 0x3f3f3f3f;
typedef long long ll;
#define endl "\n"

int n;
string s;

struct node{
    int l,r;
}vertex[MAXN];

int ans;

void bfs(int t){
    queue <int > q;
    while(!q.empty()){
        q.pop();
    }
    q.push(t);
    int d[n+1];
    d[t]=0;
    while(!q.empty()){
        int st=q.front();
        q.pop();
        if(vertex[st].l==0&&vertex[st].r==0){
            ans=min(ans,d[st]);
            continue;
        }
        if(vertex[st].l>0){
            int tt=vertex[st].l;
            q.push(tt);
            if(s[st-1]!='L'){
                d[tt]=d[st]+1;
            }else{
                d[tt]=d[st];
            }
        }
        if(vertex[st].r>0){
            int tt=vertex[st].r;
            q.push(tt);
            if(s[st-1]!='R'){
                d[tt]=d[st]+1;
            }else{
                d[tt]=d[st];
            }
        }
    }
}

void solve(){
    cin>>n;
    cin>>s;
    int x,y;
    for(int i=1;i<=n;i++){
        cin>>x>>y;
        vertex[i].l=x;
        vertex[i].r=y;
    }
    ans=INF;
    bfs(1);
    cout<<ans<<endl;
}

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);

	int t=1;
	
	cin>>t;
	while(t--){
		solve();
	}
	
	return 0;
}

标签:const,int,tt,单元格,vertex,Codeforces,st,Div,911
From: https://www.cnblogs.com/beater/p/17859456.html

相关文章

  • CodeTON Round 7 (Div. 1 + Div. 2, Rated, Prizes!)
    20231127A.JaggedSwaps题意是:给你一个数组进行无数次的操作问你能不能单调思路:通过观察发现进行操作大的一定会被放在后面,所以一定会单调,但是操作是从2开始的,所以下表1的地方一定要是1usingnamespacestd;inta[20];voidsolve(){intn;cin>>n;for(in......
  • Codeforces Round 911 (Div. 2)
    A-CoverinWater三个连续的.就可以造出无限水,这时直接输出\(2\),否则输出区间长度和。SubmissionB-LauraandOperations每次操作不会改变不需要的两个数的个数的和的奇偶性,而当这个和为偶数的时候,通过若干操作一定可以全部变成另一个。SubmissionC-Anji'sBinary......
  • 汇编div的注意
    无符号除法32位模式下,DIV(无符号除法)指令执行8位、16位和32位无符号数除法,结果以余数和商的方式表现。格式如下:DIV8位寄存器或内存DIV16位寄存器或内存DIV32位寄存器或内存被除数除数商余数AXreg/mem8ALAHDX:AXreg/mem16AXDXEDX:EAXreg/mem32EAXEDX根据以上表格可......
  • Codeforces Round 911 (Div. 2) A
    真的太菜了……题目链接:Problem-A-Codeforces//Problem:A.CoverinWater//Contest:Codeforces-CodeforcesRound911(Div.2)//URL:https://codeforces.com/contest/1900/problem/0#//MemoryLimit:256MB//TimeLimit:1000ms////PoweredbyCPEd......
  • [Codeforces] CF1799B Equalize by Divide
    序列操作(divide.cpp)—CF1799B—1200题目描述给您一个\(a_1,a_2,\dotsa_n\)这样的正整数数组,您可以对它进行多次(可以是零次)这样的操作:选择两个索引\(i,j(1\leqi,j\leqn,i\neqj)\);将\(a_i\)赋值为\(\lceil\frac{a_i}{a_j}\rceil\)。这里的\(\lceilx\rceil\)......
  • [Codeforces] CF1747C Swap Game
    游戏(game.cpp)—CF1747C—1200\(时间:1s\space|\space空间:250MB\)题面翻译Alice和Bob两个人在玩游戏。有一个长度为\(n\)的序列\(a\),Alice和Bob两人轮流完成一个操作,Alice先开始。每个人可以将数列的第一个数减\(1\),并将它与后面序列的一个数进行交换,如果一个......
  • CodeTON Round 7 (Div. 1 + Div. 2, Rated, Prizes!)
    CodeTONRound7(Div.1+Div.2,Rated,Prizes!)A-JaggedSwaps解题思路:若\(a[1]=1\),则可以。代码:#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;typedefpair<int,int>pii;#definefifirst#definesesecondvoidsolve(){......
  • CodeTON Round 7 (Div. 1 + Div. 2, Rated, Prizes!)
    CodeTONRound7(Div.1+Div.2,Rated,Prizes!)A-JaggedSwapsintmain(){IOS;for(cin>>_;_;--_){cin>>n;rep(i,1,n)cin>>a[i];while(true){boolf=0;rep(i,......
  • CodeTON Round 7 (Div. 1 + Div. 2) 解题报告
    CodeTONRound7(Div.1+Div.2)ContestLink广告:本场比赛博主使用了CCH完成,体验很好,推荐高rating用户使用(低rating受cloudflare影响很大)。A.JaggedSwaps\(\text{Status:\color{green}+\color{black}00:03}\)结论:输出YES当且仅当\(a_1=1\)。证明:如......
  • CF 158 (Rated for Div
    CF-158这次比赛较上次也是有进步,成功地多AC了一道题。但第4题也是很遗憾只差一点了。A.LineTrip题意:车在数轴上从$0$点到达$x$点又返回$0$点,有$k$点的油,可以走$k$个单位,在数轴上$a_1,a_2,a_3...a_n$处可以加油到$k$点,$0$点处和$x$点处无法加油,问$k$的最小值。思路:那么根据题......