This commit is contained in:
2025-01-14 20:19:17 +08:00
commit f606210553
17 changed files with 426 additions and 0 deletions
+29
View 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
View 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,S1S2,S3……Sn 分别为 13589
则可分为{139}与{58}
仅有 1 种分法;
例如:N = 7,S1S2,S3……Sn 分别为 123456,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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
来源/分类
一本通第六章例题