Codeforces Round #838 (Div. 2)(补)

这场签完到直接去睡觉了 结果不如所料 掉大分

A. 就是对每个数都暴力

#include 
using namespace std;
//#define int long long
#define pb push_back
#define mkp make_pair
#define ll long long
#define sz(i) (int)(i).size()
#define mem(i,j) memset(i,j,sizeof(i))
#define rep(i,j,k) for(ll i=(j);i<=(k);i++)
const int N=110;
const int M=100010;
const int INF=0x3f3f3f3f;
const ll mod=1e9+7;
bool dp[N][N][N];
void solve(){
	int n;cin>>n;
	ll sum=0,cnt1=0;int a[n+1];ll minn=INF;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		sum+=a[i];
	} 
	if(sum%2==0){
		cout<<"0"<>t;
	while(t--){
		solve();
	}
}

B. 凑2 就像cf之前有一道题是凑5

#include 
using namespace std;
//#define int long long
#define pb push_back
#define mkp make_pair
#define ll long long
#define sz(i) (int)(i).size()
#define mem(i,j) memset(i,j,sizeof(i))
#define rep(i,j,k) for(ll i=(j);i<=(k);i++)
const int N=110;
const int M=100010;
const int INF=0x3f3f3f3f;
const ll mod=1e9+7;
bool dp[N][N][N];
void solve(){
	int n;cin>>n;
	vector> v;
	int a[n+1];
	for(int i=1;i<=n;i++){
		cin>>a[i];
	} 
	for(int i=1;i<=n;i++){
	    ll m=1;
		while(m>t;
	while(t--){
		solve();
	}
}

C. dp一下

#include 
using namespace std;
//#define int long long
#define pb push_back
#define mkp make_pair
#define ll long long
#define sz(i) (int)(i).size()
#define mem(i,j) memset(i,j,sizeof(i))
#define rep(i,j,k) for(ll i=(j);i<=(k);i++)
const int N=2e5;
const int M=100010;
const int INF=0x3f3f3f3f;
const ll mod=998244353;
int f[N],n;
void solve(){
	cin>>n;
	string s;cin>>s;
	f[0]=1;
	for(int i=1;i>t;
	while(t--){
		solve();
	}
}

D. 如果gcd(i,j)==gcd(j,k) j!=0; 如果gcd(i,j)>gcd(j,k) k!=0 else i!=0

#include 
using namespace std;
//#define int long long
#define pb push_back
#define mkp make_pair
#define ll long long
#define sz(i) (int)(i).size()
#define mem(i,j) memset(i,j,sizeof(i))
#define rep(i,j,k) for(ll i=(j);i<=(k);i++)
const int N=2e5;
const int M=100010;
const int INF=0x3f3f3f3f;
const ll mod=998244353;
int n;
vector v;
void query(int i,int j,int k){
	cout<<"? "<>x;
	cout<<"? "<>y;
	if(x==y)v.pb(i),v.pb(k);
	else if(x>y)v.pb(i),v.pb(j);
	else v.pb(j),v.pb(k); 
}
void solve(){
	cin>>n;
	v.clear();
	for(int i=1;i<=n;i++)v.pb(i);
	while(sz(v)>2){
		int i=v.back();v.pop_back();
		int j=v.back();v.pop_back();
		int k=v.back();v.pop_back();
		query(i,j,k);
	}
	cout<<"! "<>x;
}
int main(){
	ios::sync_with_stdio(false);
    cin.tie(0);
	int t;cin>>t;
	while(t--){
		solve();
	}
}

你可能感兴趣的:(算法,c++,动态规划)