3899

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
Description
假如有命题p 一定能推出命题q,则称p 是q 的充分条件,q 是p 的必要条件。
特别的,当p 既是q 的充分条件,又是q 的必要条件时,称p 和q 互为充要条件
现在有n 个命题,其中一些是另一些的充分条件。请问有多少对命题互为充要条件?
Input
第一行三个正整数n,m,分别表示命题数、已知关系数
接下来m 行,每行两个正整数p 和q,表示命题p 是命题q 的充分条件
Output
仅一行,一个整数,表示充要条件的对数
Sample Input
5 5
1 3
3 2
2 1
4 5
5 4
Sample Output
4
样例说明:
4 对充要条件分别是(1, 2)、(2, 3)、(1, 3)、(4, 5)
Data Constraint
对于10% 的数据,n <= 10;m <= 50
对于40% 的数据,n <= 500;m <= 1000
对于另外10% 的数据,数据中保证没有重边且m = n^2

对于100% 的数据,n<= 50000;m <= 600000

var
        a,b,i,j,p1,time:longint;
        v,x,y,low,dfn:array[0..600000] of longint;
        last:array[0..600000,1..2]of longint;
        p:array[0..600000]of boolean;
        ans,ans1:int64;
function min(i,j:longint):longint;
begin
        if i<j then
                exit(i);
        exit(j);
end;
function max(i,j:longint):longint;
begin
        if i<j then
                exit(j);
        exit(i);
end;
procedure dfs(x:longint);
var
        i,j,r:longint;
begin
        inc(p1);
        v[p1]:=x;
        r:=last[x,1];
        inc(time);
        low[x]:=time;
        dfn[x]:=time;
        p[x]:=true;
        while r<>0 do
        begin
                if dfn[y[r]]=0 then
                begin
                        dfs(y[r]);
                        low[x]:=min(low[x],low[y[r]]);
                end
                        else
                if p[y[r]] then low[x]:=min(low[x],low[y[r]]);
                r:=last[r,2];
        end;
        ans1:=0;
        if dfn[x]=low[x] then
        begin
                while v[p1+1]<>x do
                begin
                        p[v[p1]]:=false;
                        inc(ans1);
                        dec(p1);
                end;
                ans:=ans+ans1*(ans1-1) div 2;
        end;
end;
begin
        //assign(input,'1.in');reset(input);
        readln(a,b);
        for i:=1 to b do
        begin
                readln(x[i],y[i]);
                last[i,2]:=last[x[i],1];
                last[x[i],1]:=i;
        end;
        for i:=1 to a do
                if dfn[i]=0 then dfs(i);
        writeln(ans);
        close(input);
end.

LTC3899 LTC3899升压稳压器。 阅读详情

相关推荐

无法定位序数处理方法

无法定位序数处理方法,用管理员命令提示符

山东省第八届ACM大学生程序设计竞赛 训练总结 [8/11] 待补

迟来的总结 队友缺席一人,两人,vj 5h模拟,1+小时从下开始看榜。F题很迷,同时我很智障,居然浪费全队2个小时,个人3+小时的时间,,,,,导致最后的GG做题的时候要更加细心,思维要缜密,同时不能有一点懒惰,有些认为可有可有的操作还是写上更为保险一点。因为F题我只判了−b+det−−−√2a\dfrac{-b+\sqrt {\det}}{2a} 而另一个解想当然的没有判。。。炸锅 看F之前3题

Tabris的博客 987

无法定位序数XX于动态链接库XX.dll的解决的方法

问题阐述:              开发环境:VS2008 使用RELEASE生成了可执行文件,发如今某些电脑上能够正常执行,但在部分电脑中执行失败提示:无法定位序数8523于动态链接库mfc90.dll 在网上查找了一些资料解决的方法比如:下载MFC90.dll放入运行的文件里或者放在C:system/system32下,经过尝试无法达到目的   问题解决:         ...

weixin_34087301的博客 1万+

