Codeforces Round 912 (Div. 2)

A. Halloumi Boxes

题意:长度为n的数组,你可以逆转最多k长度,问你能不能是数组递增

思路:如果k>=2那么每个数都可以两两交换,如果下表1的地方是1就一定可以,k=1的话单独讨论

image

using namespace std;
void solve(){
	int n,k;
	cin>>n>>k;
	vector<int>a(n+1);
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	if(k>1){
		cout<<"YES\n";
	}else{
		for(int i=2;i<=n;i++){
			if(a[i]<a[i-1]){
				cout<<"NO\n";
				return;
			}
		}
		cout<<"YES\n";
	}
}
int main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	int t=1;
	cin>>t;
	for(int i=1;i<=t;i++)solve();
	return 0;
} 

B. StORage room

题意是:给定一个n*n矩阵,找到一个数组a使得image

image

如果不存在就输出-1

思路:image

#include<bits/stdc++.h>
using namespace std;
int a[1005][1005];
int b[1005];
void solve(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		b[i]=-1;
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>a[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(i!=j){
			  if(b[i]==-1)b[i]=a[i][j];
			  else b[i]&=a[i][j];
			}
		}
	}
	for(int i=1;i<=n-1;i++){
		for(int j=i+1;j<=n;j++){
			if((b[i]|b[j])!=a[i][j]){
				cout<<"NO\n";
				return;
			}
		}
	}
    cout<<"YES\n";
    for(int i=1;i<=n;i++){
    	cout<<max(0,b[i])<<" ";
	}
	cout<<"\n";
}
int main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	int t=1;
	cin>>t;
	for(int i=1;i<=t;i++)solve();
	return 0;
} 

C. Theofanis' Nightmare

题意是:给定一个数组,将数组划分为子数组,按照本题的定义可以得出一个数值

如图所示image

思路:如果是i*sum[i],那么是不是可以把问题转化为这个sum[i]加了i次呢,将乘法转化为了加法。又因为从前往后不知道该怎么划,那么从后往前划即可,为使答案尽可能的大,如果sum>0就划分为一个新的区间

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+10;
int a[N];
void solve(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	int ans=0;
	int sum=0;
	for(int i=n;i>=1;i--){
		sum+=a[i];
		if(sum>0||i==1){
			ans+=sum;
		} 
	}
	cout<<ans<<"\n";
}
signed main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	int t=1;
	cin>>t;
	for(int i=1;i<=t;i++)solve();
	return 0;
} 

本文作者:yufan1102

本文链接:https://www.cnblogs.com/yufan1102/p/17873336.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   yufan1102  阅读(131)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.