Codeforces Round #799 (Div. 4) (AK代码)

可惜可惜,差一点AK在这里插入图片描述
在这里插入图片描述

A

#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<unordered_set>
#include<unordered_map>
using namespace std;

typedef pair<int,int>pii;
typedef pair<long,long> lpii;
typedef double db;
typedef vector<int> VI;
#define SZ(x) ((int)(x).size())
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define per(i,b,a) for(int i=b;i>=a;--i)
#define ll long long
#define ull unsigned long long
#define inf 0x3f3f3f3f
#define linf 9e18
#define pb push_back
#define mkp make_pair
#define fi first
#define se second
ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}

int t;
int a,b,c,d;
int cnt;
int main(){
	
	scanf("%d",&t);
	while(t--){
		scanf("%d %d %d %d",&a,&b,&c,&d);
		cnt=0;
		if(b>a) cnt++;
		if(c>a) cnt++;
		if(d>a) cnt++;
		printf("%d\n",cnt);
	}
	return 0;
}

B

#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<unordered_set>
#include<unordered_map>
using namespace std;

typedef pair<int,int>pii;
typedef pair<long,long> lpii;
typedef double db;
typedef vector<int> VI;
#define SZ(x) ((int)(x).size())
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define per(i,b,a) for(int i=b;i>=a;--i)
#define ll long long
#define ull unsigned long long
#define inf 0x3f3f3f3f
#define linf 9e18
#define pb push_back
#define mkp make_pair
#define fi first
#define se second
ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
const int N=55;

int t;
int n,a[N];
void work(){
	int ans=n;
	int t=0;
	map<int,int>mp;
	rep(i,1,n) mp[a[i]]++;
	for(auto &p:mp){
		ans-=(p.se-1);
		if(!((p.se)&1)) t++; 
	}
	if(t&1) ans--;
	printf("%d\n",ans);
}
int main(){
	
	scanf("%d",&t);
	while(t--){
		scanf("%d",&n);
		rep(i,1,n) scanf("%d",&a[i]);
		work();
	}
	return 0;
}

C

#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<unordered_set>
#include<unordered_map>
using namespace std;

typedef pair<int,int>pii;
typedef pair<long,long> lpii;
typedef double db;
typedef vector<int> VI;
#define SZ(x) ((int)(x).size())
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define per(i,b,a) for(int i=b;i>=a;--i)
#define ll long long
#define ull unsigned long long
#define inf 0x3f3f3f3f
#define linf 9e18
#define pb push_back
#define mkp make_pair
#define fi first
#define se second
ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
const int N=10;

int t;
char mp[N][N];

void work(){
	int r,c;
	bool ok=false;
	rep(i,1,8){
		rep(j,1,8){
			if(i!=1 && i!=8 && j!=1 && j!=8 && mp[i][j]=='#'){
				if(mp[i-1][j-1]=='#' && mp[i-1][j+1]=='#' && mp[i+1][j-1]=='#' && mp[i+1][j+1]=='#'){
					r=i;
					c=j;
					ok=true;
				}
			}
			if(ok) break;
		}
		if(ok) break;
	}
	printf("%d %d \n",r,c);
}
int main(){
	scanf("%d",&t);
	while(t--){
		rep(i,1,8) rep(j,1,8) cin>>mp[i][j];
		work();
	}
	return 0;
}

D

#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<unordered_set>
#include<unordered_map>
using namespace std;

typedef pair<int,int>pii;
typedef pair<long,long> lpii;
typedef double db;
typedef vector<int> VI;
#define SZ(x) ((int)(x).size())
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define per(i,b,a) for(int i=b;i>=a;--i)
#define ll long long
#define ull unsigned long long
#define inf 0x3f3f3f3f
#define linf 9e18
#define pb push_back
#define mkp make_pair
#define fi first
#define se second
ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}

const int mod=1440;
int t;
string s;
int x;

bool judge(string str){
	int n=SZ(str);
	
	rep(i,0,n/2-1){
		if(str[i]!=str[n-1-i]) return false;
	}
	return true;
}
void work(){
	unordered_set<int>st;
	int ans=0;
	int h=stoi(s.substr(0,2));
	int m=stoi(s.substr(3,2));
	int now=h*60+m;
	
	while(true){
		if(st.count(now)) break;
		
		st.insert(now);
		now=(now+x)%mod;
	}

	for(auto n:st){
		int hh=n/60,mm=n%60;
		string a="",b="";
		if(hh<=9) a='0'+to_string(hh);
		else a=to_string(hh);
		
		if(mm<=9) b='0'+to_string(mm);
		else b=to_string(mm);
		
		string ss=a+':'+b;
		if(judge(ss)) ans++;
	}
	cout<<ans<<endl;
}
int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	
	cin>>t;
	while(t--){
		cin>>s>>x;
		work();
	}
	return 0;
}

E

#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<unordered_set>
#include<unordered_map>
using namespace std;

typedef pair<int,int>pii;
typedef pair<long,long> lpii;
typedef double db;
typedef vector<int> VI;
#define SZ(x) ((int)(x).size())
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define per(i,b,a) for(int i=b;i>=a;--i)
#define ll long long
#define ull unsigned long long
#define inf 0x3f3f3f3f
#define linf 9e18
#define pb push_back
#define mkp make_pair
#define fi first
#define se second
ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
const int N=2e5+10;

int t;
int n,s;
int a[N];

