1071 小赌怡情
分数 15
作者 CHEN, Yue
单位 浙江大学
常言道“小赌怡情”。这是一个很简单的小游戏:首先由计算机给出第一个整数;然后玩家下注赌第二个整数将会比第一个数大还是小;玩家下注 t 个筹码后,计算机给出第二个数。若玩家猜对了,则系统奖励玩家 t 个筹码;否则扣除玩家 t 个筹码。
注意:玩家下注的筹码数不能超过自己帐户上拥有的筹码数。当玩家输光了全部筹码后,游戏就结束。
输入格式:
输入在第一行给出 2 个正整数 T 和 K(≤ 100),分别是系统在初始状态下赠送给玩家的筹码数、以及需要处理的游戏次数。随后 K 行,每行对应一次游戏,顺序给出 4 个数字:
n1 b t n2其中
n1和n2是计算机先后给出的两个[0, 9]内的整数,保证两个数字不相等。b为 0 表示玩家赌小,为 1 表示玩家赌大。t表示玩家下注的筹码数,保证在整型范围内。输出格式:
对每一次游戏,根据下列情况对应输出(其中
t是玩家下注量,x是玩家当前持有的筹码量):
- 玩家赢,输出
Win t! Total = x.;- 玩家输,输出
Lose t. Total = x.;- 玩家下注超过持有的筹码量,输出
Not enough tokens. Total = x.;- 玩家输光后,输出
Game Over.并结束程序。输入样例 1:
100 4 8 0 100 2 3 1 50 1 5 1 200 6 7 0 200 8输出样例 1
Win 100! Total = 200. Lose 50. Total = 150. Not enough tokens. Total = 150. Not enough tokens. Total = 150.
#include<iostream>
#include<vector>
using namespace std;
int main() {
int s, n;
cin >> s >> n;
for (int i = 0; i < n; i++) {
if (s == 0) {
cout << "Game Over." << endl;
break;
}
int n1, b, t, n2;
cin >> n1 >> b >> t >> n2;
if (t > s) {
cout << "Not enough tokens. Total = " << s << "."<<endl;
continue;
}
if (b == 0) {
if (n2 < n1) {
s += t;
cout << "Win " << t << "! Total = " << s << "." << endl;
}
else {
s -= t;
cout << "Lose " << t << ". Total = " << s << "." << endl;
}
}
else if (b == 1) {
if (n2 > n1) {
s += t;
cout << "Win "<<t<<"! Total = " << s << "." << endl;
}
else {
s -= t;
cout << "Lose " << t << ". Total = " << s << "." << endl;
}
}
}
return 0;
}
1072 开学寄语
分数 20
作者 CHEN, Yue
单位 浙江大学
下图是上海某校的新学期开学寄语:天将降大任于斯人也,必先删其微博,卸其 QQ,封其电脑,夺其手机,收其 ipad,断其 wifi,使其百无聊赖,然后,净面、理发、整衣,然后思过、读书、锻炼、明智、开悟、精进。而后必成大器也!
本题要求你写个程序帮助这所学校的老师检查所有学生的物品,以助其成大器。
输入格式:
输入第一行给出两个正整数 N(≤ 1000)和 M(≤ 6),分别是学生人数和需要被查缴的物品种类数。第二行给出 M 个需要被查缴的物品编号,其中编号为 4 位数字。随后 N 行,每行给出一位学生的姓名缩写(由 1-4 个大写英文字母组成)、个人物品数量 K(0 ≤ K ≤ 10)、以及 K 个物品的编号。
输出格式:
顺次检查每个学生携带的物品,如果有需要被查缴的物品存在,则按以下格式输出该生的信息和其需要被查缴的物品的信息(注意行末不得有多余空格):
姓名缩写: 物品编号1 物品编号2 ……最后一行输出存在问题的学生的总人数和被查缴物品的总数。
输入样例:
4 2 2333 6666 CYLL 3 1234 2345 3456 U 4 9966 6666 8888 6666 GG 2 2333 7777 JJ 3 0012 6666 2333输出样例:
U: 6666 6666 GG: 2333 JJ: 6666 2333 3 5
#include<iostream>
#include<vector>
using namespace std;
struct violate
{
string student;
vector<string> vi_th; //违规物品
};
int main() {
int n, m;
cin >> n >> m;
vector<string> stuff;//违规物品
vector<violate> student;//违规学生
int s = 0;//违规物品总数
for (int i = 0; i < m; i++) {
string t;
cin >> t;
stuff.push_back(t);
}
for (int i = 0; i < n; i++) {
string stu;//学生简称
int cou;//物品数
cin >> stu >> cou;
vector<string> p;//临时变量存储违规物品
for (int j = 0; j < cou; j++) {
string st;
cin >> st;
for (int k = 0; k < stuff.size(); k++) {
if (st == stuff[k]) {
p.push_back(st);
s += 1;
}
}
}
if (p.size() > 0) {
student.push_back({ stu,p });//加入违规学生及其违规物品
}
}
//打印
for (violate v : student) {
cout << v.student << ": ";
for (int i = 0; i < v.vi_th.size(); i++) {
cout << v.vi_th[i];
if (i != v.vi_th.size()-1) {
cout << " ";//注意行末空格
}
}
cout << endl;
}
cout << student.size() << " " << s << endl;
return 0;
}
1099 性感素数
分数 20
作者 陈越
单位 浙江大学
“性感素数”是指形如 (p, p+6) 这样的一对素数。之所以叫这个名字,是因为拉丁语管“六”叫“sex”(即英语的“性感”)。(原文摘自 http://mathworld.wolfram.com/SexyPrimes.html)
现给定一个整数,请你判断其是否为一个性感素数。
输入格式:
输入在一行中给出一个正整数 N (≤108)。
输出格式:
若 N 是一个性感素数,则在一行中输出
Yes,并在第二行输出与 N 配对的另一个性感素数(若这样的数不唯一,输出较小的那个)。若 N 不是性感素数,则在一行中输出No,然后在第二行输出大于 N 的最小性感素数。输入样例 1:
47输出样例 1:
Yes 41输入样例 2:
21输出样例 2:
No 23
#include<iostream>
#include<vector>
#include<string>
using namespace std;
//判断素数
bool is_prime(int m) {
if (m < 2) {
return false;
}
else if (m == 2) {
return true;
}
else if (m % 2 == 0) {
return false;
}
else {
for (int i = 3; i * i <= m; i += 2) {
if (m % i == 0) {
return false;
}
}
return true;
}
}
//判断是否为性感素数
int sex_prime(int n) {
if (is_prime(n) && is_prime(n - 6))
return 1;
else if (is_prime(n) && is_prime(n + 6))
return 2;
else
return 0;
}
int main() {
int n;
cin >> n;
if (sex_prime(n)==1) {
cout << "Yes" << endl;
cout << n - 6;
}
else if (sex_prime(n) == 2) {
cout << "Yes" << endl;
cout << n + 6;
}
else {
int i;
for ( i = n + 1;; i++) {
if (sex_prime(i) == 1) {
/*if (i - 6 < n) {
continue;
}
else {*/
cout << "No" << endl;
cout << i ;
break;
/*}*/
}
else if (sex_prime(i) == 2) {
cout << "No" << endl;
cout << i ;
break;
}
}
}
return 0;
}

1337

被折叠的 条评论
为什么被折叠?



