5.8 NOI 模拟
\(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 模拟的更多相关文章
- 5.30 NOI 模拟
$5.30\ NOI $模拟 高三大哥最后一次模拟考了,祝他们好运 \(T1\)装箱游戏 显然可以将四种字母之间的空缺当做状态枚举 那么这道题就很显然了 #include<bits/stdc++ ...
- 5.23 NOI 模拟
$5.23\ NOI $模拟 \(T1\)简单的计算几何题 \(zjr:\)我当时没改,那么自己看题解吧 倒是有个简单的随机化方法(能获得\(72pts,\)正确性未知)\(:\) 随机两条切椭圆的平 ...
- 5.6 NOI模拟
\(5.6\ NOI\)模拟 明天就母亲节了,给家里打了个电话(\(lj\ hsez\)断我电话的电,在宿舍打不了,只能用教练手机打了) 其实我不是很能看到自己的\(future,\)甚至看不到高三的 ...
- 5.4 NOI模拟
\(5.4\ NOI\)模拟 \(T1\) 想到分讨,但是暴力输出一下方案之后有很多特别的情况要讨论,就弃了... 假设\(a\)是原序列,\(b\)是我们得到的序列 设\(i\)是最长公共前缀,\( ...
- NOI模拟赛 Day1
[考完试不想说话系列] 他们都会做呢QAQ 我毛线也不会呢QAQ 悲伤ING 考试问题: 1.感觉不是很清醒,有点困╯﹏╰ 2.为啥总不按照计划来!!! 3.脑洞在哪里 4.把模拟赛当作真正的比赛,紧 ...
- NOI 模拟赛 #2
得分非常惨惨,半个小时写的纯暴力 70 分竟然拿了 rank 1... 如果 OYJason 和 wxjor 在可能会被爆踩吧 嘤 T1 欧拉子图 给一个无向图,如果一个边集的导出子图是一个欧拉回路, ...
- 【2018.12.10】NOI模拟赛3
题目 WZJ题解 大概就是全场就我写不过 $FFT$ 系列吧……自闭 T1 奶一口,下次再写不出这种 $NTT$ 裸题题目我就艹了自己 -_-||| 而且这跟我口胡的自创模拟题 $set1$ 的 $T ...
- 6.28 NOI模拟赛 好题 状压dp 随机化
算是一道比较新颖的题目 尽管好像是两年前的省选模拟赛题目.. 对于20%的分数 可以进行爆搜,对于另外20%的数据 因为k很小所以考虑上状压dp. 观察最后答案是一个连通块 从而可以发现这个连通块必然 ...
- NOI模拟赛Day5
T1 有and,xor,or三种操作,每个人手中一个数,求和左边进行某一种运算的最大值,当t==2时,还需要求最大值的个数. test1 20% n<=1000 O(n^2)暴力 test2 2 ...
- NOI模拟赛Day4
看到成绩的时候我的内心** woc第一题写错了呵呵呵呵呵呵呵呵 人不能太浪,会遭报应的** ------------------------------------------------------ ...
随机推荐
- 796. Rotate String - LeetCode
Question 796. Rotate String Solution 题目大意:两个字符串匹配 思路:Brute Force Java实现: public boolean rotateString ...
- mysql外键与表查询
目录 自增特性 外键 外键关系 外键创建 外键的约束效果 级联更新级联删除 多对多关系 一对一关系 表查询关键字 select与from where筛选 group by分组 练习 关系练习 查询练习 ...
- 一些基本的jar包
jackson与前端传送数据 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <arti ...
- Acwing 428
可以找到规律,将第 N 项的 N 对应的二进制表示,转换为以 k 为基底的数即可. N=1=1 ----> 1 ----> \(a^b\) N=2=2 ----> 10 ----&g ...
- 技术分享 | 想做App测试就一定要了解的App结构
本文节选自霍格沃兹测试开发学社内部教材 app 的结构包含了 APK 结构和 app 页面结构两个部分 APK结构 APK 是 Android Package 的缩写,其实就是 Android 的安装 ...
- 为什么要写blog????
写 blog 文章,是种与自我的对话,也是种与外界的联系,也是获得 level up 或 skill learned 的契机. 借口:我不太会写文章,不太会表达,没有东西好写,没人会看我的文章 你想让 ...
- 获取在线ip
/** * 获取在线IP * @return String */ function getOnlineIp($format=0) { global $S_GLOBAL; if(empty($S_GLO ...
- 打字练习-编程语言关键字系列-html
以下是小编整理的部分html关键字,专门给有需要的朋友进行打字练习用,通过打字练习的方式,既提高了打字速度,又可以熟悉html关键字~~~ www, url, http, W3C, html, htm ...
- 想写个小说,关于C#的,名字就叫《原Csharp》吧 (第一回 买书未成炁自生 惶惶回屋遇老翁)
以前也有写过一些小说,但是总是写写停停的,因为忙于项目和其他事情,总是耽搁很久(真的是很久)才会继续动两笔,所以我想先在这里以随笔的方式写个关于C#异世界的小故事吧,更新随缘,也稍微能让自己轻松些. ...
- 23.Nginx+keepalived负载均衡高可用
Nginx+keepalived负载均衡高可用 结构图 环境: 主 服务器:192.168.239.10 备 服务器:192.168.239.20 Web 服务器1:192.168.239.40 We ...