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:构造

最新文章

  1. 总结shell
  2. 切换数据库+ThreadLocal+AbstractRoutingDataSource 一
  3. 说说 js String
  4. html引入css文件
  5. php判断当前的访问是手机还是电脑
  6. 初学Struts2-自定义拦截器及其配置
  7. MySQL(二) —— 数据类型与操作数据表
  8. Unity3D研究院编辑器之不实例化Prefab获取删除更新组件(十五)
  9. tableview_nav 动画效果
  10. Android(java)学习笔记263:Android下的属性动画(Property Animation)
  11. Volley使用指南第一回(来自developer.android)
  12. 【leetcode】com/problems/surrounded-regions/
  13. java source map
  14. 安装Apache遇到的一点问题
  15. [2014-09-18]Entity Framework 6 预热、启动优化
  16. 多线程:多线程设计模式(三):Master-Worker模式
  17. java 中Map 使用
  18. C++的find函数使用小技巧
  19. AngularJS--及其他js框架对比
  20. repository test has failed 错误

热门文章

  1. phpfpm和nginx设置开机自动启动
  2. Unity* 实体组件系统 (ECS)、C# 作业系统和突发编译器入门
  3. Linux文件权限码
  4. springcloud zookeeper+gateway
  5. hashmap C++实现
  6. luoguP2822-组合数问题(基础DP)
  7. 课程计划安排 ver: 2016-12-14
  8. [转帖]Linux的wget命令详解
  9. Oracle RAC安装文档
  10. Java白皮书学习笔记+Head First Java--用于自我复习 基础知识篇