Codeforces Round 806 (Div. 4)

A - YES or YES?

#include "bits/stdc++.h"
using namespace std;

#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0);
#define all(x) x.begin(),x.end()
#define pi pair<int,int> 
#define vi vector<int>
#define si set<int> 
#define mi map<int,int>
#define mc map<char,int>

void solve()
{
	string s;
	cin>>s;
	
	if(s=="YES"){
		cout<<"Yes"<<endl;
	}
	else {
		cout<<"NO"<<endl;
	}
	
	
}

signed main()
{
	IOS
	int t;
	cin>>t;
	while(t--){
		solve();
	}
}

B - ICPC Balloons

#include "bits/stdc++.h"
using namespace std;

#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0);
#define all(x) x.begin(),x.end()
#define pi pair<int,int> 
#define vi vector<int>
#define si set<int> 
#define mi map<int,int>
#define mc map<char,int>

void solve()
{
	int n;
	cin>>n;
	
	string s;
	cin>>s;
	int ans=0;
	map<char,int> mp;
	
	for (int i=0;i<(int)s.size();i++){
		if(mp[s[i]]==0){
			ans+=2;
			mp[s[i]]=1;
		}
		else {
			ans++;
		}
	}
	
	cout<<ans<<endl;
}

signed main()
{
	IOS
	int t;
	cin>>t;
	while(t--){
		solve();
	}
}

C - Cypher

#include "bits/stdc++.h"
using namespace std;

#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0);
#define all(x) x.begin(),x.end()
#define pi pair<int,int> 
#define vi vector<int>
#define si set<int> 
#define mi map<int,int>
#define mc map<char,int>

void solve()
{
	int n;
	cin>>n;
	
	vi a(n);
	for (int i=0;i<n;i++){
		cin>>a[i];
	}
	
	for (int i=0;i<n;i++){
		int m;
		cin>>m;
		string s;
		cin>>s;
		for (int j=0;j<m;j++){
			if(s[j]=='U'){
				if(a[i]==0){
					a[i]=9;
				}
				else {
					a[i]--;
				}
			}
			else {
				if(a[i]==9){
					a[i]=0;
				}
				else {
					a[i]++;
				}
				
			}
		}
	}
	
	for (int i=0;i<n;i++){
		cout<<a[i]<<" ";
	}
	cout<<endl;
	
	
	
}
signed main()
{
	IOS
	int t;
	cin>>t;
	while(t--){
		solve();
	}
}

D - Double Strings

这题数据较小遍历每个字符串暴力求解即可

#include "bits/stdc++.h"
using namespace std;

#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0);
#define all(x) x.begin(),x.end()
#define pi pair<int,int> 
#define vi vector<int>
#define si set<int> 
#define mi map<int,int>
#define mc map<char,int>

void solve()
{
	int n;
	cin>>n;
	
	string s[n];
	vi a(n);
	map<string ,int> mp;
	for (int i=0;i<n;i++){
		cin>>s[i];
		mp[s[i]]=1;
	}
	
	for (int i=0;i<n;i++){
		string s1=s[i];
		
			
			for (int j=0;j<(int)s1.size();j++){
				string s3=s1.substr(j);
				string s2=s1.substr(0,j);
			if(mp[s2] && mp[s3]){
				a[i]=1;
			
			}
		}
	}
		
	
	for (int i=0;i<n;i++){
		cout<<a[i];
	}
	cout<<endl;
}
signed main()
{
	IOS
	int t;
	cin>>t;
	while(t--){
		solve();
	}
}

E - Mirror Grid

实际上就是让四个部分关于中心点对称。所以只要遍历四分之一区块即可,通过推导推出另外三点于这点的关系。

#include "bits/stdc++.h"
using namespace std;

#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0);
#define all(x) x.begin(),x.end()
#define pi pair<int,int> 
#define vi vector<int>
#define si set<int> 
#define mi map<int,int>
#define mc map<char,int>

char s[110][110];

int n;
int sum=0;
void cal(int x,int y){
	int x1,x2,x3,y1,y2,y3;
	 x3=n+1-y,y3=x;
	 x1=n+1-x3,y1=n+1-y3;
	 x2=n+1-x,y2=n+1-y;
	
	int ans=0;
	if(s[x][y]=='1') ans++;
	if(s[x1][y1]=='1') ans++;
	if(s[x2][y2]=='1') ans++;
	if(s[x3][y3]=='1') ans++;
	
	sum+=min(ans,4-ans);
	
}

