240114
This commit is contained in:
commit
f606210553
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
*.o
|
7
.vscode/settings.json
vendored
Normal file
7
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"files.associations": {
|
||||
".env": "env",
|
||||
"ostream": "cpp",
|
||||
"iosfwd": "cpp"
|
||||
}
|
||||
}
|
28
.vscode/tasks.json
vendored
Normal file
28
.vscode/tasks.json
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
{
|
||||
"tasks": [
|
||||
{
|
||||
"type": "cppbuild",
|
||||
"label": "C/C++: g++ 生成活动文件",
|
||||
"command": "/usr/bin/g++",
|
||||
"args": [
|
||||
"-fdiagnostics-color=always",
|
||||
"-g",
|
||||
"${file}",
|
||||
"-o",
|
||||
"${fileDirname}/${fileBasenameNoExtension}.o"
|
||||
],
|
||||
"options": {
|
||||
"cwd": "${fileDirname}"
|
||||
},
|
||||
"problemMatcher": [
|
||||
"$gcc"
|
||||
],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"detail": "调试器生成的任务。"
|
||||
}
|
||||
],
|
||||
"version": "2.0.0"
|
||||
}
|
29
3834/0/0.cpp
Normal file
29
3834/0/0.cpp
Normal file
@ -0,0 +1,29 @@
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int count(int step, int l, int r, int a[])
|
||||
{
|
||||
if (step == 0)
|
||||
{
|
||||
if (l + a[0] == r || r + a[0] == l)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
return count(step - 1, l + a[step], r, a) + count(step - 1, l, r + a[step], a);
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
|
||||
int n;
|
||||
cin >> n;
|
||||
int a[n];
|
||||
for (int i = 0; i < n; i++)
|
||||
{
|
||||
cin >> a[i];
|
||||
}
|
||||
cout << count(n - 1, 0, 0, a) / 2;
|
||||
}
|
29
3834/0/0.txt
Normal file
29
3834/0/0.txt
Normal file
@ -0,0 +1,29 @@
|
||||
对抗赛(compete)
|
||||
内存限制:128 MB
|
||||
时间限制:5.000 S
|
||||
评测方式:文本比较
|
||||
命题人:jixun2019
|
||||
提交:279
|
||||
解决:182
|
||||
题目描述
|
||||
程序设计对抗赛设有 N(0<N≤50 的整数)个价值互不相同的奖品,每个奖品的价值分 别为 S1,S2,S3……Sn(均为不超过 100 的正整数)。现将它们分给甲乙两队,为了使得甲 乙两队得到相同价值的奖品,必须将这 N 个奖品分成总价值相等的两组。
|
||||
编程要求:对给定 N 及 N 个奖品的价值,求出将这 N 个奖品分成价值相等的两组,共有 多少种分法?
|
||||
例如:N = 5,S1,S2,S3……Sn 分别为 1,3,5,8,9
|
||||
则可分为{1,3,9}与{5,8}
|
||||
仅有 1 种分法;
|
||||
例如:N = 7,S1,S2,S3……Sn 分别为 1,2,3,4,5,6,7
|
||||
则可分为:
|
||||
{1,6,7}与{2,3,4,5}
|
||||
{2,5,7}与{1,3,4,6}
|
||||
{3,4,7}与{1,2,5,6}
|
||||
{1,2,4,7}与{3,5,6}
|
||||
有 4 种分法。
|
||||
输入
|
||||
输入文件中包含 N 及 S1,S2,S3……Sn。(每两个相邻的数据之间有一个空格隔开)。
|
||||
输出
|
||||
输出文件包含一个整数,表示多少种分法的答案,数据若无解,则输出 0。
|
||||
样例输入 复制
|
||||
7
|
||||
1 2 3 4 5 6 7
|
||||
样例输出 复制
|
||||
4
|
16
3834/1/1.cpp
Normal file
16
3834/1/1.cpp
Normal file
@ -0,0 +1,16 @@
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
|
||||
int d, g;
|
||||
cin >> d >> g;
|
||||
int bp_life[g]{}, bp_height[g]{}, sum=0;
|
||||
for (int i = 0; i < g; i++)
|
||||
{
|
||||
int t, f, h;
|
||||
sum += f;
|
||||
}
|
||||
}
|
33
3834/1/1.txt
Normal file
33
3834/1/1.txt
Normal file
@ -0,0 +1,33 @@
|
||||
垃圾陷阱(well)
|
||||
内存限制:128 MB
|
||||
时间限制:5.000 S
|
||||
评测方式:文本比较
|
||||
命题人:jixun2019
|
||||
提交:8
|
||||
解决:7
|
||||
题目描述
|
||||
卡门——农夫约翰极其珍视的一条Holsteins奶牛——已经落了到“垃圾井”中。“垃圾井”是农夫们扔垃圾的地方,它的深度为D (2 <= D <= 100)英尺。
|
||||
卡门想把垃圾堆起来,等到堆得与井同样高时,她就能逃出井外了。另外,卡门可以通过吃一些垃圾来维持自己的生命。
|
||||
每个垃圾都可以用来吃或堆放,并且堆放垃圾不用花费卡门的时间。
|
||||
假设卡门预先知道了每个垃圾扔下的时间t(0<t<=1000),以及每个垃圾堆放的高度h(1<=h<=25)和吃进该垃圾能维持生命的时间f(1<=f<=30),要求出卡门最早能逃出井外的时间,假设卡门当前体内有足够持续10小时的能量,如果卡门10小时内没有进食,卡门就将饿死。
|
||||
|
||||
输入
|
||||
第一行为2个整数,D 和 G (1 <= G <= 100),G为被投入井的垃圾的数量。
|
||||
第二到第G+1行每行包括3个整数:T(0<T<=1000),表示垃圾被投进井中的时间;F(1<=F<= 30),表示该垃圾能维持卡门生命的时间;和 H (1<= H<=25),该垃圾能垫高的高度。
|
||||
|
||||
|
||||
输出
|
||||
如果卡门可以爬出陷阱,输出一个整数表示最早什么时候可以爬出;否则输出卡门最长可以存活多长时间。
|
||||
样例输入 复制
|
||||
20 4
|
||||
5 4 9
|
||||
9 3 2
|
||||
12 6 10
|
||||
13 1 1
|
||||
样例输出 复制
|
||||
13
|
||||
提示
|
||||
卡门堆放她收到的第一个垃圾:height=9;
|
||||
卡门吃掉她收到的第二个垃圾,使她的生命从10小时延伸到13小时;
|
||||
卡门堆放第3个垃圾,height=19;
|
||||
卡门堆放第4个垃圾,height=20。
|
35
3834/2/2.cpp
Normal file
35
3834/2/2.cpp
Normal file
@ -0,0 +1,35 @@
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
|
||||
int n, m;
|
||||
cin >> n >> m;
|
||||
|
||||
int commit[n]{};
|
||||
bool ac[n]{};
|
||||
int ans_ac = 0, ans_time = 0;
|
||||
for (int i = 0; i < m; i++)
|
||||
{
|
||||
int id;
|
||||
string result;
|
||||
cin >> id >> result;
|
||||
if (ac[id - 1])
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (result == "AC")
|
||||
{
|
||||
ac[id - 1] = true;
|
||||
ans_ac++;
|
||||
ans_time += commit[id - 1];
|
||||
}
|
||||
else
|
||||
{
|
||||
commit[id - 1] += 1;
|
||||
}
|
||||
}
|
||||
cout << ans_ac << " " << ans_time << endl;
|
||||
}
|
41
3834/2/2.txt
Normal file
41
3834/2/2.txt
Normal file
@ -0,0 +1,41 @@
|
||||
https://buctcoder.com/problem.php?cid=3834
|
||||
ACM 罚时
|
||||
内存限制:128 MB
|
||||
时间限制:5.000 S
|
||||
评测方式:文本比较
|
||||
命题人:admin
|
||||
提交:898
|
||||
解决:511
|
||||
题目描述
|
||||
ACM国际大学生程序设计竞赛是由国际计算机学会主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。参赛队伍最多由三名参赛队员组成,竞赛中一般命题10-13题,试题描述为英文,比赛时间为5个小时,前4个小时可以看到实时排名,最后一小时封榜,无法看到排名。竞赛可以使用C、C++、Python和Java。重点考察选手的算法和程序设计能力,选手可携带任何非电子类资料,包括书籍和打印出来的程序等。 返回结果 AC (Accepted)表示答案正确,WA (Wrong Anwser)表示答案错误。
|
||||
|
||||
另外,ACM比赛有个“罚时”(Penalty)的概念,首先做的题多的队伍排名更高,做出 题目数量相同的队伍,由罚时来判断。对于一道题目,在这道题目得到 AC 之前,每一次 WA 都会计入一次“罚时”。如果该题最终也没有 AC 则该题不会产生“罚时”
|
||||
|
||||
现在,给出一个队伍的提交记录。里面包含了每次提交的“题目序号”以及“评测结果”。请你求出这个队伍最终通过了几题,以及得到几次“罚时”。
|
||||
|
||||
输入
|
||||
第一行,输入两个整数,n, m,代表比赛共
|
||||
题,队伍共提交
|
||||
次。(
|
||||
)
|
||||
接下来
|
||||
行,每行一个整数
|
||||
,以及一个字符串
|
||||
,代表第
|
||||
次提交了第
|
||||
题,状态是
|
||||
.
|
||||
(
|
||||
,
|
||||
{"AC","WA"})
|
||||
输出
|
||||
输出两个整数,分别代表通过的题目数量以及得到的“罚时”数量。
|
||||
样例输入 复制
|
||||
2 5
|
||||
1 WA
|
||||
1 AC
|
||||
2 WA
|
||||
2 AC
|
||||
2 WA
|
||||
样例输出 复制
|
||||
2 2
|
22
3834/3/3.cpp
Normal file
22
3834/3/3.cpp
Normal file
@ -0,0 +1,22 @@
|
||||
#include<iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
|
||||
int h, n;
|
||||
cin >> h >> n;
|
||||
for (int i = 0; i < n; i++)
|
||||
{
|
||||
int damage;
|
||||
cin >> damage;
|
||||
h -= damage;
|
||||
if (h <= 0)
|
||||
{
|
||||
cout << "Yes";
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
cout << "No";
|
||||
}
|
33
3834/3/3.txt
Normal file
33
3834/3/3.txt
Normal file
@ -0,0 +1,33 @@
|
||||
打怪兽version-2
|
||||
内存限制:128 MB
|
||||
时间限制:5.000 S
|
||||
评测方式:文本比较
|
||||
命题人:admin
|
||||
提交:777
|
||||
解决:701
|
||||
题目描述
|
||||
有一只怪兽的血量为H
|
||||
你需要在N回合之内杀死它
|
||||
第i个回合你可以对其造成
|
||||
点伤害
|
||||
问是否可以杀死怪兽(其血量小于等于0即为死亡)
|
||||
可以输出Yes
|
||||
否则输出No
|
||||
输入
|
||||
H N
|
||||
|
||||
.......
|
||||
|
||||
1 <= H <= 1e9
|
||||
1 <= N <= 1e5
|
||||
1 <=
|
||||
<=1e4
|
||||
输出
|
||||
问是否可以杀死怪兽(其血量小于等于0即为死亡)
|
||||
可以输出Yes
|
||||
否则输出No
|
||||
样例输入 复制
|
||||
10 3
|
||||
4 5 6
|
||||
样例输出 复制
|
||||
Yes
|
22
3834/4/4.cpp
Normal file
22
3834/4/4.cpp
Normal file
@ -0,0 +1,22 @@
|
||||
#include<iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
|
||||
int n;
|
||||
cin >> n;
|
||||
if (n/100==7)
|
||||
{
|
||||
cout << "Yes";
|
||||
return 0;
|
||||
}
|
||||
n%=100;
|
||||
if (n/10==7||n%10==7)
|
||||
{
|
||||
cout << "Yes";
|
||||
return 0;
|
||||
}
|
||||
cout << "No";
|
||||
}
|
19
3834/4/4.txt
Normal file
19
3834/4/4.txt
Normal file
@ -0,0 +1,19 @@
|
||||
幸运数字
|
||||
内存限制:1024 MB
|
||||
时间限制:5.000 S
|
||||
评测方式:文本比较
|
||||
命题人:admin
|
||||
提交:828
|
||||
解决:675
|
||||
题目描述
|
||||
富哥最近迷上了数字 7,如果一个数的某一位是 7,那么富哥则认为这个数是他的幸运数字。
|
||||
给你一个正整数 N,请判断是不是富哥的幸运数字。
|
||||
输入
|
||||
N
|
||||
100 <= N <= 999
|
||||
输出
|
||||
如果这个数是那么输出 Yes ,否则输出 No。
|
||||
样例输入 复制
|
||||
117
|
||||
样例输出 复制
|
||||
Yes
|
52
3834/5/5.cpp
Normal file
52
3834/5/5.cpp
Normal file
@ -0,0 +1,52 @@
|
||||
#include <iostream>
|
||||
#include <algorithm>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
|
||||
|
||||
int n;
|
||||
cin >> n;
|
||||
|
||||
int a[n];
|
||||
for (int i = 0; i < n; i++)
|
||||
{
|
||||
cin >> a[i];
|
||||
}
|
||||
sort(a, a + n);
|
||||
// int index[1005]{};
|
||||
// for(int i = 0; i < n; i++){
|
||||
// cout << a[i] << " ";
|
||||
// }
|
||||
|
||||
int cnt = 0;
|
||||
for (int i1 = 0; i1 < n - 2; i1++)
|
||||
{
|
||||
int last = 0;
|
||||
for (int i2 = i1 + 1; i2 < n - 1; i2++)
|
||||
{
|
||||
bool flag = false;
|
||||
for (int i3 = max(i2 + 1, last); i3 < n; i3++)
|
||||
{
|
||||
if (a[i1] + a[i2] <= a[i3])
|
||||
{
|
||||
break;
|
||||
}
|
||||
if (a[i2] + a[i3] > a[i1] && a[i1] + a[i3] > a[i2])
|
||||
{
|
||||
if (!flag)
|
||||
{
|
||||
last = i3;
|
||||
flag = true;
|
||||
}
|
||||
|
||||
cnt++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cout << cnt;
|
||||
}
|
26
3834/5/5.txt
Normal file
26
3834/5/5.txt
Normal file
@ -0,0 +1,26 @@
|
||||
三角形牧场
|
||||
内存限制:128 MB
|
||||
时间限制:3.000 S
|
||||
评测方式:文本比较
|
||||
命题人:admin
|
||||
提交:580
|
||||
解决:94
|
||||
题目描述
|
||||
和所有人一样,奶牛喜欢变化。它们正在设想新造型的牧场。奶牛建筑师John想建造围有漂亮白色栅栏的三角形牧场。
|
||||
他拥有 n 块木板,每块的长度 A_i 都是整数。
|
||||
|
||||
他想要选三块木板,使得它们的长度能够构成一个三角形,请问有多少种选择方法呢?
|
||||
输入
|
||||
第一行,一个整数,代表 (3 \leq n \leq 2 \times 10^3)
|
||||
第二行,n 个整数,代表(1 \leq A_i \leq 10^3)
|
||||
|
||||
输出
|
||||
输出一个整数,代表方案数
|
||||
样例输入 复制
|
||||
5
|
||||
1 2 3 4 3
|
||||
样例输出 复制
|
||||
5
|
||||
提示
|
||||
样例解释:共五种方案:
|
||||
(1,3,3),(2,3,3),(2,3,4)^{有两个},(3,3,4)
|
13
3834/6/6.cpp
Normal file
13
3834/6/6.cpp
Normal file
@ -0,0 +1,13 @@
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
|
||||
|
||||
string s;
|
||||
char c;
|
||||
cin >> s >> c;
|
||||
printf("%s", (s.find(c) == string::npos) ? "false" : "true");
|
||||
}
|
20
3834/6/6.txt
Normal file
20
3834/6/6.txt
Normal file
@ -0,0 +1,20 @@
|
||||
定义函数返回布尔值
|
||||
内存限制:128 MB
|
||||
时间限制:2.000 S
|
||||
评测方式:文本比较
|
||||
命题人:外部导入
|
||||
提交:2506
|
||||
解决:1849
|
||||
题目描述
|
||||
定义一个函数check(n,d),让它返回一个布尔值。如果数字d在正整数n的某位中出现则送回true,否则送回false。
|
||||
例如check(325719,3)==true
|
||||
输入
|
||||
一行,整数n和数字d。
|
||||
输出
|
||||
一行,如果数字d在正整数n的某位中出现输出true,否则输出false。
|
||||
样例输入 复制
|
||||
325719 3
|
||||
样例输出 复制
|
||||
true
|
||||
来源/分类
|
||||
一本通第六章例题
|
Loading…
x
Reference in New Issue
Block a user