未完成——明晚见 (悲伤。。)

#include <cstring>
#include <cctype>
#include <cstdio>
#include <vector>
#include <queue>
#define N 100005
using namespace std;
vector<int>G[N];
inline void Read(int &x)
{
    register char ch=getchar();
    for(x=0;!isdigit(ch);ch=getchar());
    for(;isdigit(ch);x=x*10+ch-‘0‘,ch=getchar());
}
bool instack[N];
int n,m,ans,stack[N],low[N],dfn[N],col[N],sum[N],f1[N],f2[N],in1[N],in2[N],sumcol,tim,top;
inline int min(int a,int b) {return a>b?b:a;}
inline int max(int a,int b) {return a>b?a:b;}
void tarjan(int x)
{
    low[x]=dfn[x]=++tim;
    stack[++top]=x;
    instack[x]=true;
    for(int i=0;i<G[x].size();++i)
    {
        int v=G[x][i];
        if(!dfn[v])
        {
            tarjan(v);
            low[x]=min(low[x],low[v]);
        }
        else if(instack[v]) low[x]=min(low[x],dfn[v]);
    }
    if(low[x]==dfn[x])
    {
        int k;
        sumcol++;
        do
        {
            k=stack[top--];
            instack[k]=false;
            col[k]=sumcol;
            sum[sumcol]++;
        }while(k!=x);
    }
}
struct node
{
    vector<int>E[N];
    int f[N],in[N];
    bool Map[1005][1005];
    void ins(int u,int v)
    {
        in[v]++;
        E[u].push_back(v);
    }
    void tppx()
    {
        queue<int>q;
        for(int i=1;i<=sumcol;++i) if(!in[i]) q.push(i);
        f[col[1]]=sum[col[1]];
        for(int now;!q.empty();)
        {
            now=q.front();q.pop();
            for(int i=0;i<E[now].size();++i)
            {
                int v=E[now][i];
                f[v]=max(f[v],f[now]+sum[v]);
                in[v]--;
                if(!in[v]) q.push(v);
            }
        }
    }
};
node a,b;
int main()
{
    Read(n);Read(m);
    for(int x,y;m--;)
    {
        Read(x);Read(y);
        G[x].push_back(y);
    }
    for(int i=1;i<=n;++i) if(!dfn[i]) tarjan(i);
    for(int i=1;i<=n;++i)
    {
        for(int j=0;j<G[i].size();++j)
        {
            int v=G[i][j];
            if(col[i]!=col[v]&&!a.Map[col[i]][col[v]]) a.ins(col[i],col[v]),a.Map[col[i]][col[v]]=1;
            if(col[i]!=col[v]&&!b.Map[col[v]][col[i]]) b.ins(col[v],col[i]),b.Map[col[v]][col[i]]=1;
        }
    }
    a.tppx();
    b.tppx();
    ans=sum[col[1]];
    for(int i=1;i<=n;++i)
    {
        for(int j=0;j<G[i].size();++j)
        {
            int v=G[i][j];
            ans=max(ans,a.f[col[v]]+b.f[col[i]]);
        }
    }
    printf("%d\n",ans-sum[col[1]]);
    return 0;
}
时间: 2024-10-13 10:28:39

未完成——明晚见 (悲伤。。)的相关文章

丁见辉:3.6晚评原油区间震荡附带黄金白银操作建议

丁见辉:3.6晚评 原油区间震荡附带黄金白银操作建议 不少人,因为无能为力所以顺其自然,因为心无所属所以随遇而安,你所有的计划都不能坚持,只有两个小原因:震荡的时候当单边,单边的时候想反转.其实,很多人的悲伤,只是希望展示给大家看自己很悲伤,耐心是致胜的关键,信心是成功的保障,强势更强.弱势更弱,交易本是快乐的博弈,而并非含泪咬牙的长征.每一位在读这篇文章的人,感谢与你相遇!简单的一篇文章,希望会帮助你. 消息面: 俄罗斯能源部上周公布的数据显示,2月该国石油产量1,111万桶/日,持平1月.这

未完成的IT路停在回车键---2014年末总结篇

时间都去哪儿了? 一晃而过,越来越能体会到这个词的真实感.特别是过了二十岁,这种感觉越来越深刻,越来越强烈,犹如小编做公交车的时候一直向后排排倒的香樟树,还记得有首歌叫时间都哪儿了,而后,这首歌传遍了大江南北,或许在电视机屏幕另一端的那个你,在听到旋律与歌词的那一瞬,你的心是否也被重重的戳了一下,因为她唱出了心声,击中内心最柔软的地方,你是否也像小编一样陷入了深深的沉思,就像歌词里面唱的那样:时间都去哪儿了?这些年,我们的时间都去哪儿了.都说岁月苍老了父母的容颜,苍老的何止是他们的容颜啊."时间