山东省第八届 ACM 省赛 sum of power(SDUT 3899

Problem Description Calculate ∑ni=1im mod (1000000000+7) for given n,m. Input Input contains two integers n,m(1≤n≤1000,0≤m≤10). Output Output the answer in a single line. Example Input 10 0 Exa

残云墨雪 414

SDUT3899

“浪潮杯”山东省第八届ACM大学生程序设计竞赛G题 快速幂或取模运算#include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std; #define MAXN 1000000007 long long add(int n,int m) { long long ans;

qq_36386435的博客 458

P3899 [湖南集训]谈笑风生

题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=3653 https://www.luogu.org/problemnew/show/P3899 思路 三个点肯定在1到c的链上 a已经确定 1.b是a的祖先,答案就是(siz[u]-1)*min(dis[u]-1,k) 2.a是b的祖先,要求\(1<=dis[b]-dis[...

weixin_30566063的博客 104

hdu 3899(树形dp)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3899 思路:num[u]表示u以及u的子树的队伍数的总和,dist[u]表示u到根节点的距离,dp[u]表示以u为根时的总花费。我们可以先做一次dfs算出树上所有点到根节点(1)的花费总和,然后同时计算出num[],然后就是又一次dfs算出以每个点为根的话费,这里有dp[v]=dp[u]+(sum-

几百个教授的专栏 462

小米员工丢了 6 年前的工程机,离职还要赔 3899

你们公司丢设备一般怎么赔?按原价、折旧价,还是直接走报废?

knighthood2001 2万+

poj-3899-The Lucky Numbers 模拟+数学

题目链接: http://poj.org/problem?id=3899 题目意思: 求给定区间内,只含4、7的数的个数以及通过反转后在该区间内的个数和。 解题思路: 模拟+数学。 代码解释的很详细,请看代码。 #include #include #include #include #include #include #include #include #include #inc

cc_again的专栏 1273

【ZOJ3899】State Reversing 解题报告

【ZOJ3899】State Reversing Description 有\(N\)个不同的怪兽,编号从\(1\) 到\(N\)。Yukari有\(M\)个相同的房间,编号为\(1\)到\(M\)。每个房间是无限大的,每个房间有两种状态:可以住或者不可以住(一开始所有的房间都可以住)。Yukari每天都会选定一个区间 \([l,r]\),把编号在这个区间的房间状态反转(可以住改成不可以住,不可以...

weixin_30809173的博客 134

[ZOJ3899]State Reversing

[ZOJ3899]State Reversing 试题描述 Yakumo Yukari is with no doubt one of the most powerful youkai in Gensokyo. Her ability is manipulating boundaries. She has \(N\) unknown creatures called "sinsack" or "t...

weixin_30828379的博客 189

hdu3899 JLUCPC--树形dp(好题)

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=3899 题意: 给定n个点,每个点的人数,n-1条边和边权。选取任意一点u,然后让所有人都移动到u点,问最小的移动距离和是多少。 分析: 注意数字比较大,用long long,递归深度较大,用了#pragma comment(linker, "/STACK:102400000

半壶老酒 726

ZOJ3899 State Reversing 【线段树 + NTT】

题目链接 ZOJ3899 题解 比较累,做一道水题 还被卡常= = 我在\(ZOJ\)交过的两道\(NTT\)都被卡常了。。 哦,题意就是求第二类斯特林数,然后线段树维护一下集合数量就可以了 #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #...

weixin_30279315的博客 86

钢材生锈铁生锈腐蚀识别分割数据集labelme格式3899张1类别

重要说明:可以将数据集用labelme打开编辑,json数据集需自己转成mask或者yolo格式或者coco格式作语义分割或者实例分割。数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件)特别声明:本数据集不对训练的模型或者权重文件精度作任何保证,数据集只提供准确且合理标注。标注规则:对类别进行画多边形框polygon。使用标注工具:labelme=5.5.0。标注数量(json文件个数):3899。图片数量(jpg文件个数):3899

FL1623863129的博客 967

【树形DP】 hdu3899 JLUCPC

JLUCPC 题目:http://acm.hdu.edu.cn/showproblem.php?pid=3899 题意:一棵树,给出每个点的权值和每条边的长度,点j到点i的代价为点j的权值乘以连接i和j的边的长度。求点x使得所有点到点x的代价最小,输出最小值。 题解:求出一个点的代价后可以进行相应的转移求出相邻点的代价。 代码: #include #include #include

Ted's 游乐园 953

LPK3899DBM —24V1A 24W 碳化硅电源方案(BOM表、典型应用电路)

LPK3899DBM是国产原边反馈反激电源主控,内置 800V SiC 碳化硅功率 MOS,EHSOP8L 封装,标准功率 24W(24V/1A),主打充电器、小型适配器,无需光耦 + TL431,简化 BOM、缩小 PCB 面积。输入欠压、FB 反馈电阻开路 / 短路、CS 电流检测电阻故障、输出短路、输出过压 OVP、电感过流、最大导通时间限制、芯片过温 OTP、VCC 供电过压 / 欠压保护太极盾.集成>800V SiC 开关管,耐压远优于普通硅 MOS,抗浪涌、散热更好。

2503_92580702的博客 234
上一篇: 3898
下一篇: 3915
huangja
博客等级 码龄10年 5粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值