A. Choose Two Numbers
分析: 桶
代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 104;
int a[maxn],b[maxn],u[500],v[500];
int main()
{
	int n,m;
	cin>>n;
	for(int i=1;i<=n;i++) {
		cin>>a[i];
		u[a[i]]=1;
	}
	cin>>m;
	for(int i=1;i<=m;i++) {
		cin>>b[i];v[b[i]]=1;
	}
	for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) 
		if(!u[a[i]+b[j]]&&!v[a[i]+b[j]]) {
			cout<<a[i]<<" "<<b[j];
			return 0;
		}
	return 0;	
}
B. Make Product Equal One
分析:略
代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e5 + 4;
ll a[maxn];
ll max(ll a,ll b){return a>b?a:b;}ll min(ll a,ll b){return a<b?a:b;}
int main()
{
	int n,num=0,cnt=0;
	ll ans=0;
	cin>>n;
	for(int i=1;i<=n;i++) {
		cin>>a[i];
		if(a[i]<0) cnt++;
		else if(a[i]==0) num++;
	}
	if(cnt%2==0){
	for(int i=1;i<=n;i++) 
	{
		if(a[i]>0) ans+=(a[i]-1);
		else if(a[i]<0)ans+=((-1)-a[i]);
		else ans++;
	}}
	else {
		if(num) 
		{
			for(int i=1;i<=n;i++) {
				if(a[i]>0) ans+=(a[i]-1);
				else if(a[i]<0) ans+=((-1)-a[i]);
				else ans++; 
			}
		}
		else {
			for(int i=1;i<=n;i++) {
				if(a[i]>0) ans+=(a[i]-1);
				else if(a[i]<0) ans+=((-1)-a[i]);
				else ans++; 
			}
			ans+=2;
		}
	}
	cout<<ans;
	return 0;	
}
C. Almost Equal
分析: 构造 , 配对面对面放
代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 2e5 + 3;
int vis[maxn],a[maxn];
ll max(ll a,ll b){return a>b?a:b;}ll min(ll a,ll b){return a<b?a:b;}
int main()
{
	int n;
	cin>>n;
	if(n==1) {
		cout<<"YES\n1 2";
		return 0;
	}
	else if(n%2==0) {
		cout<<"NO"; return 0;
	}
	cout<<"YES\n";
	int cnt=1,now=2*n,p=0,q=n,u,v;
	a[0]=1,a[n]=2,vis[0]=vis[n]=1;
	while(cnt<n)
	{
		if(!vis[(p+1)%(2*n)]) u=(p+1)%(2*n);
		else u=(p-1+2*n)%(2*n);
		if(!vis[(q+1)%(2*n)]) v=(q+1)%(2*n);
		else v=(q-1+2*n)%(2*n);
		a[u]=now;now--;
		a[v]=now;now--;
		vis[u]=vis[v]=1;
		if(a[v]<a[p]){
			p=v;
			q=(p+n)%(2*n);
		}
		else if(a[p]<a[v]&&vis[(p-1+2*n)%(2*n)]&&vis[(p+1)%(2*n)])
		{
			p=v;
			q=(p+n)%(2*n);
		}
		cnt++;
	}
	for(int i=0;i<2*n;i++) cout<<a[i]<<" ";
	return 0;	
}
D. Shortest Cycle