csust-8.3早训CF之1200-1800

目录

 

A - Settlers' Training

B - Bulls and Cows

C - Petya and Java

D - Petya and Countryside

E - Petya and File System

F - Petya and His Friends


A - Settlers' Training

 CodeForces - 63B 

题目链接https://codeforces.com/problemset/problem/63/B

AC代码:

#include <bits/stdc++.h>
using namespace std;
const int mac = 2e6 + 10;
string s[mac];
int num[mac], vis[mac], a[mac];
int main()
{
	int n, k;
	scanf("%d%d", &n, &k);
	for (int i = 1; i <= n; i++)
		scanf("%d", &a[i]);
	sort(a + 1, a + 1 + n);
	int cnt = 0;
	while (1) {
		int mark = 0;
		for (int i = 1; i <= k; i++) vis[i] = 0;
		for (int i = 1; i <= n; i++) {
			if (a[i] >= k) continue;
			if (!vis[a[i]]) vis[a[i]] = 1, a[i]++, mark = 1;
		}
		if (mark) cnt++;
		else break;
	}
	printf("%d\n", cnt);
	return 0;
}

B - Bulls and Cows

 CodeForces - 63C 

题目链接https://codeforces.com/problemset/problem/63/C

AC代码:

#include <bits/stdc++.h>
using namespace std;
const int mac = 200;
char s[mac][10];
int num[mac], vis[mac], a[mac], b[mac];
int main()
{
	int n;
	scanf ("%d",&n);
	for (int i = 1; i <= n; i++) {
		scanf("%s%d%d", s[i], &a[i], &b[i]);
	}
	int num=0,ans=0;
	for (int i=0; i<=9; i++){//千 
		for (int j=0; j<=9; j++){//百 
		    if (j==i) continue;
			for (int k=0; k<=9; k++){//十 
			    if (k==i || k==j) continue;
				for (int p=0; p<=9; p++){//个 	
				    if (p==i || p==j || p==k) continue;
				    int mark=0;			    
					for (int q=1; q<=n; q++){
						int us=0,oth=0;
						if (i==s[q][0]-'0') us++;
						if (j==s[q][1]-'0') us++;
						if (k==s[q][2]-'0') us++;
						if (p==s[q][3]-'0') us++;
						if (i==s[q][1]-'0' || i==s[q][2]-'0' || i==s[q][3]-'0') oth++;
						if (j==s[q][0]-'0' || j==s[q][2]-'0' || j==s[q][3]-'0') oth++;
						if (k==s[q][1]-'0' || k==s[q][0]-'0' || k==s[q][3]-'0') oth++;
						if (p==s[q][1]-'0' || p==s[q][2]-'0' || p==s[q][0]-'0') oth++;
						if (us!=a[q] || oth!=b[q]){
							mark=1;break;
						}
					}
					if (!mark) {
						num++;ans=i*1000+j*100+k*10+p;
					//printf ("%d\n",ans);
					}
				}
			}
		}
	}
	if (num==0) printf ("Incorrect data\n");
	else if (num==1) {
		printf ("%04d\n",sss);
	}
	else printf ("Need more data\n");
	return 0;
}

C - Petya and Java

 CodeForces - 66A 

题目链接https://codeforces.com/problemset/problem/66/A

AC代码:

#include <bits/stdc++.h>
using namespace std;
const int mac = 200;
char s[mac];
int num[mac], vis[mac], a[mac], b[mac];
int main()
{
	scanf("%s", s);
	int len = strlen(s);
	if (len >= 20) printf("BigInteger\n");
	else {
		unsigned long long ss = 0;
		for (int i = 0; i < len; i++) {
			ss = ss * 10 + s[i] - '0';
		}
		if (ss <= 127) printf("byte\n");
		else if (ss <= 32767) printf("short\n");
		else if (ss <= 2147483647) printf("int\n");
		else if (ss <= 9223372036854775807) printf("long\n");
		else printf("BigInteger\n");
	}
	return 0;
}

D - Petya and Countryside

 CodeForces - 66B 

题目链接https://codeforces.com/problemset/problem/66/B

AC代码:

#include <bits/stdc++.h>
using namespace std;
const int mac = 1e3 + 10;
char s[mac];
int num[mac], vis[mac], a[mac], b[mac];
int main()
{
	int n;
	scanf("%d", &n);
	for (int i = 1; i <= n; i++) {
		scanf("%d", &a[i]);
	}
	int ans = 0, cnt = 0;
	for (int i = 1; i <= n; i++) {
		cnt = 0;
		for (int j = i; j >1; j--) {
			if (a[j - 1] <= a[j]) cnt++;
			else break;
		}
		for (int j = i; j < n; j++) {
			if (a[j + 1] <= a[j]) cnt++;
			else break;
		}
		ans = max(ans, cnt+1);
	}
	printf("%d\n", ans);
	return 0;
}

E - Petya and File System

 CodeForces - 66C 

题目链接https://codeforces.com/problemset/problem/66/C

AC代码:

#include <bits/stdc++.h>
using namespace std;
#define ll long long
string s;
int main()
{
	//freopen("in.txt", "r", stdin);
	string rt;
	map<string, set<string>>folder, files;
	while (cin >> s) {
		int es = 0;
		for (int i = 0; s[i]; i++) {
			if (s[i] == '\\') {
				es++;
				if (es == 2) rt = s.substr(0, i);
				else if (es > 2) folder[rt].insert(s.substr(0, i));
			}
		}
		files[rt].insert(s);
	}
	int ans1 = 0, ans2 = 0;
	map<string, set<string>>::iterator it;
	for (it = folder.begin(); it != folder.end(); it++) {
		ans1 = max(ans1, (int)it->second.size());
	}
	for (it = files.begin(); it != files.end(); it++) {
		ans2 = max(ans2, (int)it->second.size());
	}
	cout << ans1 << " " << ans2 << endl;
	return 0;
}

F - Petya and His Friends

 CodeForces - 66D 

题目链接https://codeforces.com/problemset/problem/66/D

AC代码:

#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
	int n, num = 0;
	scanf("%d", &n);
	if (n == 1) printf("%d\n", 1);
	else if (n == 2) printf("-1\n");
	else if (n == 3) printf("10\n15\n6\n");
	else {
		printf("10\n15\n6\n");
		ll ans = 6;
		for (int i = 4; i <= n; i++) {
			cout << i*6 << endl;
		}
	}
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值