2021年2月24日
今天的比赛结果
感觉很失败
首先看一下D题
蓝桥选拔赛终于开始了,话不多说A题吧。
从前从前有一个正整数n,你需要找到一个素数x和一个合数y使x+y=n成立,这样就可以双剑合并了。
素数是一个大于1的自然数,它的因数只有1与它自己本身。非素数且大于1的自然数称为合数。当然,1不是素数也不是合数。Input
输入包含多个样例。输入的第一行包含一个整数T (1≤T≤10^5),样例数目。
对于每个样例,输入的每一行都包含一个整数n (1≤n≤10^9).
Output
对于每一种情况,打印两个整数。x和y中1≤x,y<n。
如果有多个有效答案,随便您打印任何一个。如果没有有效答案,则打印整数−1。Example
Input
3 4 6 7Output
-1 2 4 3 4
本以为是素筛 然后 遍历素数 然后看另一个是不是合数 但是很明显 1e9的数组实在是太大了 没办法存起来 就纠结了大概一个小时 最终还是没有想出来
b题也是没想通呢
这里找不到我代码了 因为是比赛所有 为了快 都没有创建新文件了 呜呜呜
唐风 和 秦仁 喜欢玩游戏。现在,他们准备玩一个新的好玩的游戏。他们把 n 块汉堡,沿直线放好。唐风 开始从左向右逐块吃汉堡,同时 秦仁 从右向左。对于每个汉堡,玩家吃掉它所需的时间是已知的 (唐风 和 秦仁 以相等的速度吃它们)。当玩家吃完一个汉堡时,他立即开始吃另一块。不允许在同一时刻吃两块汉堡,不允许吃后剩余一部分,也不允许暂停吃汉堡。如果两个玩家同时开始吃同一块汉堡,那么 秦仁会把它留给 唐风,毕竟秦仁是表舅嘛。
现在问他们两个将各吃掉多少个汉堡?
输入
第一行包含一个整数 n (1 ≤ n ≤ 105) — 桌子上的汉堡数目。第二行包含一个序列 t1, t2, ..., tn (1 ≤ ti ≤ 1000),其中 ti 是吃完第 i 块汉堡 (按从左向右的顺序) 所需的时间 (按秒)。
输出
打印两个数字 a 和 b,其中 a 是 唐风 吃掉的汉堡数目,且 b 是 秦仁 吃掉的汉堡数目。
示例
输入
5 2 9 8 2 7输出
2 3
思路是先前缀和
然后 判断前缀和数组当中 哪个数的2倍>a[n]
这个下标-1就答案 然后n-这个答案就表舅的答案(让出一个给表舅吃)
如果等于了a[n]那就不用让也就不要减去1
然后就是人潮汹涌
宴会上人潮汹涌,人来人往
已知宴会上有 n 个人
每个人认识宴会上的一些人,如果 a 认识 b,我们就说 a 和 b 的疏远度是 1,特别地,a 和 a 的疏远度是 0
a 和 c 可以通过一个同时认识他们俩的 b 作介绍来互相认识,这时,我们说 a 和 c 的疏远度是 a 和 b 的疏远度加上 b 和 c 疏远度
选定两个人,问如何作介绍,使得 a 和 b 的疏远度最小?无法介绍来认识输出 !
Input
第一行两个正整数 n 和 m,表示宴会的人数,和有多少对人互相认识 接下来 m 行,每行两个数 p,q,表示 p 和 q 互相认识 接下来一行两个正整数 a,b,表示询问 a 和 b 的最小疏远度
Output
可以认识输出最小疏远度,否则输出 !
Sample Input
3 2 1 2 1 3 2 3Sample Output
2
太傻了 我用并查集
这个明明是一个最短路径