Summer training round2 #3
A!: GTY系列题
B!:莫队加分块 GTY系列题
C!:线段树模拟拓扑排序
(把普通的拓扑排序的栈操作改成线段树区间减一,查询区间最右侧的0的位置即可。注意一开始就删除的边,在区间减后要单点加回来 然后当前的点处理完后,要把其置成无穷大)
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define N 100010
int T,n,m,minv[N<<],delta[N<<];
void pushdown(int rt)//将rt结点的懒惰标记下传
{
if(delta[rt])
{
delta[rt<<]+=delta[rt];//标记下传到左结点
delta[rt<<|]+=delta[rt];//标记下传到右结点
minv[rt<<]+=delta[rt];
minv[rt<<|]+=delta[rt];
delta[rt]=;//清除rt结点的标记,下传完成
}
}
void update(int ql,int qr,int v,int rt,int l,int r)
{
if(ql<=l&&r<=qr)
{
delta[rt]+=v;//更新当前结点的标记值
minv[rt]+=v;
return ;
}
pushdown(rt);//将该节点的标记下传到孩子们
int m=(l+r>>);
if(ql<=m) update(ql,qr,v,rt<<,l,m);
if(m<qr) update(ql,qr,v,rt<<|,m+,r);
minv[rt]=min(minv[rt<<],minv[rt<<|]);
}
int query(int rt,int l,int r)
{
if(l==r)
return l;
int m=(l+r>>);
pushdown(rt);
if(minv[rt<<|]==) return query(rt<<|,m+,r);
else return query(rt<<,l,m);
}
int first[N],e,next[N],v[N];
void AddEdge(int U,int V)
{
v[++e]=V;
next[e]=first[U];
first[U]=e;
}
int del[N];
int main()
{
int x,y;
scanf("%d",&T);
for(;T;--T)
{
e=;
memset(minv,,sizeof(minv));
memset(delta,,sizeof(delta));
memset(first,,sizeof(first));
memset(next,,sizeof(next));
memset(del,,sizeof(del));
memset(v,,sizeof(v));
scanf("%d%d",&n,&m);
for(int i=;i<=m;++i)
{
scanf("%d%d",&x,&y);
AddEdge(x,y);
++del[y];
}
for(int i=;i<=n;++i)
update(i,i,i--del[i],,,n);
for(int i=;i<=n;++i)
{
int U=query(,,n);
printf("%d%c",U,i==n ? '\n' : ' ');
update(U,U,n+,,,n);
update(U+,n,-,,,n);
for(int j=first[U];j;j=next[j])
update(v[j],v[j],,,,n);
}
}
return ;
}
D!:求最短路树
E:打表找规律
F:统计奇偶个数 快速幂
G:数形结合找规律
I:二进制
J:找规律 暴力
K:区间DP(贪心)
L:构造
Summer training round2 #3的更多相关文章
- Summer training round2 #1
A:水 B:求两个三角形之间的位置关系:相交 相离 内含 ①用三个点是否在三角形内外判断 计算MA*MB.MB*MC.MC*MA的大小 若这三个值同号,那么在三角形的内部,异号在外部 #incl ...
- Summer training round2 #8(Training26)
A:贪心DFS 先从最远的搜起 如果一个点的value>=2 就ans++ D:并查集 E:大模拟 F:快速幂 #include <bits/stdc++.h> using name ...
- Summer training round2 #9(Training28)
A:签到题 C:模拟搜索题 #include <bits/stdc++.h> #include <cstring> #include <iostream> #inc ...
- Summer training round2 #10(Training 30)
A:签到题 B!:搜索+DP #include<bits/stdc++.h> #define mp make_pair #define pi pair<int,int> usi ...
- Summer training round2 #7 (Training #23)
A:约瑟夫环 套公式 B:线性筛素数 C:投骰子 概率DP F:有权无向图的生成树(边最大值和最小值只差最小) 直接kruskal G:状压BFS或者双向BFS H:模拟题 I:几何题 J:高斯消元
- Summer training round2 #6 (Training #22)
A:二分答案 如果中位数比目前的大就right=mid-1 else left=mid+1 C!:几何 G:优先队列贪心 #include <bits/stdc++.h> using na ...
- Summer training round2 #5 (Training #21)
A:正着DFS一次处理出每个节点有多少个优先级比他低的(包括自己)作为值v[i] 求A B 再反着DFS求优先级比自己高的求C #include <bits/stdc++.h> #incl ...
- Summer training round2 #4 (Training #20)
A!:UESTC1752 B!:找区间内L到R之间内的数的个数 权值分块加莫队 C!:给你一个哈斯图 去掉其中的几条边 要求输出字典序最大的拓扑排序:线段树模拟拓扑排序 D!:要求你找到最短路树并输 ...
- hdu 4946 2014 Multi-University Training Contest 8
Area of Mushroom Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...
随机推荐
- 利用SQL语句查找某数据库中所有存储过程包含的内容(转)
Use 数据库DECLARE @ProcName varchar(50)Create Table #tmpName(Content varchar(2000))Create Table #tmp(P ...
- EncryptionAndDecryptionC# 加密 解密
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- MongoDB 走马观花(全面解读篇)(转载)
MongoDB 走马观花(全面解读篇)(转载) 目录 一.简介 二.基本模型 BSON 数据类型 分布式ID 三.操作语法 四.索引 索引特性 索引分类 索引评估.调优 五.集群 分片机制 副本集 ...
- UOJ#494K点最短路
#include <cstdio> #include <iostream> #include <cstring> #include <queue> #d ...
- 1.2.2 OSI参考模型 上
一.HCNA网络技术学习指南 为了实现网络的互通及各种各样的网络应用,网络设备需要运行各种各样的协议已实现各种各样具体的功能.面对各种各样且数量繁多的功能,我们可以从网络架构的角度,引入功能分层的模型 ...
- netcore程序部署 ubuntu 16.0.4 报错 The type initializer for 'System.Net.Http.CurlHandler'的解决方案
最近业务扩展需要把netcore程序部署到ubuntu 16.0.4上,因为代码里面用到了HttpClient 请求. 部署ubuntu后一直报错 参考地址:https://github.com/do ...
- webdriervAPI(键盘事件)
from selenium import webdriver from selenium.webdriver.common.keys import Keys #导入键盘操作事件 driver ...
- 非常好的一个JS代码(CJL.0.1.js)
/*! * Cloudgamer JavaScript Library v0.1 * Copyright (c) 2009 cloudgamer * Blog: http://cloudgamer.c ...
- 【python基础学习】---解析多层json,解析xml
1.以豆瓣的API接口为例子,解析返回的json数据 https://api.douban.com/v2/book/1220502 { "rating":{ "max&q ...
- Luogu P5221 Product
题目 注意一下空间限制. 令\(f(n)=\prod\limits_{i=1}^n\prod\limits_{j=1}^nij,g(n)=\prod\limits_{i=1}^n\prod\limit ...