题目链接

原题解:

可以发现,假设我们把凸多边形看做障碍,一个点没有被染色当且仅当在它的位置上能看到凸多边形任意两条相对的边中的一条(也就是能看到至少$\dfrac{n}{2}$条边)。

对于每个询问点,我们只需要从某个点出发二分出能看到或不能看到的边的区间,就能知道它有没有被染色。

(可以使用__int128)

补充:

虽然有直线划分,但本题并不是用半平面交做。

代码(100分):

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define IL inline
#define RG register
using namespace std;
typedef long long LL;
typedef __int128 Int;
#define RI RG int
#define RC RG char
const int N=1e5; int L,R,i,l,m,n,o,q,r,s,t;
LL a[N],b[N],x,y; IL bool cmp(RI u,RI v){
return (Int)0<=(Int)(a[u]-x)*(b[v]-y)
-(Int)(a[v]-x)*(b[u]-y);
} IL bool solve(){
scanf("%lld%lld",&x,&y);
x^=(LL)t*s*s*s;
y^=(LL)t*s*s*s;
o=cmp(n>>1,(n>>1)+1);
if(o==cmp(n,1))
return o; for(l=1,r=n>>1;l<r;){
m=l+r>>1;
cmp(m,m+1)^o?l=m+1:r=m; }
for(L=l,l=n>>1,r=n-1;l<r;){
m=l+r+2>>1;
cmp(m,m+1)^o?r=m-1:l=m; } R=l;
if(o)
return (n>>1)<R-L+1;
else
return R-L+1<(n>>1); } int main(){
scanf("%d%d",&t,&n);
for(RI i=1;i<=n;i++)
scanf("%lld%lld",&a[i],&b[i]);
scanf("%d",&q);
for(RI i=1;i<=q;i++){
s+=o=solve();
puts(o?"DA":"NE"); } return 0; }