1月10日前未完成《创业创新执行力》考试的补救措施

补救措施方法见海浪BBS(MOOC学习团队汇报贴(<创业创新执行力>课程)) 以下为转载 目前还有XX位同学没有完成考试(即完成相应的调查问卷,见关于尔雅平台通识课<创业创新执行力>的考试方法与考试须知),学习是为了提高,老师根据同学们的诉求,设计了一个补救的办法,未完成考试的同学,可以选择(1)自愿完成补救方法中的学习要求,现在先完成考试:(2)放弃这门课程的学分. 一:补救方法 (1)从如下6个MOOC平台(附1)中,选择一门至少需要学习四周的课程,在5个月内(6月11日前)完

(转)巴斯夏:看得见的与看不见的

醍醐灌顶,豁然开朗. (转自http://www.douban.com/note/241141939/) 巴斯夏:看得见的与看不见的 一个好经济学家与一个坏经济学家之间的区别就只有一点:坏经济学家仅仅局限于看到可以看得见的后果,而好经济学家却能同时考虑可以看得见的后果和那些只能推测到的后果. 看得见的与看不见的 巴斯夏(Claude Frédéric Bastiat) 在经济领域,一个行动.一种习惯.一项制度或一部法律,可能会产生不止一种效果,而是会带来系列后果.在这些后果中,有些是当时就能看到

患难见真情——《青铜葵花》读后感作文3700字

患难见真情--<青铜葵花>读后感作文3700字:写在前面的话:曹文轩是我很喜欢的一位儿童文学作家,这几年陪着学生看了很多曹文轩的作品.他的作品非常值得用心品读,每一次看他的书,都会感觉到心底最柔软的部分被触动了.曹文轩总能用质朴的语言,纯粹的情感带给人无言的感动,哪怕是悲伤也表现得那么小心谨慎.正如国际安徒生奖的颁奖词一样:曹文轩,用诗意如水的笔触,描写原生生活中一些真实而哀伤的瞬间.虽然作品里面充斥着淡淡的哀伤,却又不至于让人感到悲伤.曹文轩,2016年4月4日获"国际安徒生奖&q

17-又见01背包

/*                                        又见01背包时间限制:1000 ms  |  内存限制:65535 KB难度:3 描述        有n个重量和价值分别为wi 和 vi 的 物品,从这些物品中选择总重量不超过 W     的物品,求所有挑选方案中物品价值总和的最大值.    1 <= n <=100    1 <= wi <= 10^7    1 <= vi <= 100    1 <= W <= 10^

bzoj3620: 似乎在梦中见过的样子

3620: 似乎在梦中见过的样子 Description “Madoka,不要相信 QB!”伴随着 Homura 的失望地喊叫,Madoka 与 QB 签订了契约. 这是 Modoka 的一个噩梦,也同时是上个轮回中所发生的事.为了使这一次 Madoka 不再与 QB签订契约,Homura 决定在刚到学校的第一天就解决 QB.然而,QB 也是有许多替身的(但在第八话中的剧情显示它也有可能是无限重生的),不过,意志坚定的 Homura 是不会放弃的——她决定 消灭所有可能是 QB 的东西.现在,她

nyoj 814 又见拦截导弹

又见拦截导弹 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 大家对拦截导弹那个题目应该比较熟悉了,我再叙述一下题意:某国为了防御敌国的导弹袭击,新研制出来一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.突然有一天,雷达捕捉到敌国的导弹来袭.由于该系统存在缺陷,所以如果想把所有的导弹都拦截下来,就要多准备几套这样的导弹拦截系统.但是由于该系统成本太高,所以为了降低成本,请你计算一下最少需要

张书乐:活久见!王者荣耀不是农药!拜托,这不过是一个游戏

今日午后,在香港上市的腾讯控股一度跌5%,目前跌幅近4%.人民网日前发表评论文章称,<王者荣耀>面向社会不断在释放负能量,监管主体有必要让游戏多一些"善意".在很多人看来,这一次是人民网抨击王者荣耀. 我想说,在我看来,这真不是抨击,而是希望能够有一个更好的无毒"农药",它呼吁的是游戏厂商的监管,也呼吁的是来自社会各界以及有关部门的监管-- 文/张书乐(游戏产业资深时评人) 作为一个2004年就开始做游戏产业评论的撰稿人,当看到这样的议论时,真的有一种&