链接:https://ac.nowcoder.com/acm/problem/15167
来源:牛客网
给你a,b和n个数p[i],问你如何分配这n个数给A,B集合,并且满足:
若x在集合A中,则a-x必须也在集合A中。
若x在集合B中,则b-x必须也在集合B中。
第一行 三个数 n a b 1<=n<=1e5 1<=a,b<=1e9
第二行 n个数 p1 p2 p3...pn 1<=pi<=1e9
如果可以恰好分开就输出第一行 YES
然后第二行输出 n个数 分别代表pi 是哪个集合的 0 代表是A集合 1代表是B 集合
不行就输出NO
放在哪个集合都可以的时候优先放B
示例1
复制
4 5 9
2 3 4 5
复制
YES
0 0 1 1
示例2
复制
3 3 4
1 2 4
复制
NO
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
链接:https://ac.nowcoder.com/acm/problem/15158
来源:牛客网
小H正在玩一个战略类游戏,她可以操纵己方的飞机对敌国的N座城市(编号为1~N)进行轰炸
敌国的城市形成了一棵树,小H会依次进行Q次轰炸,每次会选择一个城市A进行轰炸,和这座城市距离不超过2的城市都会受损(这里距离的定义是两点最短路径上的边数),轰炸结束后,小H还想知道当前城市A受损的次数
作为游戏的开发者之一,你有义务回答小H的问题
第1行,两个整数N(1≤N≤750000)、Q(1≤Q≤750000)
第2~N行,每行两个整数表示树上的一条边
第N+1~N+Q行,每行一个整数,表示小H这次轰炸的城市
输出Q行,每行一个整数表示这一次轰炸的城市在此次轰炸后共计受损几次
示例1
复制
4 4
1 2
2 3
3 4
1
2
3
4
复制
1
2
3
3
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
链接:https://ac.nowcoder.com/acm/problem/15135
来源:牛客网
我们定义一个圆 C 为以原点 (0, 0) 为中心的单位圆(半径为 1 的圆)。给定在 C 圆周上相异的两点
A, B。请问由 A 出发,沿着圆周走到 B,是顺时针走比较近,还是逆时针走比较近呢?
C 的圆周上的所有点都可以用 (cos(t), sin(t)) 来表示,其中 t 的物理意义为角度。也就是说,在圆 C 中,给定一角度 t 即可确定在圆周上的一点。在这题中,所有的角度皆以弧度制表示,另外,由于不同的t 值有机会对应到同一个圆周上的点,我们限制t 的范围为[-π,π )。
本题中,我们会用tA 以及tB 来代表点A 及点B,数学上,A = (cos(tA), sin(tA)), B = (cos( tB), sin(tB))。
输入的第一行有一个正整数T,代表接下来共有几组测试数据。
接下来的T行,每行有两个浮点数tA, tB,代表一组数据。
对于每组数据请输出一行,如顺时针比较近请输出“clockwise”,否则请输出“counterclockwise”。
示例1
复制
3
3.14 3.13
-3.14 -3.13
1.00 2.00
复制
clockwise
counterclockwise
counterclockwise
1≤T≤105
−π≤tA,tB<π
A≠B
输入中的浮点数精确至小数点下两位
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include