前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Codeforces Round #621 (Div. 1 + Div. 2)(无比自闭的一夜)

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

作者头像
杨鹏伟
发布2020-09-11 15:08:00
3510
发布2020-09-11 15:08:00
举报
文章被收录于专栏:ypwypw

菜到自闭自闭~~ 欲哭无泪~ 深夜一人伤悲~ 掉了~ 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~~

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-02-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档