首页 > 其他分享 >Educational Codeforces Round 161 (Rated for Div. 2)

Educational Codeforces Round 161 (Rated for Div. 2)

时间:2024-01-19 12:11:44浏览次数:24  
标签:Educational Rated cout int Codeforces long cin -- solve

Educational Codeforces Round 161 (Rated for Div. 2)

比赛链接

A. Tricky Template

思路:

貌似只要想到了就可以,我是记录了一下字符串c和字符串a和b之间的满足数,如果等于n表示一定不存在,否则就是存在的

Code:

#include<bits/stdc++.h>
using namespace std;
#define int long long


void solve() {
	int n;
	cin>>n;
	string s1,s2,s3;
	cin>>s1;
	cin>>s2;
	cin>>s3;
	// strig s4="";
	int ans=0;

	for(int i=0;i<n;i++){
		if(s1[i]!=s2[i]){
			if(s3[i]==s1[i]||s3[i]==s2[i]){
				ans++;

			}
		}
		if(s1[i]==s2[i]){
			if(s3[i]==s1[i]){
				ans++;
			}
		}

	}
	if(ans==n){
		cout<<"NO"<<endl;
		return ;
	}
	cout<<"YES"<<endl;
	
	
}

signed main() {
	ios::sync_with_stdio(false); cin.tie(nullptr);
	int t; cin >> t; while(t--)
	solve();
	return 0;
}

B. Forming Triangles

思路:

因为每根长度都是2的ai次方,因此保证了三角形不会出现三个边不一样的,最后用组合数算一下就行

Code:

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=3e5+10;
int a[N];
int C(int x,int y){
	int ans1=1;
	int ans2=1;

	for(int i=x,j=y;j>=1;i--,j--){
		ans1*=i;
		ans2*=j;
	}
	return ans1/ans2;

}

void solve() {
	int n;
	cin>>n;
	int ans=0;
	memset(a,0,sizeof a);
	for(int i=1;i<=n;i++){
		int x;
		cin>>x;
		
		a[x]++;

	}
	int k=0;

	for(int i=0;i<=n;i++){
		if(a[i]>=3){
			ans+=C(a[i],3);
		}
		if(a[i]>=2){
			ans+=C(a[i],2)*k;
			// k+=a[i];
			
		}
		k+=a[i];
		
	}
	cout<<ans<<endl;
	return ;
}

signed main() {
	ios::sync_with_stdio(false); cin.tie(nullptr);
	int t; cin >> t; while(t--)
	solve();
	return 0;
}

C. Closest Cities

思路:

感觉这个比b要好想,前缀和的应用,只需要改一下其中加的是绝对值还是1就好了,然后正着求一次,反着求一次

Code:

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e5+10;
int a[N];
int s1[N];
int s2[N];
int v[N];

void solve() {
	int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=1;i<=n;i++){
        if(i==1){
            v[i]=i+1;
            // cout<<v[i]<<" ";
            continue;
        }
        if(i==n){
            v[i]=i-1;
            // cout<<v[i]<<" ";
            
            continue;
        }
        v[i]=(a[i]-a[i-1])>a[i+1]-a[i]?i+1:i-1;
        // cout<<v[i]<<" ";
    }
   	// cout<<endl;
   	
    for(int i=1;i<=n;i++){
        if(i==1){
            s1[i]=0;
            // cout<<s1[i]<<" ";
            
            continue;
        }
        // s1[i]=s1[i-1]+(v[i-1]==i?1:(v[i]-v[i-1]));
        // cout<<s1[i]<<" ";
        if(v[i-1]==i){
        	s1[i]=s1[i-1]+1;
        }
        else{
        	s1[i]=s1[i-1]+(a[i]-a[i-1]);

        }
        // cout<<s1[i]<<" ";
        


    }
    cout<<endl;

    for(int i=n;i>=1;i--){
        if(i==n){
            s2[i]=0;
            // cout<<s2[i]<<" ";
            continue;
        }
        s2[i]=s2[i+1]+(v[i+1]==i?1:(a[i+1]-a[i]));
        // cout<<s2[i]<<" ";
        
    }
    int m;
    cin>>m;
    while(m--){
        int x,y;
        cin>>x>>y;
        if(y>=x){
            cout<<s1[y]-s1[x]<<endl;
        }
        else{
        	cout<<s2[y]-s2[x]<<endl;
        	
        }
    }
}

