【2018.9.15】陈老师模拟赛1

质量检查(quality)

【问题描述】

食品安全部门要检查一些食品中是否含有违禁成分。现在总共有 n 种食品待查,对于每种食品,他们需要给出是否含有这种成分。对一份样品,检测设备可以输出是否含有违禁成分。由于检测设备相当敏感,如果将多份样品混合,只要其中任何一份含有这种添加剂,设备就会输出“含有”;否则如果设备输出“不含有”,则表示混合样品中的每一种都不含有违禁成分。又由于每次检测都非常昂贵,为了减少检测次数,部门希望有策略地将一些样品混合以后进行检测。

对于每种食品,部门都留存了两份样品,可以认为这两份样品的检测结果一定是一样的,只要确定了其中一份的结果就确定了这种食品的结果。

根据经验,每种食品中是否含有违禁成分是独立同分布的(即相互之间没有任何关联),它们含有该成分的概率都是 k。现在你需要帮食品安全部门设计一个检测的策略,使得检测次数的期望值尽可能少。你只需要输出这个期望值。

【输入格式】

从文件 quality.in 中读入数据。

第一行包含一个正整数 T(1 ≤ T ≤ 105) ,表示这个测试点内的数据组数。接下来 T 行,每行两个数,分别表示 n(1 ≤ n ≤ 106) 、k(0 < k < 1) ,其中 k 最多

包含 6 位小数。

【输出格式】

输出到文件 quality.out 中。

输出 T 行。

每行一个浮点数,表示一组数据的答案,四舍五入精确到整数。

【样例1输入】

2

6 0.1

6 0.3

【样例1输出】

4

6

【子任务】

对于 20%的数据,n ≤ 5 ;

对于 40%的数据,n ≤ 10 ;

对于 60%的数据,n ≤ 2×103 ;

对于 100%的数据,n ≤ 106 ;

在所有子任务中,均匀分布着 50%的数据,满足 T ≤ 100 。

对于 100%的数据,保证准确答案的小数部分不大于 0.4 或不小于 0.6 。

倍数问题(multi)

【题目描述】

众所周知,小葱同学擅长计算,尤其擅长计算一个数是否是另外一个数的倍数。但小葱只擅长两个数的情况,当有很多个数之后就会比较苦恼。现在小葱给了你 n 个数,希望你从这 n 个数中找到三个数,使得这三个数的和是 K 的倍数,且这个和最大。数据保证一定有解。

【输入格式】

从文件 multi.in 中读入数据。第一行包括 2 个正整数 n, K。

第二行 n 个正整数,代表给定的 n 个数。

【输出格式】

输出到文件 multi.out 中。

输出一行一个整数代表所求的和。

【样例1输入】

4 3

1 2 3 4

【样例1输出】

9

【样例1解释】

选择 2、3、4。

【子任务】

对于 30%的数据,n ≤ 100。

对于 60%的数据,n ≤ 1000。

对于另外 20%的数据,K ≤ 10。

对于 100%的数据,1 ≤ n ≤ 105,1 ≤ K ≤ 103,给定的 n 个数均不超过 108

30tps:设$mod[i][j]$表示在第1~n-1位中,两个数的和模k的值为j时的最大值,这样就预处理出了前两个数的情况。枚举第三个数x,答案就是$max \left{ x+mod[i-1][k-x \mod k] \right}$ | $3 \leq i \leq n$

60tps:设$mod[i][j]$表示在第1~n-1位中,一个数模k的值为j时的最大值,这样就预处理出了一个数的情况。枚举剩下两个数即可,方法类上。

原文地址:https://www.cnblogs.com/scx2015noip-as-php/p/9651473.html

时间: 2024-10-08 15:08:35

【2018.9.15】陈老师模拟赛1的相关文章

2018.3.10 省选模拟赛

从这里开始 概况 Problem A 三元组 Problem B 攻略 Problem C 迂回 概况 这是省选T1合集?还是欢乐AK赛? 全班一半以上的人三道题都会做qwq. Doggu还剩一小时时以为自己AK了,然后玩了一小时.虽然最终被卡了20分的常数. ZJC 1个半小时AK?Excuse me? 我这条大咸鱼到最后10分钟才敲完了T1,然后发现线段树要T掉. 发自内心鄙视垃圾出题人卡常数,本来的欢乐AK变成280. 教练给我们考4个小时的试,题面上也这么写的,看题解,woc,考试时间3

2016年11月15日noip模拟赛

