\(T1\)

比较容易想到的

二分转化为判定,判定是否存在一个子图能保证能一直在\(x\)时间内到达\(n\)

设\(dis(u,v)\)表示\(u->v\)的最短路

先找出候选节点\(i,dis(1,i)+dis(i,n)<=a+x,\)保证一开始出发能到

\(u->v,t+dis(u,v)<=x\)就是说在这个点接到电话能到\(n\)

如果子图有环就合法,否则\(dp,\)只需观察最长时间能否大于等于\(b,\)就是保证这段时间都在子图内

\(T2\)

正解是凸包\(+\)闵可夫斯基和

会吗,不会,我们选择\(KD-Tree\)

#include<bits/stdc++.h>
#define int long long
#define MAXN 110000
using namespace std;
int Ans2=0;
int n,cnt,ls[MAXN],rs[MAXN],col[MAXN],rt;
int Mxx[MAXN],Mxy[MAXN],Mnx[MAXN],Mny[MAXN];
int Mxxcol[MAXN],Mxycol[MAXN],Mnxcol[MAXN],Mnycol[MAXN];
struct node{
int x,y;
int col;
}a[MAXN];
void push_up(int now)
{
if(Mxx[now]<a[cnt].x)
{
Mxx[now]=max(Mxx[now],a[cnt].x);
}
if(Mxy[now]<a[cnt].y)
{
Mxy[now]=max(Mxy[now],a[cnt].y);
}
if(Mnx[now]>a[cnt].x)
{
Mnx[now]=min(Mnx[now],a[cnt].x);
}
if(Mny[now]>a[cnt].y)
{
Mny[now]=min(Mny[now],a[cnt].y);
}
}
int dis(int now)
{
return (a[cnt].x-a[now].x)*(a[cnt].x-a[now].x)+(a[cnt].y-a[now].y)*(a[cnt].y-a[now].y);
}
int Maxdis(int now)
{
return max((a[cnt].x-Mxx[now])*(a[cnt].x-Mxx[now]),(Mnx[now]-a[cnt].x)*(Mnx[now]-a[cnt].x))+
max((a[cnt].y-Mxy[now])*(a[cnt].y-Mxy[now]),(Mny[now]-a[cnt].y)*(Mny[now]-a[cnt].y));
}
bool check(int id,int rt)
{
if(Mnxcol[rt]==id||Mnycol[rt]==id||Mxxcol[rt]==id||Mxycol[rt]==id) return true;
return false;
}
void Amax(int now)
{
if(!now) return ;
if(a[cnt].col!=col[now]) Ans2=max(Ans2,dis(now));//cout<<cnt<<" "<<col[now]<<"\n";
int l=Maxdis(ls[now]),r=Maxdis(rs[now]);
if(l>r)
{
if(l>Ans2) Amax(ls[now]);
if(r>Ans2) Amax(rs[now]);
}
else
{
if(r>Ans2) Amax(rs[now]);
if(l>Ans2) Amax(ls[now]);
}
}
void Ins(int &now,bool opt)
{
if(!now)
{
now=cnt;
col[now]=a[cnt].col;
return ;
}
if(!opt)
{
if(a[cnt].x<=a[now].x)
{
Ins(ls[now],1);
}
else Ins(rs[now],1);
}
else
{
if(a[cnt].y<=a[now].y)
{
Ins(ls[now],0);
}
else Ins(rs[now],0);
}
push_up(now);
}
signed main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
scanf("%lld %lld %lld",&a[i].x,&a[i].y,&a[i].col);
}
random_shuffle(a+1,a+1+n);
for(int i=1;i<=n;i++)
{
Mxx[i]=Mnx[i]=a[i].x;
Mxy[i]=Mny[i]=a[i].y;
col[i]=a[i].col;
cnt++;
Amax(rt);
Ins(rt,0);
}
printf("%lld",Ans2);
return 0;
}

\(T3\)

考场上只得到了一个结论(考场上猜结论这种题一直都不是很会)

\(gcd(s,r)=1\)

打表得到规律得到\(:\)

\(\sum_{i=1}^n\sum_{j=1}^i [gcd(i,j)=1,2\times i<= m,i+j<=n]\)

\(gcd(i,j)=1\)显然

下面证明\(i,j\)的上界我不会证明,可以用运行结果来观察

\(2\times i>m\)会这样

\(n=6,m=6,r=1,s=4\)

\(i+j>n\)会这样

思考一下,我考场上第一个结论(没啥用)想出来,但是第二三个关于上界的,仔细观察一下数据,大胆猜想一下(我想不到),还是说考试时候要多想

题解的做法

令$ a = r + s, b = r − s$

则条件是: \((m<=n,r<=s,a>b)\)

$ gcd(a, b) = 1 $

$ a + b ≤ n$

$ a ≤ m $

$ b < a$

$ a ≡ b(\mod 2)$

和上面那个式子是等价的

令\(ans(n,m)\)表示\((n,m)\)的答案

\(f(n,m)\)表示不考虑\(gcd(a,b)=1\)的答案