signed main() {
	ios::sync_with_stdio(false); cin.tie(nullptr);
	int t; cin >> t; while(t--)
	solve();
	return 0;
}

标签:Educational,Rated,cout,int,Codeforces,long,cin,--,solve
From: https://www.cnblogs.com/du463/p/17974349

相关文章

  • CodeForces & AtCoder rating 规则简述
    译者:rui_er,转载请注明出处。(备份自2020年11月2日的同名博客)本博客为了方便自己查阅,同时也方便大家了解,但因为我英语很菜,所以难免有翻译错的地方,还请评论区纠正。未注明资料来源的均为常识积累。1CodeForcesrating规则1.1CodeForcesrating与名字颜色换算设\(r\)......
  • hey_left 8 Codeforces Round 871 (Div. 4)
    题目链接A.直接比较输入字符串和已知字符串有几个不同即可#include<bits/stdc++.h>usingnamespacestd;voidsolve(){strings;cin>>s;intans=0;stringt="codeforces";for(inti=0;i<10;i++){if(s[i]!=t[i])ans++;}cout<&......
  • hey_left 7 Codeforces Round 886 (Div. 4) 续
    题目链接F.记录下出现的数字和个数注意放置陷阱的位置1-n都有可能然后遍历1-n,对每个数进行因子分解,对于在因子的位置上有青蛙的,加上青蛙的个数,取最大即可#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=2e5+10;voidsolve(){int......
  • CodeForces 1466H Finding satisfactory solutions
    洛谷传送门CF传送门考虑给定\(b\)如何构造\(a\)。拎出基环树的环部分,把这些点连同它们的边删掉(这个环一定在答案中)。递归做即可。考虑我们在\(a\)的环上连一些在\(\{b_{i,n}\}\)中排得比\(a_i\)前的\(i\toj\)。可以将问题转化为,若干个环,缩点后连一些边使得它成......
  • hey_left 6 Codeforces Round 886 (Div. 4)
    题目链接A.判总和-最小值的差是否大等于10即可#include<bits/stdc++.h>usingnamespacestd;constintN=2e5+10;voidsolve(){inta,b,c;cin>>a>>b>>c;intans=a+b+c;ans-=min({a,b,c});if(ans>=10){cout<<"YES&qu......
  • CodeForces 986F Oppa Funcan Style Remastered
    洛谷传送门CF传送门有意思的。对\(k\)分解质因数,题目实际上是想让我们解一个\(\sum\limits_{i=1}^ma_ix_i=n\)的方程。考虑\(m=1\)特判,\(m=2\)exgcd。\(m=3\)时发现\(\min\limits_{i=1}^ma_i\lek^{\frac{1}{3}}\le10^5\),所以可以跑同余最短路。......
  • CodeForces 814E An unavoidable detour for home
    洛谷传送门CF传送门考虑给图分层,一层的点一一对应上一层的一些点。设\(f_{i,j}\)为考虑了前\(i\)个点,最后一层有\(j\)个点,除了最后一层点的其他点度数限制已经满足的方案数。转移系数是\(g_{i,j,k}\)表示这一层有\(i\)个点,上一层有\(j\)个\(2\)度点,\(k\)个......
  • Codeforces Round 920 (Div. 3)
    题目链接:CodeforcesRound920(Div.3)PS:很长时间没写题,状态不好,写的很差A.Square题意:给出正方形四个点的坐标,求面积解题思路:签到查看代码 voidsolve(){ vector<PII>v; for(inti=1;i<=4;i++){ intx,y; cin>>x>>y; v.push_back({x,y}); } sort......
  • hey_left 5 Codeforces Round 898 (Div. 4)
    题目链接A.一次交换,最多让两个字符归位若三个字符都不在该在的位置上,那么无法完成若有一个字符在该在的位置上,那么可以完成usingnamespacestd;voidsolve(){chara,b,c;cin>>a>>b>>c;if(a=='a'||b=='b'||c=='c'){cout<<"YES"<<&......
  • hey_left 4 Codeforces Round 898 (Div. 4) 续
    题目链接F.先把序列分割成一个个满足条件的子序列然后二分长度,去判断子序列是否满足长度,若有一个满足,这个答案可行,判断更长的长度debug:存下的子序列忽略了单个元素,单个元素也是一个子序列,把每个元素单独作为一个子序列后可以ac题解有更简单的做法,双指针,直接遍历一遍得到答案......