【2020NIO.AC省选模拟#10】C. 寄蒜几盒的更多相关文章

  1. [noi.ac省选模拟赛]第10场题解集合

    题目 比赛界面. T1 不难想到,对于一个与\(k\)根棍子连接的轨道,我们可以将它拆分成\(k+1\)个点,表示这条轨道不同的\(k+1\)段. 那么,棍子就成为了点与点之间的边.可以发现,按照棍子 ...

  2. [noi.ac省选模拟赛]第12场题解集合

    题目 比赛界面. T1 数据范围明示直接\(O(n^2)\)计算,问题就在如何快速计算. 树上路径统计通常会用到差分方法.这里有两棵树,因此我们可以做"差分套差分",在 A 树上对 ...

  3. [noi.ac省选模拟赛]第11场题解集合

    题目   比赛界面. T1   比较简单.容易想到是求鱼竿的最大独立集.由于题目的鱼竿可以被分割为二分图,就可以想到最大匹配.   尝试建边之后会发现边的数量不小,但联系题目性质会发现对于一条鱼竿,它 ...

  4. [noi.ac省选模拟赛20200606]赌怪

    题目   点这里看题目. 分析   先特判掉\(K=2\)的情况.   首先可以考虑到一个简单 DP :   \(f(i)\):前\(i\)张牌的最大贡献.   转移可以\(O(n^2)\)地枚举区间 ...

  5. Solution -「NOI.AC 省选膜你赛」寄蒜几盒

    题目 题意简述   给定一个含有 \(n\) 个顶点的凸多边形( \(n\) 是偶数),对于每一对相对的边(即中间有 \(\frac{n}2-1\) 条其它边),延长它们以将平面分割为多块,并把包含原 ...

  6. NOI.AC省选模拟赛第一场 T1 (树上高斯消元)

    link 很容易对于每个点列出式子 \(f_{x,y}=(f_{x,y-1}+f_{x,y}+f_{x,y+1}+f_{x+1,y})/4\)(边角转移类似,略) 这个转移是相互依赖的就gg了 不过你 ...

  7. [NOI.AC省选模拟赛3.31] 星辰大海 [半平面交]

    题面 传送门 思路 懒得解释了......也是比较简单的结论 但是自己看到几何就退缩了...... 下周之内写一个计算几何的学习笔记! Code #include<iostream> #i ...

  8. [NOI.AC省选模拟赛3.31] 附耳而至 [平面图+最小割]

    题面 传送门 思路 其实就是很明显的平面图模型. 不咕咕咕的平面图学习笔记 用最左转线求出对偶图的点,以及原图中每个边两侧的点是谁 建立网络流图: 源点连接至每一个对偶图点,权值为这个区域的光明能量 ...

  9. [NOI.AC省选模拟赛3.30] Mas的童年 [二进制乱搞]

    题面 传送门 思路 这题其实蛮好想的......就是我考试的时候zz了,一直没有想到标记过的可以不再标记,总复杂度是$O(n)$ 首先我们求个前缀和,那么$ans_i=max(pre[j]+pre[i ...

  10. [NOI.AC省选模拟赛3.23] 染色 [点分治+BFS序]

    题面 传送门 重要思想 真的是没想到,我很久以来一直以为总会有应用的$BFS$序,最终居然是以这种方式出现在题目中 笔记:$BFS$序可以用来处理限制点对距离的题目(综合点分树使用) 思路 本题中首先 ...

随机推荐

  1. LNK2038: 检测到“RuntimeLibrary”的不匹配项

    VS编译找到几十个这样的报错,是因为引用的库是Release版本,编译也是这个版本但C语言标准却用的是默认旧版,需要改为2018标准,并且Release版本对应运行库 多线程DLL(/MD),再次编译 ...

  2. 如何进行多平台部署Client和Server详细讲解

    一:signalR把console用做客户端访问服务端方法 1:新建一个控制台应用程序(ClientConsole) 2:用nuget安装SignalR.Client(必须,下面是nuget命令) I ...

  3. 推荐2个可用于毕设的微信小程序

    智能垃圾回收小程序 下载: http://market.zhenzikj.com/detail/103.html 2. 通用答题小程序 下载http://market.zhenzikj.com/det ...

  4. Go--解析yaml文件

    yaml 文件是目前最常用的配置文件,使用go语言编写代码和工具时,也会用到yaml文件,将服务配置及中间件等信息定义到yaml文件中,后续可根据实际场景来选用. //先下载外部包 go get -u ...

  5. k8s中pv和pvc

    转载: https://blog.csdn.net/echizao1839/article/details/125766826

  6. 个人网盘搭建SeaFile

    资料参考: https://www.ittel.cn/archives/2904.html https://www.cnblogs.com/jiuyachun/p/10185111.html  恢复和 ...

  7. 免费赠票 | Cloud Ace 受邀参加 GTC2022 全球流量大会,助力中国企业扬帆出海!

    Cloud Ace 受邀参加 GTC2022 全球流量大会,助力中国企业扬帆出海!   大会将在 2023 年 2 月 28 日-3 月 1 日举行,地点就在福田会展中心 6 号展馆.大会门票实行收费 ...

  8. 问题记录_IDEA版本2021.2.3_debug时变量显示不全(只显示线程附近部分)

    问题记录_IDEA版本2021.2.3_debug时变量显示不全(只显示线程附近部分) 起因 把IDEA的版本从2019升级到了2021.2.3,在debug的时候发现变量的值能看到的很少,并不像20 ...

  9. selenium执行下载多个文件操作,谷歌浏览器弹出"xxx想要下载多个文件"的处理方法

    背景:   使用selenium框架,批量下载多个目录的不同文件,而下载多个文件时,浏览器会弹出如下窗口 解决方案有2个:1.代码定位到元素并点击[允许].2.修改浏览器的设置,使其能够拥有自动下载的 ...

  10. MyBatis_06(自定义映射resultMap)

    主题:自定义映射resultMap "自定义映射resultMap",可以解决什么问题: 1-"属性" 和 "字段名" 不一致的情况 2-& ...