HeRaNO's NOIP CSP Round Day 2 T2 PESTC



对于我这种菜鸡来说还是挺有迷惑性的。
在考场发现答案问的是跟最值有关的数量,想到二分,结果果然具有单调性,考虑二份答案+验证
其实什么反转什么的,可以不用去管他,对于长度小于二分答案mid的道路,不去考虑
只要是在图中出现了环,就一定不行
所以这道题变成了判环的问题,tarjan和dfs均可
AC code
#include<bits/stdc++.h>
#define re register
#define inc(i,j,k) for(re int i=j;i<=k;++i)
#define dec(i,j,k) for(re int i=j;i>=k;--i)
#define ra(i,u) for(re int i=head[u];i;i=e[i].nxt)
using namespace std;
const int maxn=200010;
const int maxm=300010;
inline int read()
{
re int x=0,f=1; char ch=getchar();
while(ch<'0'||ch>'9') {if(ch=='-') f=-1; ch=getchar();}
while(ch>='0'&&ch<='9') {x=x*10+(ch^48); ch=getchar();}
return x*f;
}
int head[maxn],dfn[maxn],low[maxn],sta[maxn],scc[maxn],tong[maxn];
int cnt,n,m,tot,top,maxx=-1,num;
bool vis[maxn];
struct node
{
int to,nxt,w;
}e[maxm];
inline void add(int u,int v,int w)
{
e[++cnt].to=v;
e[cnt].nxt=head[u];
e[cnt].w=w;
head[u]=cnt;
}
bool flag=0;
inline void tarjan(int x,int k)
{
dfn[x]=low[x]=++tot;
sta[++top]=x;
ra(i,x)
{
if(e[i].w<=k) continue;
re int v=e[i].to;
if(!dfn[v])
{
tarjan(v,k);
low[x]=min(low[x],low[v]);
}
else if(!scc[v]) low[x]=min(low[x],dfn[v]);
}
if(low[x]==dfn[x])
{
scc[x]=++num;
++tong[num];
while(sta[top]!=x)
{
scc[sta[top--]]=num;
++tong[num];
/*if(tong[num]>=2)
{
flag=1; return;
}*/
}
--top;
}
}
inline void clear()
{
inc(i,1,n)
{
dfn[i]=low[i]=sta[i]=scc[i]=0;
vis[i]=0;
}
memset(tong,0,sizeof(tong));
tot=0; top=0; num=0;
return;
}
inline bool check(int x)
{
clear();
// flag=0;
inc(i,1,n)
{
if(!dfn[i])
{
tarjan(i,x);
// cout<<"QAQ"<<endl;
// if(flag==1) return 0;
}
}
inc(i,1,num)
{
if(tong[i]>=2) return 0;
}
return 1;
}
int main()
{
// freopen("test6.in","r",stdin);
int l=0,r=2e9,ans=2e9;
n=read(); m=read();
re int xx,yy,zz;
inc(i,1,m)
{
xx=read(); yy=read(); zz=read();
add(xx,yy,zz); maxx=max(maxx,zz);
}
l=0,r=maxx,ans=maxx;
while(l<=r)
{
re int mid=(l+r)>>1;
// cout<<mid<<endl;
if(check(mid)) ans=mid,r=mid-1;
else l=mid+1;
// cout<<ans<<endl;
}
cout<<ans<<endl;
}
我居然最开始数组开小了。。。 这就是考试睡觉的下场,写的代码前后断片。。
HeRaNO's NOIP CSP Round Day 2 T2 PESTC的更多相关文章
- HeRaNO's NOIP CSP Round Day 2 T3 ginkgo
睡醒后我第一眼:这不主席树裸题吗? 先统计dfs序,把树上问题转化为区间问题 区间大于等于某个数的个数...主席树模板? #include<bits/stdc++.h> #define r ...
- HeRaNO's NOIP CSP Round Day 2 T1 building
考试的时候居然睡着了... T1的60分做法很明显,3^n枚举每个状态并进行验证 (考试剩十分钟结束的时候我开始打,,不到五分钟就写完了? 暴力(60分) #include<bits/stdc+ ...
- NOIP&CSP PJ 难度刷题记录
前言 本来不想写前言的(>人<:) 这只是 mjl 给我们布置的作业,并不是我自己在刷题! 不保证所有代码的正确性,它们仅仅是通过了所有数据点而已. 1.模拟板块 整体难度:红~黄(模拟不 ...
- NOIP&CSP 考前 Dev-cpp 的选项问题和考试心态
(进入考场后您将获得一个崭新的 \(Dev-cpp\),没有中文,没有编译选项,没有缺省源:我还将获得一个崭新的脑子,没有心态,没有智商,没有调试能力--) 中文 \[Step1 \] \[Step2 ...
- NOIP 2013 提高组 day1 T2 火柴排队 归并 逆序对
描述 涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度.现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为:∑i=1n(ai−bi)2∑i=1n(ai−bi) ...
- 【NOIP 2017】宝藏 D2 T2
参考From 传送门 写的很清晰了 AC code: #include <bits/stdc++.h> using namespace std; const int MAXN = 12; ...
- NOIP模拟赛(by hzwer) T2 小奇的序列
[题目背景] 小奇总是在数学课上思考奇怪的问题. [问题描述] 给定一个长度为 n 的数列,以及 m 次询问,每次给出三个数 l,r 和 P, 询问 (a[l'] + a[l'+1] + ... + ...
- 括号树 noip(csp??) 2019 洛谷 P5658
洛谷AC通道 本题,题目长,但是实际想起来十分简单. 首先,对于树上的每一个后括号,我们很容易知道,他的贡献值等于上一个后括号的贡献值 + 1.(当然,前提是要有人跟他匹配,毕竟题目中要求了,是不同的 ...
- [Noip 2018][标题统计 龙湖斗 摆渡车 对称二叉树]普及组题解
啊喂,都已经9102年了,你还在想去年? 这里是一个Noip2018年PJ第二题打爆的OIer,错失省一 但经过了一年,我学到了很多,也有了很多朋友,水平也提高了很多,现在回看当时: 今年的Noip ...
随机推荐
- AQS 抽象队列同步器(Abstract Queued Synchronizer) 知识点
AQS的主要使用方式是继承,子类通过继承同步器并实现它的抽象方法来管理同步状态. AQS使用一个int类型的成员变量state来表示同步状态,当state>0时表示已经获取了锁,当state = ...
- IE zoom:1
overflow:hidden zoom:1 一起出现克服IE6 bug display:inline-block display:inline zoom:1 一起出现克服IE6bug
- Gartner:2019 年 iPaaS 魔力象限
http://www.199it.com/archives/869090.html 企业iPaaS产品支持越来越更广泛的使用场合,正迅速被企业采用以实现混合集成平台策略.这份魔力象限评估了17家供应商 ...
- 每天一道Rust-LeetCode(2019-06-01)
每天一道Rust-LeetCode(2019-06-01) 坚持每天一道题,刷题学习Rust. 题目描述 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的, ...
- 【电脑】xshell报:需要Xmanager软件来处理X11转发请求
https://www.netsarang.com/zh/xmanager/ 下载了就好了 我的图片出不来,下了就好了.
- ajax post 提交无法进入controller 请求200
最近写js遇到个问题: 用ajax的post方式给后台提交数据,页面200,但是不进入controller 断点,我以为我post参数不对. 网上查的: 1.说路径不对,但是我通过get方式是可以进入 ...
- java注释代码规范
//收集了一小部分,忘记的时候过来查一下 java--hadoop部分 /** * 此类用来处理DNS原始日志:统计给定域名平均响应时延 * @param Input * @param Output ...
- Selenium XPath
目录 1.selenium是什么呢? 安装 设置浏览器引擎 2.基本使用 3.等待元素被加载 4.选择器 2. find_element_by_tag_name 3. find_element_by_ ...
- Layui 在新标签中打开页面 / 模拟点击菜单
原文:https://blog.csdn.net/sr_www/article/details/81394365 核心代码: //在新标签页中 打开页面 function newTab(url, ti ...
- concurrent(四)Condition
参考文档:Java多线程系列--“JUC锁”06之 Condition条件:http://www.cnblogs.com/skywang12345/p/3496716.html Condition介绍 ...