\(f'(n,m)\)表示不考虑\(gcd(a,b)=1,a ≡ b(\mod 2)\)的答案

5.8 NOI 模拟的更多相关文章

  1. 5.30 NOI 模拟

    $5.30\ NOI $模拟 高三大哥最后一次模拟考了,祝他们好运 \(T1\)装箱游戏 显然可以将四种字母之间的空缺当做状态枚举 那么这道题就很显然了 #include<bits/stdc++ ...

  2. 5.23 NOI 模拟

    $5.23\ NOI $模拟 \(T1\)简单的计算几何题 \(zjr:\)我当时没改,那么自己看题解吧 倒是有个简单的随机化方法(能获得\(72pts,\)正确性未知)\(:\) 随机两条切椭圆的平 ...

  3. 5.6 NOI模拟

    \(5.6\ NOI\)模拟 明天就母亲节了,给家里打了个电话(\(lj\ hsez\)断我电话的电,在宿舍打不了,只能用教练手机打了) 其实我不是很能看到自己的\(future,\)甚至看不到高三的 ...

  4. 5.4 NOI模拟

    \(5.4\ NOI\)模拟 \(T1\) 想到分讨,但是暴力输出一下方案之后有很多特别的情况要讨论,就弃了... 假设\(a\)是原序列,\(b\)是我们得到的序列 设\(i\)是最长公共前缀,\( ...

  5. NOI模拟赛 Day1

    [考完试不想说话系列] 他们都会做呢QAQ 我毛线也不会呢QAQ 悲伤ING 考试问题: 1.感觉不是很清醒,有点困╯﹏╰ 2.为啥总不按照计划来!!! 3.脑洞在哪里 4.把模拟赛当作真正的比赛,紧 ...

  6. NOI 模拟赛 #2

    得分非常惨惨,半个小时写的纯暴力 70 分竟然拿了 rank 1... 如果 OYJason 和 wxjor 在可能会被爆踩吧 嘤 T1 欧拉子图 给一个无向图,如果一个边集的导出子图是一个欧拉回路, ...

  7. 【2018.12.10】NOI模拟赛3

    题目 WZJ题解 大概就是全场就我写不过 $FFT$ 系列吧……自闭 T1 奶一口,下次再写不出这种 $NTT$ 裸题题目我就艹了自己 -_-||| 而且这跟我口胡的自创模拟题 $set1$ 的 $T ...

  8. 6.28 NOI模拟赛 好题 状压dp 随机化

    算是一道比较新颖的题目 尽管好像是两年前的省选模拟赛题目.. 对于20%的分数 可以进行爆搜,对于另外20%的数据 因为k很小所以考虑上状压dp. 观察最后答案是一个连通块 从而可以发现这个连通块必然 ...

  9. NOI模拟赛Day5

    T1 有and,xor,or三种操作,每个人手中一个数,求和左边进行某一种运算的最大值,当t==2时,还需要求最大值的个数. test1 20% n<=1000 O(n^2)暴力 test2 2 ...

  10. NOI模拟赛Day4

    看到成绩的时候我的内心** woc第一题写错了呵呵呵呵呵呵呵呵 人不能太浪,会遭报应的** ------------------------------------------------------ ...

随机推荐

  1. 学习Java的第十六天——随机数

    学习内容:随机数 1.GetEvenNum()方法 实例代码: package 数字处理类; public class MathRondom {public static int GetEvenNum ...

  2. 安装Suberversion[SVN]到CentOS(YUM)

    运行环境 系统版本:CentOS Linux release 7.3.1611 (Core) 软件版本:Suberversion-1.7.14 硬件要求:无 安装过程 1.安装YUM-EPEL源 Su ...

  3. 每天一个 HTTP 状态码 204

    204 No Content 204 No Content 表示服务器成功地处理了客户端的请求,但是没有任何要响应的内容.API 设计上,在用 PUT 请求更新某个资源成功后,后端可以在 HTTP 响 ...

  4. CCPC、Petrozavodsk Camp、OpenCup 题解汇总

    省赛 \([\text{2021.11.30}]\) 2021 Jilin Collegiate Programming Contest 全部完成. \([\text{2021.12.25}]\) 2 ...

  5. CentOS7及以下版本安装禅道

    由于是CentOS7以及以下系统,禅道已经集成了 Apache Nginx Mysql 服务,不需要我们再次安装搭建,我们只进行解压使用就好: 一.进行下载安装 1.在终端命令中输入以下命令确认系统是 ...

  6. [学习笔记]使用Docker+Jenkin自动化流水线发布.Net应用

    ​使用Docker容器方案可以快速安全地将项目部署到客户的服务器上,作为公司项目,需要解决两个问题: 1. 需要搭建一个私有的Docker仓库,以便安全的存储镜像 2. 需要一套自动化发布方案,实现代 ...

  7. cool-admin vite-vue3 打包部署 nginx代理设置

    location /api {rewrite ^/api/(.*)$ /$1 break;proxy_pass http://xxx.com;}location /socket.io {rewrite ...

  8. (数据科学学习手札138)使用sklearnex大幅加速scikit-learn运算

    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,scikit-learn作为经 ...

  9. 分享一个网上搜不到的「Redis」实现「聊天回合制」的方案

    前言 为什么说网上搜不到,因为关于聊天回合制的方案作者本人快把百度搜秃噜了也没找到,好在最终是公司一个关系不错的大佬帮提供了点思路,最终作者将其完整实现了出来. 分享出来大家可以收藏,万一你哪天也碰到 ...

  10. [二进制漏洞]栈(Stack)溢出漏洞 Linux篇

    目录 [二进制漏洞]栈(Stack)溢出漏洞 Linux篇 前言 堆栈 堆栈(Stack)概念 堆栈数据存储方式 函数调用 函数调用C语言代码 函数调用过程GDB调试 函数Call返回原理 函数栈帧 ...