
本文共 5611 字,大约阅读时间需要 18 分钟。
成绩
rank | name | score | T1 | T2 | T3 | T4 |
---|---|---|---|---|---|---|
1 1 1 | h k y hky hky | 180 180 180 | 100 100 100 | 80 80 80 | 0 0 0 | 0 0 0 |
2 2 2 | l y f lyf lyf | 170 170 170 | 100 100 100 | 70 70 70 | 0 0 0 | 0 0 0 |
3 3 3 | t j h tjh tjh | 160 160 160 | 100 100 100 | 40 40 40 | 0 0 0 | 20 20 20 |
4 4 4 | f y fy fy | 160 160 160 | 60 60 60 | 100 100 100 | 0 0 0 | 0 0 0 |
5 5 5 | c y z cyz cyz | 140 140 140 | 100 100 100 | 40 40 40 | 0 0 0 | 0 0 0 |
6 6 6 | w j j wjj wjj | 100 100 100 | 100 100 100 | 0 0 0 | 0 0 0 | 0 0 0 |
7 7 7 | l t h lth lth | 100 100 100 | 100 100 100 | 0 0 0 | 0 0 0 | 0 0 0 |
8 8 8 | c w h cwh cwh | 80 80 80 | 60 60 60 | 20 20 20 | 0 0 0 | 0 0 0 |
9 9 9 | w h d whd whd | 70 70 70 | 60 60 60 | 10 10 10 | 0 0 0 | 0 0 0 |
题目
T1:杯子
题目
小明买了 N N N个容积可以是无穷大的杯子,刚开始的时候每个杯子里有 1 1 1升水,接着小明发现杯子实在太多了,于是他决定保留不超过 K K K个杯子。每次他选择两个当前含水量相等的杯子,把一个杯子的水全部倒进另一个里,然后把空瓶丢弃。(不能丢弃有水的杯子)
显然在有些情况下小明无法达到他的目标,比如 N = 3 N=3 N=3, K = 1 K=1 K=1。此时小明会重新买一些新的杯子(新杯子容积无限,开始时有 1 1 1升水),以达到目标。
现在小明想知道,最少需要买多少个新杯子才能达到目标呢?
输入
一行两个正整数, N N N, K K K。
输出
一个非负整数,表示最少需要买多少新杯子。
样例输入1
3 1
样例输出1
1
样例输入2
13 2
样例输出2
3
样例输入3
1000000 5
样例输出3
15808
数据范围
对于 50 % 50% 50%的数据, N ≤ 10000000 N≤10000000 N≤10000000;
对于 100 % 100% 100%的数据, 1 ≤ N ≤ 1000000000 1≤N≤1000000000 1≤N≤1000000000, K ≤ 1000 K≤1000 K≤1000。
T2:玩具
题目
商店正在出售小 C C C最喜欢的系列玩具,在接下来的 n n n周中,每周会出售其中的一款,同一款玩具不会重复出现。
由于是小 C C C最喜欢的系列,他希望尽可能多地购买这些玩具,但是同一款玩具小 C C C只会购买一个。同时,小 C C C的预算只有 m m m元,因此他无法将每一款都纳入囊中。此外,小 C C C不能连续两周都购买玩具,否则他会陷入愧疚。现在小 C C C想知道,他最多可以买多少款不同的玩具呢?
输入
输入文件共 2 2 2行;
第一行两个正整数 n n n和 m m m,中间用一个空格隔开;
第二行共 n n n个正整数,第 i i i个正整数表示第 i i i周出售的玩具的价格。
输出
输出文件只有一行,包含一个整数,表示小 C C C最多能买多少款不同的玩具。
样例输入
3 8 4 4 5
样例输出
1
数据范围
对于 30 % 30% 30%的数据, n ≤ 10 n≤10 n≤10;
对于 60 % 60% 60%的数据, n ≤ 100 n≤100 n≤100, m ≤ 1000 m≤1000 m≤1000;
对于 100 % 100% 100%的数据, n ≤ 1000 n≤1000 n≤1000, m ≤ 1000000 m≤1000000 m≤1000000,单个玩具的价格 ≤ 1000 ≤1000 ≤1000。
T3:恐怖的奴隶主
题目
小 L L L热衷于 u n d e r c a r d s undercards undercards。
在 u n d e r c a r d s undercards undercards中,有四个格子。每个格子要么是空的,要么住着一只 B i g B o b BigBob BigBob。
每个 B i g B o b BigBob BigBob有一个不超过 k k k的血量;血量减到 0 0 0视为死亡。那个格子随即空出。
当一只 B i g B o b BigBob BigBob受到伤害后,假如它没有死亡且剩余血量为 t t t,它会从左数第一个空格处召唤一只血量为 a [ t ] a[t] a[t]的 B i g B o b BigBob BigBob;若没有空格,则不会召唤。
法术 R R R定义为:从左往右,对每个 B i g B o b BigBob BigBob造成一点伤害;假如有 B i g B o b BigBob BigBob死亡,重复上述效果。
聪明的小 L L L发现,在某些情况下,当他发动法术 R R R时,游戏会陷入循环。
他想求出这样的初始情形有多少种。
输入
输入一个正整数 k k k;
随后一行 k − 1 k-1 k−1个正整数,表示 a [ 1 ] ~ a [ k − 1 ] a[1]~a[k-1] a[1]~a[k−1];
输出
输出一个整数,表示答案。
样例输入
22
样例输出
31
样例解释
B i g b o b Bigbob Bigbob最多有 2 2 2血,满血 b i g b o b bigbob bigbob受伤会召出新的。
循环的初始状态有:
( 2 , 1 , 0 , 0 ) , ( 1 , 2 , 0 , 0 ) , ( 2 , 0 , 1 , 0 ) , ( 2 , 1 , 1 , 0 ) , ( 0 , 2 , 1 , 0 ) , ( 1 , 2 , 1 , 0 ) , ( 2 , 2 , 1 , 0 ) , ( 1 , 0 , 2 , 0 ) , ( 0 , 1 , 2 , 0 ) , (2,1,0,0),(1,2,0,0),(2,0,1,0),(2,1,1,0),(0,2,1,0),(1,2,1,0),(2,2,1,0) ,(1,0,2,0),(0,1,2,0), (2,1,0,0),(1,2,0,0),(2,0,1,0),(2,1,1,0),(0,2,1,0),(1,2,1,0),(2,2,1,0),(1,0,2,0),(0,1,2,0),
( 1 , 1 , 2 , 0 ) , ( 2 , 1 , 2 , 0 ) , ( 2 , 1 , 0 , 1 ) , ( 0 , 2 , 0 , 1 ) , ( 1 , 2 , 0 , 1 ) , ( 0 , 2 , 1 , 1 ) , ( 1 , 2 , 1 , 1 ) , ( 0 , 0 , 2 , 1 ) , (1,1,2,0),(2,1,2,0),(2,1,0,1),(0,2,0,1),(1,2,0,1),(0,2,1,1),(1,2,1,1),(0,0,2,1), (1,1,2,0),(2,1,2,0),(2,1,0,1),(0,2,0,1),(1,2,0,1),(0,2,1,1),(1,2,1,1),(0,0,2,1),
( 1 , 0 , 2 , 1 ) , ( 0 , 1 , 2 , 1 ) , ( 1 , 1 , 2 , 1 ) , ( 2 , 1 , 2 , 1 ) , ( 0 , 2 , 2 , 1 ) , ( 1 , 2 , 2 , 1 ) , ( 2 , 1 , 0 , 2 ) , ( 1 , 2 , 0 , 2 ) , (1,0,2,1),(0,1,2,1),(1,1,2,1),(2,1,2,1),(0,2,2,1),(1,2,2,1),(2,1,0,2) ,(1,2,0,2), (1,0,2,1),(0,1,2,1),(1,1,2,1),(2,1,2,1),(0,2,2,1),(1,2,2,1),(2,1,0,2),(1,2,0,2),
( 2 , 0 , 1 , 2 ) , ( 2 , 1 , 1 , 2 ) , ( 0 , 2 , 1 , 2 ) , ( 1 , 2 , 1 , 2 ) , ( 2 , 2 , 1 , 2 ) , ( 2 , 1 , 2 , 2 ) (2,0,1,2),(2,1,1,2),(0,2,1,2),(1,2,1,2),(2,2,1,2),(2,1,2,2) (2,0,1,2),(2,1,1,2),(0,2,1,2),(1,2,1,2),(2,2,1,2),(2,1,2,2)
共 31 31 31种。
数据范围
对于 30 % 30% 30%的数据, k ≤ 5 k≤5 k≤5;
对于 70 % 70% 70%的数据, k ≤ 10 k≤10 k≤10, a [ i ] = k a[i]=k a[i]=k;
对于 100 % 100% 100%的数据, k ≤ 15 k≤15 k≤15, 1 ≤ a [ i ] ≤ k 1≤a[i]≤k 1≤a[i]≤k。
T4:组合树(tree)
题目
B o b Bob Bob想要和 C a r r o l Carrol Carrol玩游戏。但 C a r r o l Carrol Carrol觉得玩游戏太无聊,就和 T u e s d a y Tuesday Tuesday去写歌了。于是现在 B o b Bob Bob来找你玩游戏。
这个游戏是这样的:给定一棵 n n n个节点的树, 1 1 1号点为根节点,设 v v v的父亲是 f ( v ) f(v) f(v) 。其中每个节点有一个颜色,要么是黑色,要么是白色。不妨记第 i i i个节点的初始颜色是 c i ci ci。 c i = 0 ci =0 ci=0或 1 1 1,表示黑色或白色。
在游戏开始时, B o b Bob Bob为每个节点选择一个目标颜色 d i di di,要求你经过若干次操作,将每个节点变成其目标颜色。你的操作是这样的:
●选定一个点 u u u,将 u u u, f ( u ) f(u) f(u), f ( f ( u ) ) f(f(u)) f(f(u)), … … …, f k − 1 ( u ) fk-1(u) fk−1(u)这 k k k个节点的颜色翻转(将白色节点变为黑色节点,将黑色节点变为白色节点)。其中 k k k是游戏开始前确定的一个正整数。
只有 u u u, f ( u ) f(u) f(u), f ( f ( u ) ) f(f(u)) f(f(u)), … … …, f k − 1 ( u ) fk-1(u) fk−1(u)这 k k k个节点均存在,你才能执行这样的操作。当然,你可以执行任意多次操作。
现在 B o b Bob Bob要和你玩 T T T次这样的游戏,每次你都想要知道你是否有可能完成要求,即通过若干次操作,将所有节点变成其目标颜色。
输入
第一行仅一个数 T ≤ 10 T≤10 T≤10,表示这样的游戏的次数;
●接下来共有 T T T组数据。对于每一组数据:
○第一行是两个正整数 n n n, k k k, n n n表示树的大小, k k k的含义请参见题目描述。数据满足 n , k ≤ 2 × 105 n,k≤2×105 n,k≤2×105
○接下来 n − 1 n-1 n−1行每行两个数 u u u, v v v,表示树上有一条边 ( u , v ) (u,v) (u,v) 。注意:输入并不保证边的方向。
○接下来一行 n n n个数 c 1 c1 c1 , c 2 c2 c2, … … …, c n cn cn,表示初始颜色。
○接下来一行 n n n个数 d 1 d1 d1 , d 2 d2 d2, … … …, d n dn dn,表示目标颜色。
输出
输出包含 T T T行,第 i i i行对应第 i i i次游戏的答案;
对于第 i i i次游戏,如果你有可能完成任务,输出 Y e s Yes Yes,否则输出 N o No No 。
样例输入
2 3 2 1 2 2 3 0 0 0 1 0 1 3 2 1 2 2 3 0 0 0 1 1 1
样例输出
YesNo
样例解释
●对于第一次游戏,第一次选择 2 2 2号点操作, 1 1 1, 2 2 2号点被翻转;第二次选择 3 3 3号点操作, 2 2 2, 3 3 3号点被翻转。即达成目标状态。
●对于第二次游戏,可以证明,无法将初始状态经过操作变为目标状态。
数据范围
对于前 10 % 10% 10% 的数据, n ≤ 5 n≤5 n≤5;
对于前 30 % 30% 30% 的数据, n ≤ 20 n≤20 n≤20;
对于前 50 % 50% 50% 的数据, n ≤ 2000 n≤2000 n≤2000;
对于前 70 % 70% 70% 的数据, n ≤ 50000 n≤50000 n≤50000;
对于全部测试点: T ≤ 10 T≤10 T≤10, k ≤ n ≤ 2 × 1 0 5 k≤n≤2×10^{5} k≤n≤2×105,保证数据给出的是一棵树。
做出来的题目博客
发表评论
最新留言
关于作者
