解题:POI 2006 PRO-Professor Szu
这个题是比较套路的做法啦,建反图后缩点+拓扑排序嘛,对于所有处在$size>=2$的SCC中的点都是无限解(可以一直绕)
然后注意统计的时候的小细节,因为无限解/大解也要输出,所以我们把这些点统一统计成36501,然后所有的方案都对36501取min就可以很方便的输出了
- #include<cstdio>
- #include<vector>
- #include<cstring>
- #include<algorithm>
- using namespace std;
- const int N=,INF=;
- int P[N],Noww[N],Goal[N];
- int p[N],noww[N],goal[N];
- int dfn[N],low[N],col[N],deg[N],inf[N];
- int stk[N],ins[N],que[N],outp[N],dp[N];
- int n,m,c,f,b,t1,t2,cnt,Cnt,tot,top,ans;
- void link(int f,int t)
- {
- noww[++cnt]=p[f];
- goal[cnt]=t,p[f]=cnt;
- }
- void relink(int f,int t)
- {
- Noww[++Cnt]=P[f];
- Goal[Cnt]=t,P[f]=Cnt;
- }
- void Tarjan_SCC(int nde)
- {
- dfn[nde]=low[nde]=++tot;
- stk[++top]=nde,ins[nde]=true;
- for(int i=p[nde];i;i=noww[i])
- if(!dfn[goal[i]])
- Tarjan_SCC(goal[i]),low[nde]=min(low[nde],low[goal[i]]);
- else if(ins[goal[i]])
- low[nde]=min(low[nde],low[goal[i]]);
- if(dfn[nde]==low[nde])
- {
- c++; int tmp;
- do
- {
- tmp=stk[top--];
- ins[tmp]=false;
- col[tmp]=c;
- }while(nde!=tmp);
- }
- }
- int main ()
- {
- scanf("%d%d",&n,&m),b=-;
- for(int i=;i<=m;i++)
- scanf("%d%d",&t1,&t2),link(t2,t1);
- for(int i=;i<=n+;i++)
- if(!dfn[i]) Tarjan_SCC(i);
- for(int i=;i<=n+;i++)
- for(int j=p[i];j;j=noww[j])
- if(col[i]!=col[goal[j]])
- {
- relink(col[i],col[goal[j]]);
- deg[col[goal[j]]]++;
- }
- else inf[col[i]]=true;
- for(int i=;i<=c;i++)
- if(!deg[i]) que[++b]=i;
- dp[col[n+]]=;
- while(f<=b)
- {
- int tn=que[f++];
- if(inf[tn]&&dp[tn]) dp[tn]=INF;
- for(int i=P[tn];i;i=Noww[i])
- {
- dp[Goal[i]]=min(dp[Goal[i]]+dp[tn],INF);
- if(!(--deg[Goal[i]])) que[++b]=Goal[i];
- }
- }
- for(int i=;i<=c;i++) ans=max(ans,dp[i]);
- for(int i=;i<=n;i++)
- if(dp[col[i]]==ans) outp[++outp[]]=i;
- ans>?printf("zawsze"):printf("%d",ans);
- puts(""),printf("%d\n",outp[]);
- for(int i=;i<=outp[];i++)
- printf("%d ",outp[i]);
- return ;
- }
解题:POI 2006 PRO-Professor Szu的更多相关文章
- 解题:POI 2006 Periods of Words
题面 洛谷翻译有毒系列 正常人能看懂的题面:若$S$可以通过前缀$s$重复若干次(可重叠)来表示($s!=S$),则称$s$是$S$的一个循环串.求一个字符串所有前缀(包括本身)的最长循环串的长度之和 ...
- [POI 2006]OKR-Periods of Words
Description 题库链接 定义 \(A\) 串为 \(B\) 串的循环串,当且仅当 \(A\) 是 \(B\) 的前缀(不包括 \(B\) 本身),且 \(B\) 为连续的 \(A\) 串拼接 ...
- 【POI 2006】 Tet-Tetris-3D
[题目链接] 点击打开链接 [算法] 二维线段树(树套树) 注意标记永久化 [代码] #include<bits/stdc++.h> using namespace std; #defin ...
- OKR-Periods of Words「POI 2006」
题目描述 串是有限个小写字符的序列,特别的,一个空序列也可以是一个串.一个串 P 是串 A 的前缀,当且仅当存在串 B,使得 A = PB.如果 P != A 并且 P 不是一个空串,那么我们说 P ...
- POI题解整合
我也不知道为啥我就想把POI的题全都放到一篇blog里写完. POI 2005 SAM-Toy Cars 贪心,每次选下次出现最晚的. POI 2006 KRA-The Disks 箱子位置单调,所以 ...
- Java clone方法(下)
1.终于调用的是一个JNI方法,即java本地方法,加高速度 2.使用clone方法,分为浅复制.深复制,这里直接使用网上抄来的案例来说明吧: 说明: 1)为什么我们在派生类中覆盖Object的clo ...
- NOIP 2006 解题报告
第一题: 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定 ...
- 解题:POI 2016 Nim z utrudnieniem
题面 出现了,神仙题! 了解一点博弈论的话可以很容易转化题面:问$B$有多少种取(diu)石子的方式使得取后剩余石子异或值为零且取出的石子堆数是$d$的倍数 首先有个暴力做法:$dp[i][j][k] ...
- 解题:CTSC 2006 歌唱王国
题面 概率生成函数 对于菜鸡博主来说好难啊 其一般形式为$F(x)=\sum\limits_{i=0}^∞[x==i]x_i$,第i项的系数表示离散变量x取值为i的概率 一般的两个性质:$F(1)=1 ...
随机推荐
- kali获得windows的shell后乱码
输入 chcp 65001
- CocoaPods did not set the base configuration of your project because your project already has a custom config set.
今天在封装自己的消息推送SDK的时候,pod install 的时候,突然报这个错误,解决方式如下: $ pod install Analyzing dependencies Downloading ...
- Beta阶段基于spec评论作品
组名:杨老师粉丝群 组长:乔静玉 组员:吴奕瑶 刘佳瑞 公冶令鑫 杨磊 刘欣 张宇 卢帝同 一.测试目标:拉格朗日2018——飞词 下面是他们的小游戏在运行时的一些截图画面: 1.开始界面 ...
- Beta阶段版本控制报告
版本控制代码及文档要求 在coding.net版本控制; 公开项目,教师.专家.其他同学可以不注册源代码.在此公布git地址. 报告beta阶段2周中,项目的版本控制情况,不包括未在coding.ne ...
- Daily Srum 10.30
Android那一组打算用SQL Server这个关系型数据库,而王鹿鸣他们一组却是依赖于Hbase,这是一件很麻烦的事,所以我打算在这两方面都建立一个数据库.虽然挺麻烦,但是还是为了扩展性所做的必要 ...
- Chapter 7 面向对象分析
面向对象的分析模型由功能模型.分析对象模型.动态模型三个独立的模型组成,从软件的需求功能来看分析类可以划分为实体类.边界类和控制类三种类型.识别分析类.控制类和实体类需要充分理解系统内部的行为.一个参 ...
- 福大软工1816 · 评分结果 · beta冲刺总评
作业地址:beta答辩总结.beta冲刺7.beta冲刺6.beta冲刺5.beta冲刺4.beta冲刺3.beta冲刺2.beta冲刺1.beta冲刺前准备 作业提交准则 按时交 - 有分 晚交 - ...
- IIS8.5 的环境下添加配置WCF服务!!!!!
添加步骤: 1.打开iis8.5,先部署wcf服务. 2.首先添加MIME类型 扩展名:“.svc” MIME类型:“application/octet-stream” 3.添加 处理程序映射 请求路 ...
- Scrum 项目 4.0-5.0-约教网站开发(一)
----------------------------------4.0----------------------------------------------- 一.项目任务 1.准备看板. ...
- [2017BUAA软工]个人项目心得体会:数独
心得体会 回顾此次个人项目,感受比较复杂,最明显的一点是--累!代码编写.单元测试.代码覆盖.性能优化,环环相扣,有种从作业发布开始就一直在赶DDL的感觉,但是很充实,也学习到和体验了很多东西.最令人 ...