苟.. 1.谜题 1 /* 2 考虑这题,该怎么xjb搞 3 嗯我说出了题解xjb搞.. 4 由题意 易得 N个 二位数字(一位数加个0) 如果是连续的,那么就成立. 5 反过来做. 6 7 方法2:n<4有解,其他无解 8 */ 9 #include <iostream> 10 #include <cmath> 11 #include <stdio.h> 12 #include <string> 13 #include <string.h>

2018.2.12 省选模拟赛

题目大意 (题目很简洁了,不需要大意) 其实显而易见地可以发现,当被卡一次后后面的路程都是固定了的. 可以用类似动态规划的思想来进行预处理.现在的问题就是怎么知道在某个位置刚等完红灯然后出发会在哪个路口再次被卡. 尝试画一画图: 其中横轴表示位置,纵轴表示时间,长方体表示红灯时段.有用的部分长度只有$r + g$,所以在模意义下弄一下就可以减少很多重复和无用状态: 但是这样仍然不好处理上面提到的问题,考虑让线段横着走,第一个撞着的长方形就是答案.为了实现这个目标,就每个长方形向下移动一段(移动的

2018/3/9 省选模拟赛 0分

第二题模拟扫一遍就可以过,不能更划算了.q=1的30分写的比100分还麻烦,有趣哦. 破暴力40分也没什么可写了,日常辣鸡吃枣药丸. 原文地址:https://www.cnblogs.com/137shoebills/p/8533870.html

2018/3/27 省选模拟赛 140分

T1 树归 100 T2 写的快速幂卷积 40,超时了,正解是矩阵乘法之类的. 正解 1 暴力(m<=5):将x的所有约数提出来矩阵乘法 2 3 定义乘法同构: 4 A=p[1]^a[1] * p[2]^a[2] * ... * p[n]^a[n] 5 B=q[1]^b[1] * q[2]^b[2] * ... * q[n]^b[n] 6 其中p[i]与q[i]皆为质数 7 将数组a与b降序排序后如果是完全相同的,那么称A与B是乘法同构的 8 如 2*2*2*2*3*3*5 与 7*11*11*

2018大华软件大赛模拟赛第2题 (特殊的整数)

题目:有一种特殊的正整数(int类型),将数分为两侧,每侧至少有一位数,两侧的每个数字相加相等,请写出判断的方法用来检测是否这种数. 比如:1236,可以拆分为123和6. 输入:输入的第一行指定用例数量T: 用例的第二行输入正整数: 输出:输出是否为特殊的正整数 bool is_magicnum(int number) intput:212321454543622 output:11 1 #include <stdio.h> 2 #include <stdbool.h> 3 4

2018.6.29 省选模拟赛

*注意:这套题目应版权方要求,不得公示题面. 从这里开始 Problem A 小D与电梯 Problem B 小D与田野 Problem C 小D与函数 Problem A 小D与电梯 题目大意 假设电梯在0层,容量无限大.给定$n$个人的到达时间和要去的楼层.电梯上下一层楼花费的时间为1,电梯开关门.乘客上下的耗时不计,电梯可以停留在某一层楼.问将所有人送达到目的地,并让电梯回到0层的最少耗时. 先按到达时间将所有人排序.显然,每次电梯运输的人是一段连续的区间中的人. 用$f[i]$表示将前$

2018.2.23 省选模拟赛

从这里开始 Problem A cycle Problem B meal Problem C naive Problem A cycle 判断是否有经过一个点的负环,我们可以跑最短路.判断这个点到自己的最短路是否是负数. 于是可以二分环大小跑dfs版spfa. 于是可以分层图做时间复杂度四方的dp. (YYR给的数据水得吓人,这两个做法居然都跑过了.然后都被我和jmr卡掉了) 注意到如果一个点走不超过$k$条边回到自己的最短路的长度是负数,那么走不超过$k + 1$条边也是. 因此我们可以二分答

2018/3/29 省选模拟赛 80

我真是太菜了... T1 10分纯暴力没写,20分容斥也没写(人就是懒死的).还有30分矩乘不会 正解 <IOI2018 中国国家集训队第一阶段作业题解部分 - 杭州第二中学 吴瑾昭.pdf>最后一题 T2  以为自己能拿到50分,但是其实那个暴力算法只能过10分的点,n=2000的20分数据用n^3带剪枝过不了,所以拿了30分. 正解 <计数与期望问题选讲 CLJ.pdf>最后一题 我记得我以前好像看到过这个文档但是没读过..今天读一下 T3 依然是分情况50分,30分树归20分