\(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. 136. Single Number - LeetCode

    Question 136. Single Number Solution 思路:构造一个map,遍历数组记录每个数出现的次数,再遍历map,取出出现次数为1的num public int single ...

  2. 安装Sonarqube到CentOS(YUM)

    SonarQube 是一个用于代码质量管理的开源平台,用于管理源代码的质量. 通过插件形式,可以支持包括 java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groo ...

  3. WC2015 题解

    K小割 题目链接:WC2015 K小割 Description 题目很清楚了,已经不能说的更简洁了-- Solution 这道题出题人挺毒的,你需要针对不同的部分分施用不同的做法 . 第\(1\)部分 ...

  4. 【原创】eNSP路由器启动#号问题排查

    1.删除拖出来的设备,重新拖出来一台---我用过[有时候好使] 2.确保Ensp的设置-工具-Virtual Box安装目录是否正确--我也遇到过[尤其是卸载掉Virtual Box重装之后] 3.确 ...

  5. 中国天气api接口xml,json

    http://m.weather.com.cn/data/101110101.html 大坑有木有??反应慢不说了,还老不更新!! 想贴段代码的,现在又打不 开了(貌似3月4号以后没更新过) ==== ...

  6. 在sqlbolt上学习SQL

    在sqlbolt上学习SQL 该网站能够学习sql基础,并且能在网页中直接输入sql语句进行查询. 学习网站原网址https://sqlbolt.com/(!部分指令该网站不支持,且存在一些bug!) ...

  7. 实现领域驱动设计 - 使用ABP框架 - 创建实体

    用例演示 - 创建实体 本节将演示一些示例用例并讨论可选场景. 创建实体 从实体/聚合根类创建对象是实体生命周期的第一步.聚合/聚合根规则和最佳实践部分建议为Entity类创建一个主构造函数,以保证创 ...

  8. SAP 时区转换

    DATA:l_tzone TYPE tzonref-tzone.   "TIME ZONE    DATA:l_timesp TYPE tzonref-tstamps."TIME  ...

  9. RPA应用场景-信用卡交易争议后续流程

    RPA应用场景-信用卡交易争议后续流程 场景概述 信用卡交易争议后续流程 所涉系统名称 客服系统,邮件 人工操作(时间/次) 4小时 所涉人工数量20操作频率 不定时 场景流程 1.RPA自动接收客户 ...

  10. MYSQL中IF IN语句

    以下代码摘自后台管理系统中的一部分SQL语句: 当取数状态为1或2时,才展示取数时间,否则,取数时间展示为空 当申报状态为2.3.4或5时,才展示申报时间,否则,申报时间展示为空 select A.Q ...