void work(){
	int sum=0;
	int ans=inf;
	rep(i,1,n) sum+=a[i];
	if(sum<s){
		cout<<-1<<endl;
		return;
	}
	if(sum==s){
		cout<<0<<endl;
		return;
	}
	int L[N],R[N],tmp=0;
	memset(L,0,sizeof L);
	memset(R,0,sizeof R);
	rep(i,1,n){
		if(a[i]==1){
			tmp++;
			L[tmp]=i;
		}
	}
	
	tmp=0;
	per(i,n,1){
		if(a[i]==1){
			tmp++;
			R[tmp]=n-i+1;
		}
	}
	
	rep(i,0,sum-s) ans=min(ans,L[i]+R[sum-s-i]);
	
	cout<<ans<<endl;
}
int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	
	cin>>t;
	while(t--){
		cin>>n>>s;
		rep(i,1,n) cin>>a[i];
		work();
	}
	return 0;
}

F

#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<unordered_set>
#include<unordered_map>
using namespace std;

typedef pair<int,int>pii;
typedef pair<long,long> lpii;
typedef double db;
typedef vector<int> VI;
#define SZ(x) ((int)(x).size())
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define per(i,b,a) for(int i=b;i>=a;--i)
#define ll long long
#define ull unsigned long long
#define inf 0x3f3f3f3f
#define linf 9e18
#define pb push_back
#define mkp make_pair
#define fi first
#define se second
ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
const int N=2e5+10;

int t;
int n;
int a[N];
struct node{
	int i,j,k;
	node(int i,int j,int k){
		this->i=i;
		this->j=j;
		this->k=k;
	}
};
void work(){
	bool ok=false;
	map<int,int>mp;
	rep(i,1,n) a[i]%=10,mp[a[i]]++;
	
	vector<node>b;
	rep(i,0,9){
		rep(j,0,9){
			rep(k,0,9){
				if((i+j+k)%10==3) b.pb(node(i,j,k));
			}
		}
	}
	for(auto p:b){
		if(mp[p.i]!=0) mp[p.i]--;
		else continue;
		
		if(mp[p.j]!=0) mp[p.j]--;
		else{
			mp[p.i]++;
			continue;
		}
		if(mp[p.k]!=0) mp[p.k]--;
		else{
			mp[p.i]++;
			mp[p.j]++;
			continue;
		}
		
		ok=true;
		break;
	}
	cout<<(ok?"YES":"NO")<<endl;
}
int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	
	cin>>t;
	while(t--){
		cin>>n;
		rep(i,1,n) cin>>a[i];
		work();
	}
	return 0;
}

G

#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<unordered_set>
#include<unordered_map>
using namespace std;

typedef pair<int,int>pii;
typedef pair<long,long> lpii;
typedef double db;
typedef vector<int> VI;
#define SZ(x) ((int)(x).size())
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define per(i,b,a) for(int i=b;i>=a;--i)
#define ll long long
#define ull unsigned long long
#define inf 0x3f3f3f3f
#define linf 9e18
#define pb push_back
#define mkp make_pair
#define fi first
#define se second
ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
const int N=2e5+10;

int t;
int n,k;
ll a[N];

void work(){
	vector<pii> v;
	int ans=0;
	bool f=1;
	int L,R;
	
	rep(i,1,n-1){
		
		//left
		if(a[i]<a[i+1]*2){
			if(f){
				L=i;
				f=0;
			} 
		}
		else{
			R=i;
			if(!f) v.pb({L,R});
			f=1;
		}
	}
	if(!f) v.pb({L,n});	
	
	for(auto p:v) ans+=max(0,p.se-p.fi+1-k);
	
	cout<<ans<<endl;
}
int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	
	cin>>t;
	while(t--){
		cin>>n>>k;
		rep(i,1,n) cin>>a[i];
		work();
	}
	return 0;
}

H

#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<unordered_set>
#include<unordered_map>
using namespace std;

typedef pair<int,int>pii;
typedef pair<long,long> lpii;
typedef double db;
typedef vector<int> VI;
#define SZ(x) ((int)(x).size())
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define per(i,b,a) for(int i=b;i>=a;--i)
#define ll long long
#define ull unsigned long long
#define inf 0x3f3f3f3f
#define linf 9e18
#define pb push_back
#define mkp make_pair
#define fi first
#define se second
ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
const int N=2e5+10;

int t;
int n,a[N];

//a,l,r
//range max
pair<pair<int,int>,pair<int,int> > deal(vector<int> v){
	int b,l,r;
	int idx;
	int val=0;
	int n=v.size();
	vector<int>tmp(n,0);
	
	tmp[0]=1;
	for(int i=1;i<n;i++){
		tmp[i]=max(1,tmp[i-1]+1-(v[i]-v[i-1]-1));
	}
	for(int i=0;i<n;i++){
		if(tmp[i]>=val){
			val=tmp[i];
			idx=i;
		}
	}
	b=a[v[idx]];
	r=v[idx];
	
	while(idx>=0 && tmp[idx]>1) idx--;
	l=v[idx];
	
	return pair<pair<int,int>,pair<int,int> >({{val,b},{l,r}});
}
void work(){
	int b,l,r;
	int maxv=0;
	map<int,vector<int>>mp;
	rep(i,1,n) mp[a[i]].pb(i);
	
	for(auto &p:mp){
		pair<pair<int,int>,pair<int,int> >tmp=deal(p.se);
		if(tmp.fi.fi>maxv){
			maxv=tmp.fi.fi;
			
			b=tmp.fi.se;
			l=tmp.se.fi;
			r=tmp.se.se;
		}
	}
	cout<<b<<' '<<l<<' '<<r<<endl;
}
int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	
	cin>>t;
	while(t--){
		cin>>n;
		rep(i,1,n) cin>>a[i];
		work();
	}
	return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值