您好,欢迎来到二三四教育网。
搜索
您的当前位置:首页Educational Codeforces Round 137 (Rated for Div. 2)(A-D)(补)

Educational Codeforces Round 137 (Rated for Div. 2)(A-D)(补)

来源:二三四教育网

A.c(10-n) 2 *3即可

#include <bits/stdc++.h>
using namespace std;
void solve(){
	int n;cin>>n;
	for(int i=1;i<=n;i++){
		int x;cin>>x;
	}
	int d=10-n;int sum=0;
	sum=d*(d-1);
	cout<<sum*3<<'\n';
}
int main(){
	int t;cin>>t;
	while(t--){
		solve();
	}
} 

B. 把1和2分别放在两边即可

#include <bits/stdc++.h>
using namespace std;
void solve(){
	int n;cin>>n;
	cout<<1<<" ";
	for(int i=n;i>2;i--){
		cout<<i<<" ";
	}
	cout<<2<<" ";
	cout<<'\n';
}
int main(){
	int t;cin>>t;
	while(t--){
		solve();
	}
} 

C. 由于这个盖子只能往前走一步 所以从前向后遍历一遍即可

#include <bits/stdc++.h>
using namespace std;
void solve(){
	int n;cin>>n;
	int a[n];
	string s;cin>>s;
	for(int i=0;i<n;i++)cin>>a[i];
	for(int i=0,j=-1;i<n;i++){
		if(s[i]=='0')j=i;
		else if(j>=0&&a[i]<a[j]){
			swap(s[i],s[j]);
			j=i;
		}
	}
	long long ans=0;
	for(int i=0;i<n;i++){
		if(s[i]=='1')ans+=a[i]; 
	}
	cout<<ans<<'\n';
}
int main(){
	int t;cin>>t;
	while(t--){
		solve();
	}
}

D. s1 肯定是去除前导0的整穿 s2就是第一段连续的1 由于是随机数 所以直接暴力就好了(仰慕一下榜一的代码吧 ,自己写的太丑了 )如果不是随机数要用KMP

#include <bits/stdc++.h>

using i = long long;

int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    
    int n;
    std::cin >> n;
    
    std::string s;
    std::cin >> s;
    
    if (s.find('1') == std::string::npos) {
        std::cout << 0 << "\n";
        return 0;
    }
    
    int a = s.find('1');
    
    if (s.substr(a).find('0') == std::string::npos) {
        std::cout << s.substr(a) << "\n";
        return 0;
    }
    
    int b = a + s.substr(a).find('0');
    
    auto ans = s;
    
    for (int i = 0; i <= b - a; i++) {
        auto res = s;
        for (int j = 0; j + i < n; j++) {
            res[j + i] |= s[j];
        }
        ans = std::max(ans, res);
    }
    ans = ans.substr(ans.find('1'));
    std::cout << ans << "\n";
    
    return 0;
}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- how234.cn 版权所有 赣ICP备2023008801号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务