[size=2
]这套题包含了积年真题࿰
c;十分重要࿰
1
;࿰
1
;࿰
1
;࿰
1
;要测验的同学可以参考一下࿰
1
;࿰
1
;
[size=2
]此套题限时3小时。
A. C0
5.L0
8.贪婪算法入门࿰
8;一࿰
9;.课堂练习1
.书架(SSOI2
0
1
7五年级t6)
标题描述
为了方便同学们查阅资料࿰
c;程序计划兴趣小组的辅导老师打算将积攒了很多年的 n 本书放到上课教室的书架上去。
教室的书架是一层一层叠起来的࿰
c;每一层最多可以放 m 本书。每一层的高度由放在这层中最高的那本书决定的࿰
c;如果不放书࿰
c;则认为这层的高度为 0
。为了使每个同学能方便地拿到想要的书࿰
c;书架的总高度应尽可能低。请编程盘算将这 n 本书放在书架上后书架的最小总高度࿰
c;盘算的过程中不思量书的厚度与书架本身材料的厚度。
输入格式
共 n
3;1
行。
第 1
行 2
个整数 n 和 m ( 1
≤ m ≤ n ≤ 1
0
0
0
0
0
) 。
接下来 n 行࿰
c; 每行 1
个正整数࿰
c; 分别表示每本书的高度( 每本书的高度不超过 1
0
0
)。
输特别式
一个整数࿰
c;表示将 n 本书放入书架后书架的最小总高度。
样例
[size=4
]输入数据 1
Copy
[size=4
]输出数据 1
Copy
样例解释
将高度是 30
和 2
0
的两本书放在一层࿰
c;则这层的高度为 30
࿰
c;将高度是 1
0
的那本书放在另外一层࿰
c;则这层的高度为 1
0
࿰
c;则书架的总高度为 4
0
࿰
c;满意最小。
代码
- #include<bits/stdc
- 3;
- 3;.h>
- using namespace std;
- long long n,m,a[1
- 0
- 0
- 0
- 0
- 5],s;
- int main()
- {
- cin>>n>>m;
- for(int i=
- ;1
- ;i<=
- ;n;i
- 3;
- 3;)
- {
- cin>>a[i];
- }
- sort(a
- 3;1
- ,a
- 3;n
- 3;1
- );
- for(int i=
- ;n;i>=
- ;0
- ;i-=
- ;m)
- {
- s=
- ;s
- 3;a[i];
- }
- cout<<s;
- return 0
- ;
- }
复制代码 B. C0
5.L0
8.贪婪算法入门࿰
8;一࿰
9;.课堂练习2
礼物
标题描述
国庆马上要到了。小明喜欢的礼物有 n 种分别是࿱
a;公仔、电子手表、漫画书等。
每种礼物有一件࿰
c;每种礼物价钱都不一样。小明手头上有 m 元。
小明最多可以买多少件礼物࿱
f;
输入格式
第一行࿰
c;两个整数࿱
a; n , m ( 1
<=
; n<=
;1
0
0
, 1
<=
; m <=
; 1
0
0
0
0
0
)。
第二行࿰
c; n 个空格分开的整数( 每个整数 <=
; 1
0
0
0
)࿰
c;代表每种礼物的价钱。
输特别式
一个整数࿰
c;小明能买多少件礼物。
样例
[size=4
]输入数据 1
Copy
[size=4
]输出数据 1
代码
- #include<bits/stdc
- 3;
- 3;.h>
- using namespace std;
- int main() {
- int n,m;
- cin>>n>>m;
- vector<int>a(n);
- for(int i=
- ;0
- ;i<n;i
- 3;
- 3;)
- {
- cin>>a[i];
- }
- sort(a.begin(),a.end());
- int o=
- ;0
- ;
- int t=
- ;0
- ;
- for(int i=
- ;0
- ;i<n;i
- 3;
- 3;)
- {
- if(t
- 3;a[i]<=
- ;m)
- {
- t
- 3;=
- ;a[i];
- o
- 3;
- 3;;
- }
- else
- {
- break;
- }
- }
- cout<<o;
- return 0
- ;
- }
复制代码 C. C0
5.L0
8.贪婪算法入门࿰
8;一࿰
9;.课堂练习3.数字圈(DLOI2
0
1
9t4
)
标题描述
当我们写数字时会发现有些数字有封闭地区࿰
c;有的数字没有封闭地区。
数字 0
有一个封闭地区࿰
c;数字 1
、2
、 3 都没有封闭地区࿰
c;数字 4
有一个封闭地区࿰
c;数字 5 没有封闭地区࿰
c;数字 6 有一个封闭地区࿰
c;数字 7 没有 封闭地区࿰
c;数字 8 有两个封闭地区࿰
c;数字 9 有一个封闭地区。
现在你要构造一个最小的非负整数࿰
c;使得它的各位数字的封闭地区的数量加起来的总和恰好等于 K。
输入格式
一个整数 K ( 1
<=
; K <=
; 2
50
0
)
输特别式
满意题意的最小的非负整数。
样例
[size=4
]输入数据 1
Copy
[size=4
]输出数据 1
Copy
[size=4
]输入数据 2
Copy
[size=4
]输出数据 2
Copy
[size=4
]输入数据 3
Copy
[size=4
]输出数据 3
代码
- #include<bits/stdc
- 3;
- 3;.h>using namespace std;int k;int main(){ cin>>k; if(k=
- ;=
- ;1
- ) { cout<<0
- ; return 0
- ; } if(k%2
- =
- ;=
- ;1
- ) { cout<<"
- ;4
- "
- ;; for(int i=
- ;1
- ;i<=
- ;k/2
- ;i
- 3;
- 3;) { cout<<"
- ;8"
- ;; } } else { for(int i=
- ;1
- ;i<=
- ;k/2
- ;i
- 3;
- 3;) { cout<<"
- ;8"
- ;; } } return 0
- ;}
复制代码 D. C0
5.L0
8.贪婪算法入门࿰
8;一࿰
9;.课堂练习4
.伤害的实行(NHOI2
0
1
5初中)
标题描述
小明近来在上化学课࿰
c;他需要利用到 n 种化学物质来进行他的实行。在做实行的时候࿰
c;他需要将全部化学物质放在桌面上࿰
c;按序次排成一条直线。
然而每一种化学物质都是伤害品࿰
c;对于第 i 个化学物质࿰
c;如果有另外一个化学物质距离它的距离小于 a_iai࿰
c;那么就会发生爆炸。
小明想知道如果要安全的完成他的实行࿰
c;桌子最短可以多短。
输入格式
第一行一个整数 n ࿰
c;表示化学物质的个数。
第二行有 n 个整数࿰
c;第 i 个整数 a_iai 表示第 i 个化学物质必须与其他化学物质保持的距离。
数据范围
2
0
% 的数据 , 1
<=
; n <=
; 2
0
50
% 的数据 , 1
<=
; n<=
; 1
0
0
0
0
0
1
0
0
% 的数据 , 1
<=
; n <=
; 1
0
0
0
0
0
0
, 1
<=
; a_iai <=
; 1
0
0
0
0
0
输特别式
一个整数࿰
c;表示可以或许让小明安全完成实行的桌子最小长度。
注意࿱
a;物品要安原来的序次摆放。
样例
[size=4
]输入数据 1
Copy
[size=4
]输出数据 1
代码
- #include<bits/stdc
- 3;
- 3;.h>using namespace std;long long n,a[1
- 0
- 0
- 0
- 0
- 0
- 0
- 1
- ],o=
- ;0
- ;int main(){ cin>>n; for(int i=
- ;1
- ;i<=
- ;n;i
- 3;
- 3;) { cin>>a[i]; } for(int i=
- ;1
- ;i<n;i
- 3;
- 3;) { o=
- ;o
- 3;max(a[i],a[i
- 3;1
- ]); } cout<<o; return 0
- ;}
复制代码 E. C0
5.L0
8.贪婪算法入门࿰
8;一࿰
9;.课堂练习5.最大步数(GCOI2
0
1
9六年级t2
)
标题描述
给出了两个非负整数 P 和 Q。您的任务是使得 P 和 Q 相等。在每一步中࿰
c;您可以实行以 下两项操作之一࿱
a; 1
、将任何质数加到 P 上。 2
、从 Q 减去任何质数。 如果不可能使 P 和 Q 相等࿰
c;则输出 -1
。否则࿰
c;输出一个非负整数࿱
a;可以实行的最大步数。
输入格式
数字 0
和 1
不是质数。
输特别式
一行࿰
c;两个整数 P 和 Q。 0
<=
; P, Q <=
; 1
0
^1
8
样例
[size=4
]输入数据 1
Copy
[size=4
]输出数据 1
Copy
[size=4
]输入数据 2
Copy
[size=4
]输出数据 2
Copy
[size=4
]输入数据 3
Copy
[size=4
]输出数据 3
代码
- #include<bits/stdc
- 3;
- 3;.h>using namespace std;long long p,q;int main(){ cin>>p>>q; if(p>q) { cout<<-1
- ; return 0
- ; } if(p-q=
- ;=
- ;0
- ) { cout<<0
- ; return 0
- ; } if(p-q=
- ;=
- ;1
- ) { cout<<-1
- ; return 0
- ; } cout<<(q-p)/2
- ; return 0
- ;}
复制代码 F. C0
5.L0
8.贪婪算法入门࿰
8;一࿰
9;.课堂练习6.渡河(GCOI2
0
1
9六年级t4
)
标题描述
统共有 X 人要坐船过河。
一个小船最多可以坐 4
人࿰
c;一个小船固定收费 32
元。
一个大船最多可以坐 6 人࿰
c;一个大船固定收费 36 元。
船埠有无穷多小船和大船。
问如何坐船࿰
c;才气使得总费用最小。
输入格式
一个整数 X。
数据范围
60
% 的数据, 1
<=
; X <=
; 1
0
0
0
80
% 的数据, 1
<=
; X <=
; 1
0
0
0
0
0
0
1
0
0
% 的数据, 1
<=
; X <=
; 2
0
0
0
0
0
0
0
0
0
输特别式
一个整数࿰
c;表示最小的总费用。
样例
[size=4
]输入数据 1
Copy
[size=4
]输出数据 1
Copy
[size=4
]输入数据 2
Copy
[size=4
]输出数据 2
代码
- #include<bits/stdc
- 3;
- 3;.h>using namespace std;long long x,s,l;int main(){ cin>>x; if(x<=
- ;4
- )s=
- ;32
- ; else { s
- 3;=
- ;(x/6)*36; l=
- ;x%6; if(l=
- ;=
- ;5) { s
- 3;=
- ;36; } if(l=
- ;=
- ;4
- ||l=
- ;=
- ;3) { s
- 3;=
- ;32
- ; } if(l=
- ;=
- ;2
- ||l=
- ;=
- ;1
- ) { s
- 3;=
- ;2
- 8; } } cout<<s; return 0
- ;}
复制代码 谢谢欢看࿰
1
;࿰
1
;࿰
1
;࿰
1
;
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao1
2
3.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |