U598694 整数求和

智人都会系列。

#include<iostream>

using namespace std;
int n,ans;
int main(){
	ios::sync_with_stdio(0);
	cin.tie(nullptr);
	cin>>n;
	for(int i=1;i<=n;i++){
		int t;
		cin>>t;
		ans+=t;
	}
	cout<<ans;
	return 0;
}

U598695 都是兄第

都是兄弟,写什么题?

#include<iostream>
#include<vector>
#include<set>
using namespace std;
int n,m;
vector<set<int>>v;
int main(){
	ios::sync_with_stdio(0);
	cin.tie(nullptr);
	cin>>n>>m;
	v.resize(n);
	for(int i=0;i<m;i++){
		int k;
		cin>>k;
		for(int t=0;t<k;t++){
			int p;
			cin>>p;
			v[p-1].insert(i);
		}
	}
	for(auto &&i:v){
		for(auto &&t:v){
			bool fd=0;
			for(int l=0;l<m;l++){
				if(i.find(l)!=i.end()&&t.find(l)!=t.end()){
					fd=1;
				}
			}
			if(!fd){
				cout<<"No";
				return 0;
			}
		}
	}
	cout<<"Yes";
	return 0;
}

U598696 和为偶数

奇偶分离。

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int n,maxn;
vector<int>ods,tds;
int main(){
	ios::sync_with_stdio(0);
	cin.tie(nullptr);
	cin>>n;
	for(int i=0;i<n;i++){
		int t;
		cin>>t;
		if(t%2){
			ods.push_back(t);
		}else{
			tds.push_back(t);
		}
	}
	sort(ods.begin(),ods.end());
	sort(tds.begin(),tds.end());
	if(tds.size()<2&&ods.size()<2){
		cout<<-1;
		return 0;
	}
	if(tds.size()==1){
		maxn=max(maxn,tds.back());
	}
	if(ods.size()>=2){
		maxn=max(maxn,ods.back()+*(ods.rbegin()+1));
	}
	if(tds.size()>=2){
		maxn=max(maxn,tds.back()+*(tds.rbegin()+1));
	}
	cout<<maxn;
	return 0;
}

U598706 棋子跳跃

最新专武:跳棋球珠。

#include<iostream>
#include<vector>
#include<queue>
#include<array>
using namespace std;
int n,k,cnt;
vector<int>rx(1),ry(1);
vector<vector<int>>vis;
class bfs_class{
	queue<pair<int,int>>q;
public:
	void run(){
		q.push(make_pair(1,1));
		while(q.size()){
			auto tp=q.front();
			q.pop();
			for(int i=1;i<=cnt;i++){
				int nx=tp.first+rx[i],ny=tp.second+ry[i];
				if(nx>=1&&nx<=n&&ny>=1&&ny<=n&&vis[nx-1][ny-1]==-1){
					vis[nx-1][ny-1]=vis[tp.first-1][tp.second-1]+1;
					q.push(make_pair(nx,ny));
				}
			}
		}
	}
}bfs;
int main(){
	ios::sync_with_stdio(0);
	cin.tie(nullptr);
	cin>>n>>k;
	vis.resize(n);
	for(auto &&i:vis){
		i.resize(n);
		for(auto &&t:i){
			t=-1;
		}
	}
	vis[0][0]=0;
	for(int i=-410;i<=410;i++){
		for(int t=-410;t<=410;t++){
			if(i*i+t*t==k){
				cnt++;
				rx.push_back(i);
				ry.push_back(t);
			}
		}
	}
	bfs.run();
	for(auto i:vis){
		for(auto t:i){
			cout<<t<<' ';
		}
		cout<<'\n';
	}
	return 0;
}

U598715 暴力出省一

美梦成真!

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int n,m;
vector<int>v;
vector<vector<int>>jf;
int main(){
	ios::sync_with_stdio(0);
	cin.tie(nullptr);
	cin>>n>>m;
	v.resize(n);
	for(auto &&i:v){
		cin>>i;
	}
	jf.resize(m);
	for(int i=1;i<=n;i++){
		int j=1;
		if(v[i-1]<0){
			j=-v[i-1]/i;
		}
		for(;v[i-1]+j*i<=n&&j<=m;j++){
			if(v[i-1]+j*i>=0){
				jf[j-1].push_back(v[i-1]+j*i);
			}
		}
	}
	for(int i=1;i<=m;i++){
		sort(jf[i-1].begin(),jf[i-1].end());
		int ans=0,f=0;
		for(auto x:jf[i-1]){
			if(x<ans){
				continue;
			}
			if(ans!=x){
				f=1;
				cout<<ans<<endl;
				break;
			}else{
				ans++;
			}
		}
		if(!f){
			cout<<ans<<'\n';
		}
	}
	return 0;
}

本页面的所有内容均在CC-BY-NC-NDSATA协议之条款下提供,附加条款亦可能应用