Codeforces Round #621 (Div. 1 + Div. 2)(无比自闭的一夜)

2020-09-11 15:08:00 浏览数 (1)

菜到自闭自闭~~ 欲哭无泪~ 深夜一人伤悲~ 掉了~ rank– 明天要多刷水题,体验AC快感… 真几把自闭

A.题意:不想说了… 一开始把n当成天数了,WWW!!!

W2的代码

代码语言:javascript复制
#include<bits/stdc  .h>

using namespace std;
int a[105];

int main(){
	int t;
	cin>>t;
	while(t--){
		int n,d;
		cin>>n>>d;
		for(int i=0;i<n;i  ){
			cin>>a[i];
		}
		if(n == 1){
			cout<<a[0]<<endl;
			continue;
		}
		int num = d;//天数 
		int k = 1;
			while(num>=k){//天数 
				if(a[k]!=0){//草堆不等于0,那么能移动 
				a[0]  = 1;//得到1 
				num -= k;//耗费k天 
				a[k]--;
				}
				else{
					k  ;
				}
				if(k==d-1)
				 break;
			}
		cout<<a[0]<<endl;
	} 
	return 0;
} 

AC

代码语言:javascript复制
#include<iostream>
using namespace std;

int a[105];

int main(){
	int t;
	cin >> t;
	while(t--){
		int n,d;
		cin>>n>>d;
		
		for(int i = 1; i <= n; i  )
			cin >> a[i];
		for (int i = 2; i <= n; i  ){
		
			if (d <= 0) break;
			
			if (a[i]*(i - 1)<= d){
				a[1] = a[i];
				d -= a[i] * (i - 1);
			} 
			else{
				a[1]  = d/(i - 1);
				break;
			}
		}
		
		cout<<a[1]<<endl;
	}
	return 0;
}

B题意:不想说了,A调了半个小时

代码语言:javascript复制
#include <bits/stdc  .h>
#define maxn 100000 7
using namespace std;

typedef long long ll;
//const int  maxn 1e5 7;

ll a[maxn];

int main(){
	int t;
	cin >> t;
	while (t--) {
		ll n, x, k = -1;
		bool  flag = 0;
		cin>>n>>x;
		for (int i=1;i<=n;i  ) {
			cin >> a[i];
			k = max(a[i], k);
			if (a[i] == x) flag = 1;
		}
		if(flag) {
			cout <<"1"<<endl;
			continue;
		}
		ll ans;
		if(x<k){
			ans = 2;
		} 
		else{
			ans = x / k;
			if(x % k) 
			ans  ;
		}
		cout<<ans<<endl;
	}
	return 0;
}

C 我是菜鸡我是菜鸡 呜呜啊~~题都没读懂,完全是另一个题的 W4,竟然还能过去几个样例 曲解题意代码二款:

代码语言:javascript复制
#include<bits/stdc  .h>
#define inf 0x3f3f3f3f
using namespace std;
typedef long long ll;
set<char> st;
map<char,int> sd;

ll jie[100];

void init()
{
	jie[0]=1;
	for(ll i=1;i<=100;i  )
		jie[i]=i*jie[i-1];
}

ll check(ll num){
	ll ans=1;
	ll flag = num;
	for(ll i =1;i<=(num/2);i  ){//循环多少次 
		ans *= flag;
		flag--;
	}
	return ans;
}


int main(){
	init();
	string s;
	cin>>s;
	int l = s.length();
    for(int i=0;i<l;i  ){
    	sd[s[i]]  ;//记录每个字符出现的次数 
    	st.insert(s[i]);
	}
	if(st.size() == l){
		cout<<1<<endl;
		return 0;
	}
	ll sum = 1;
	for(auto i=sd.begin();i!=sd.end();i  ){//单个字母
	   ll res = i->second;
	   //cout<<res<<" "<<endl;
	   sum = sum*(check(res)/jie[res/2]);
	
	}
	cout<<sum<<endl;
	return 0;
}

曲解题意代码一款:

代码语言:javascript复制
#include<bits/stdc  .h>
#define inf 0x3f3f3f3f
using namespace std;
typedef long long ll;
set<char> st;
map<char,int> sd;


int main(){
	string s;
	cin>>s;
	int l = s.length();
    for(int i=0;i<l;i  ){
    	sd[s[i]]  ;//记录每个字符出现的次数 
    	st.insert(s[i]);
	}
	if(st.size() == l){
		cout<<1<<endl;
		return 0;
	}

	int maxx =-inf;
	for(auto i=sd.begin();i!=sd.end();i  ){//单个字母 
		maxx = max(maxx,i->second);
	}
	int sum = 1;
	for(auto i=sd.begin();i!=sd.end();i  ){//全部字母 
	   sum *= i->second;
	}
	cout<<max(sum,maxx)<<endl;

	return 0;
}

没AC~~

更别说后面的都没看了~~

0 人点赞