void solve()
{
	sum=0;

	cin>>n;
	
	for (int i=1;i<=n;i++){
		for (int j=1;j<=n;j++){
			cin>>s[i][j];
		}
	}
	for(int i = 1 ; i <= (n + 1) / 2 -(n%2); i ++ )
		for(int j = 1 ; j <= (n + 1) / 2 ; j ++ )
			cal(i,j);
		
	
	cout<<sum<<endl;

	
	
}
signed main()
{
	IOS
	int t;
	cin>>t;
	while(t--){
		solve();
	}
}

F - Yet Another Problem About Pairs Satisfying an Inequality

遍历一便当这个数小于这个数的下标时,就二分一下求出这个数大于的队列中的下标的数量。

并将这个下标放入队列中即可。(队列中放的都是下标)

#include "bits/stdc++.h"
using namespace std;
 
#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0);
#define all(x) x.begin(),x.end()
#define pi pair<int,int> 
#define vi vector<int>
#define si set<int> 
#define mi map<int,int>
#define mc map<char,int>
 
bool cmp(pi a,pi b){
	return a.first<b.first;
}
void solve()
{
	int n;
	cin>>n;
	vi a(n+1);
	vector<int> v;
	for (int i=1;i<=n;i++){
		cin>>a[i];
	}
	
	int sum=0;
	for (int i=1;i<=n;i++){
		if(a[i]<i){
			sum+=lower_bound(v.begin(),v.end(),a[i])-v.begin();
			v.push_back(a[i]);
		}
	}
	
	cout<<sum<<endl;
	
	
	
	
}
 
signed main()
{
	IOS
	int t;
	cin>>t;
	while(t--){
		solve();
	}
}

G - Good Key, Bad Key

这题可以考虑贪心的思想。因为dp的话具有后效性。因为要上限最高,所以尽量让坏钥匙放在后面,因为不会降低上限。所以我们遍历一遍分界点,从第一个到最后一个。其中坏钥匙最多只要计算32个左右,因为数值最大为1e9 

#include "bits/stdc++.h"
using namespace std;

#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0);
#define all(x) x.begin(),x.end()
#define pi pair<int,int> 
#define vi vector<int>
#define si set<int> 
#define mi map<int,int>
#define mc map<char,int>

int m[40];
void solve()
{
	int n,k;
	cin>>n>>k;
	int maxn=0;
	int sum=0;
	vi a(n+1);
	vi s(n+1);
	for (int i=1;i<=n;i++){
		cin>>a[i];
		s[i]=s[i-1]+a[i];
	}
	
	
	for (int i=0;i<=n;i++){
		sum=s[i]-(int)i*k;
		for (int j=i+1;j<=min(i+32,n);j++){
			sum+=a[j]/m[j-i];
		}
		maxn=max(maxn,sum);
	}
	cout<<maxn<<endl;
}

signed main()
{
	m[0]=1;
	for (int i=1;i<=35;i++){
		m[i]=m[i-1]*2;
	}
	IOS
	int t;
	cin>>t;
	while(t--){
		solve();
	}
}

相关推荐

  1. Codeforces Round 806 (Div. 4)

    2024-03-30 04:48:05       22 阅读
  2. Codeforces Round 835 (Div. 4)

    2024-03-30 04:48:05       27 阅读
  3. Codeforces Round 898 (Div. 4)

    2024-03-30 04:48:05       32 阅读
  4. Codeforces Round 817 (Div. 4)

    2024-03-30 04:48:05       16 阅读
  5. Codeforces Round 944 (Div. 4)

    2024-03-30 04:48:05       10 阅读
  6. Codeforces Round 952 (Div. 4)

    2024-03-30 04:48:05       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-30 04:48:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-30 04:48:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-30 04:48:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-30 04:48:05       20 阅读

热门阅读

  1. OpenCV的高级应用

    2024-03-30 04:48:05       21 阅读
  2. Vue3之setup方法

    2024-03-30 04:48:05       16 阅读
  3. python面试题(21~35)

    2024-03-30 04:48:05       17 阅读
  4. 深入理解Yarn:安装、配置与最佳实践

    2024-03-30 04:48:05       16 阅读
  5. iOS VideoToolBox 解码 HEVC Open-GOP 视频的问题排查

    2024-03-30 04:48:05       16 阅读
  6. vue 条件渲染

    2024-03-30 04:48:05       19 阅读
  7. Android 子module添加渠道配置异常

    2024-03-30 04:48:05       15 阅读