摘要: 把关系变成有向边,稍微想一下就是要求在有向图中不能到达的点对个数,这个可以用Floyd传递闭包来做,但是n^3的复杂度跑不了1000 考虑bitset优化! 因为传递过程只会出现0和1,用bitset完全没问题,而且重要的是bitset可以进行位运算,一下转移一整行:如果j能到i,也能到i能到的所有 阅读全文
posted @ 2018-05-08 21:37 lokiii 阅读(115) 评论(0) 推荐(0)
摘要: 把长度转成右端点,按右端点排升序,f[i]=max(f[j]&&r[j] include include using namespace std; const int N=100005; int n,t[N],f[N],ans; struct qwe { int l,r; }a[N]; bool c 阅读全文
posted @ 2018-05-08 21:26 lokiii 阅读(122) 评论(0) 推荐(0)
摘要: 洛谷数据好强啊,普通spfa开o2都过不了,要加双端队列优化 因为是双向边,所以dis(u,v)=dis(v,u),所以分别以pa1和pa2为起点spfa一遍,表示pb pa1 pa2和pb pa2 pa1,取个min即可 cpp include include include using name 阅读全文
posted @ 2018-05-08 21:11 lokiii 阅读(134) 评论(0) 推荐(0)
摘要: 因为是双向边,所以相当于两条到1的最短路和,先跑spfa然后直接处理询问即可 阅读全文
posted @ 2018-05-08 20:52 lokiii 阅读(155) 评论(0) 推荐(0)
摘要: 二分图最大点覆盖模型,因为对于一个点(x,y)显然只要选x或者y就好了,于是连边,跑最大匹配=最大点覆盖(不会证) cpp include include using namespace std; const int N=10005,inf=1e9; int n,m,h[N],cnt,con,lk[ 阅读全文
posted @ 2018-05-08 20:20 lokiii 阅读(167) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2018-05-08 19:09 lokiii 阅读(4) 评论(0) 推荐(0)