题目

一道神奇的题qwq

首先看题很容易想到把所有的点存下来然后暴力枚举...于是RE 20分

所以要找一种不用开那么大的数组的解法(然而我自己是不可能想出来的qwq

注意一个地方,人数为奇数的位置“最多也仅有一个”,说明奇偶性只根据这一个点改变

……也就是说,用前缀和的方法表示的时候,奇数点之前都是偶数,之后都是奇数

所以 正解是二分答案qwq

对于某个点,用一个cal函数判断这一点是否为偶数,如果是说明这个点在后面,否则在前面(或者就是这一点)

——二分的这个地方WA了5次!

这是原来写的

        while(l <= r) {
mid = (l+r)/;
if (cal(mid)% == )l = mid+;
else r = mid-;
}
cnt = cal(mid)-cal(mid-);
printf("%lld %lld\n",mid,cnt);

为什么会WA呢... 举个例子,

当正确答案为3,l = 2, r = 4, mid = 3;

r = mid -1 = 2;l = mid +1 = 3

这时候就把3跳过去了qwq

所以要改成这样↓

        while(l < r) {
mid = (l+r)/;
if (cal(mid)% == ) l = mid+;
else r = mid;
}
cnt = cal(l)-cal(l - );
printf("%lld %lld\n",l,cnt);

就可以啦w(感谢mrclr学长和jlSsy)

哦还有...bin哥说不放心的话可以用一个ans min来每次把它记下来qwq

以下是完整代码

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
long long s[],e[],d[];
long long t,n,l,r,mid,maxe,cnt; long long cal(long long p) {
long long sum = ;
for(long long j = ; j <= n; j++) {
if(p>=s[j])
sum += (min(p,e[j])-s[j])/d[j]+;
}
return sum;
}
int main() {
scanf("%lld",&t);
for(long long i = ; i <= t; i++) {
maxe = ;
cnt = ;
scanf("%lld",&n);
for(long long j = ; j <= n; j++) {
scanf("%lld%lld%lld",&s[j],&e[j],&d[j]);
maxe = max(maxe,e[j]);
}
if (cal(maxe)% == ) {
printf("Poor QIN Teng:(\n");
continue;
}
l = ;
r = maxe;
while(l < r) {
mid = (l+r)/;
//printf("%lld %lld \n",mid,cal(mid));
if (cal(mid)% == ) l = mid+;
else r = mid;
}
/*for(long long j = 1; j <= n; j++) {
if(mid>=s[j]&&mid<=e[j]&&((mid-s[j])%d[j]==0))
cnt++;
}*/
cnt = cal(l)-cal(l - );
printf("%lld %lld\n",l,cnt);
}
return ;
}

luogu P4403 [BJWC2008]秦腾与教学评估的更多相关文章

  1. Luogu P4403 [BJWC2008]秦腾与教学评估【二分答案】By cellur925

    题目传送门 这道题:真·凉心出题人. 二分答案,个人感觉其实并不只适用于有明显的"最大值最小/最小值最大"条件的题目,其实也可以称它为一种"优化的暴力".这题就 ...

  2. [luogu4403][bzoj1271][BJWC2008]秦腾与教学评估

    题目描述 在秦腾进入北京大学学习的第一个学期,就不幸遇到了前所未有的教学评估.在教学评估期间,同学们被要求八点起床,十一点回宿舍睡觉,不准旷课,上课不准迟到,上课不准睡觉--甚至连著名的北大三角地也在 ...

  3. [BJWC2008]秦腾与教学评估

    嘟嘟嘟 二分好题. 怎么二分呢?反正我是没想出来. 看了题解. 因为只有一个为奇数的点,所以对于一个位置x,求出区间[0, x]的教总和,如果为奇数,说明x取大了:否则x取小了(妙啊). 虽然答案在i ...

  4. OpenJudge-bailian 3454 秦腾与教学评估

    http://bailian.openjudge.cn/practice/3454?lang=en_US 题目 在秦腾进入北京大学学习的第一个学期,就不幸遇到了前所未有的教学评估.在教学评估期间,同学 ...

  5. $Luogu4403$ 秦腾与教学评估 二分

    $Luogu$ $Description$ 有$N$个数列,求一个$x$,$x$在各个数列中的出现次数之和为奇数.这样的$x$最多存在$1$个.若不存在则输出Poor QIN Teng:( $Sol$ ...

  6. [BZOJ1271][WC2008]秦腾与教学评估(巧妙的二分)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1271 分析: 很巧妙的一道题 因为最多只有一个点是奇数,所以说明这个点前面的前缀和都是 ...

  7. BZOJ 1271 秦腾与教学评估

    二分. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> ...

  8. BZOJ1271: [BeiJingWc2008]秦腾与教学评估

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1271 题解: 这种题真是太神了! 只需要考虑被覆盖的次数的奇偶性,并且保证满足题意的点至多只有 ...

  9. bzoj1271 秦腾与教学评估

    SB题!!! 我TM困惑了一下午,三份代码答案全都不一样,后来才发现要用long long来二分... 拿记事本一改就A了. 我TM...... 这SB题目...... 这惨痛的事实充分说明了long ...

随机推荐

  1. blfs(systemv版本)学习笔记-配置远程访问和管理lfs系统

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 要实现远程管理和配置lfs系统需要配置以下软件包: 前几页章节脚本的配置:https://www.cnblogs.com/ren ...

  2. element-ui中table表头表格错误问题解决

    我用的是element-ui v1.4.3 在iframe关闭和切换导航会引起有table的表格错位,解决办法: handleAdminNavTab: function(tab) { var admi ...

  3. FI / CO 配置步骤清单

    一.FI配置 01. 创建公司代码:企业结构-定义-财务会计-编辑/复制/删除/检查公司代码.编辑公司OX02 02. 创建会计科目表 OB13 03. 定义会计年度变式 OB29 04. 创建信贷控 ...

  4. CentOS7系列--安装Chrome浏览器

    CentOS7系列--安装Chrome浏览器 1. 创建yum源文件 [root@server20 ~]# cd /etc/yum.repos.d/ [root@server20 yum.repos. ...

  5. Oracle 使用SQL*Plus连接数据库

    Oracle使用SQL*Plus连接数据库 by:授客 QQ:1033553122   使用sqlplus连接数据库 A 方式1 1.开启SQL*Plus,但不连接到数据库 $ sqlplus /NO ...

  6. python格式化字符串format函数

    1. format可以接受无限个的参数,位置可以不按顺序: In [1]: "{} {}".format("hello","world") ...

  7. Apache与Tomcat有什么关系和区别

    Apache 和 Tomcat 都是web网络服务器,两者既有联系又有区别,在进行HTML.PHP.JSP.Perl等开发过程中,需要准确掌握其各自特点,选择最佳的服务器配置. Apache是web服 ...

  8. ARM有几条memory barrier 的指令?分别有什么区别?

    从ARMv7指令集开始,ARM提供3条内存屏障指令. (1)数据存储屏障( Data Memory Barrier,DMB) 数据存储器隔离.DMB指令保证:仅当所有在它前面的存储器访问操作都执行完毕 ...

  9. [HDFS_add_1] HDFS 启动过程分析

    0. 说明 HDFS 文件概念 && HDFS 启动过程分析 1. HDFS 文件概念 [1.1 NameNode 职能] 存储文件类型.大小.权限.路径等等元数据 通过 edits( ...

  10. Python基础知识:字典

    1.字典中键-值为一对,keys()返回一个列表,包含字典中所有键,values()返回所有值 favorite_languages ={ 'jack':"python", 'al ...