瞎搞了一个ans+=du*(du-1)/2 wa20分,好桑心(话外音:居然还有二十分,出题人太周到了)

还是判欧拉路

题解没太仔细想,感觉还是kx的思路明白

具体就是:因为每条边要走两遍,可以把一条无向虫洞看成两条边,暂且叫它虚边(Lockey瞎起的),然后选出并删去两条边,当然,这两条边不是同一条边变来的,删完之后,原来的位置一条边变两条边,现在只剩下一条虚边,使得每条边可以被经历一边,即判断删去两条边使得剩下路径的是欧拉路或欧拉回路

首先,要想到每条边变虚边都是变成了两条,则只要有连边,点的度数一定是偶数,即如果当前所有虫洞都连通,它是一个欧拉回路

第一种方案,删去两个自环,原来的相应的点度数减2,仍是偶度,它是欧拉回路,求出自环数量num,方案数为$C_{num}^2$

第二种方案,删去一个自环一条边,删自环的点度数减2,偶度,删去的边两端的点度数减1,两个奇度点,其余全是偶度点,所以它是欧拉路,方案数$C_{num}^1*(m-num)$

第三种方案,删去有一个公共点的两条边,公共点度数减2,另外两点度数减1,两个奇度点,其余偶度,是欧拉路,方案数$\sum\limits_{i=1}^{n}C_{du[i]}^2$

加起来就是 $C_{num}^2+C_{num}^1*(m-num)+\sum\limits_{i=1}^{n}C_{du[i]}^2$

可以这么想,把一二种合起来,第一个自环可以与剩余自环 边组合,方案m-1, 第二个自环 m-2……以此类推,发现是等差数列 总方案数 $ (2*m-num-1)*num/2 $

第三种 为$\sum\limits_{i=1}^ndu[i]*(du[i]-1)/2$,一遍for循环加起来就可以了

注意:1. 点的自环不能算进度数,因为已经算过

   2.会有几个不连通的图,方案为0,所以要判断,这里的不连通不是点不连通,而是虫洞(也就是边不连通),用并查集判断即可,这里不能漏掉自环

#include<iostream>
#include<cstdio>
#include<vector>
using namespace std;
int n,m,du[],zi,v[],fa[];
int find(int x){
return fa[x]==x?x:fa[x]=find(fa[x]);
}
int main(){
scanf("%d%d",&n,&m);
int x,y;
for(int i=;i<=n;i++) fa[i]=i;
for(int i=;i<=m;i++){
scanf("%d%d",&x,&y);
v[x]=v[y]=;
if(x==y) zi++;
else{
du[x]++,du[y]++;
fa[find(x)]=find(y);
}
}
int ances=;
for(int i=;i<=n;i++){
if(v[i]){
if(ances==) ances=find(i);
else if(ances!=find(i)){
cout<<<<endl;
return ;
}
}
}
long long ans=;
ans+=(long long)(*m-zi-)*zi/;
for(int i=;i<=n;i++){
ans=ans+(long long)(du[i]-)*du[i]/;
}
printf("%lld\n",ans);
}

星际旅行(欧拉路,欧拉回路)(20190718 NOIP模拟测试5)的更多相关文章

  1. NOIP模拟测试17&18

    NOIP模拟测试17&18 17-T1 给定一个序列,选取其中一个闭区间,使得其中每个元素可以在重新排列后成为一个等比数列的子序列,问区间最长是? 特判比值为1的情况,预处理比值2~1000的 ...

  2. 「题解」NOIP模拟测试题解乱写II(36)

    毕竟考得太频繁了于是不可能每次考试都写题解.(我解释个什么劲啊又没有人看) 甚至有的题目都没有改掉.跑过来写题解一方面是总结,另一方面也是放松了. NOIP模拟测试36 T1字符 这题我完全懵逼了.就 ...

  3. 2019.8.3 [HZOI]NOIP模拟测试12 C. 分组

    2019.8.3 [HZOI]NOIP模拟测试12 C. 分组 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 刚看这题觉得很难,于是数据点分治 k只有1和2两种,分别 ...

  4. 2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色

    2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 数据结构学傻的做法: 对每种颜色开动态开点线段树直接维 ...

  5. 2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci)

    2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci) 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 找规律 找两个节点的lca,需 ...

  6. 7.18 NOIP模拟测试5 星际旅行+砍树+超级树

    T1 星际旅行 题意:n个点,m条边,无重边,有自环,要求经过m-2条边两次,2条边一次,问共有多少种本质不同的方案.本质不同:当且仅当至少存在一条边经过次数不同. 题解:考试的时候理解错题,以为他是 ...

  7. NOIP模拟测试5「星际旅行·砍树·超级树」

    星际旅行 0分 瞬间爆炸. 考试的时候觉得这个题怎么这么难, 打个dp,可以被儿子贡献,可以被父亲贡献,还有自环,叶子节点连边可以贡献,非叶子也可以贡献,自环可以跑一回,自环可以跑两回, 关键是同一子 ...

  8. 欧拉路&&欧拉回路 概念及其练习

    欧拉路: 如果给定无孤立结点图G,若存在一条路,经过图中每边一次且仅一次,这条路称为欧拉路: 如果给定无孤立结点图G,若存在一条回路,经过图中每边一次且仅一次,那么该回路称为欧拉回路. 存在欧拉回路的 ...

  9. 欧拉路&&欧拉回路

    T1是欧拉路板子,但我不会,直接爆炸.. 这玩意就是个dfs,但我以前一直以为欧拉路只能$O(nm)$求 今天才知道可以$O(n+m)$ 欧拉路判定: 无向:起点终点为奇度点,其余偶度 有向:起点终点 ...

随机推荐

  1. WPF如何判断PNG中的点是透明的

    最近想用WPF做个空战游戏,其中就要解决子弹是否击中飞机的问题.这里面飞机用了PNG图片,大家都知道飞机是不规则图案,如何判断子弹碰撞成了一个难题. 好在我在网上找到了一个可以获取bitmap像素点颜 ...

  2. Win10《芒果TV》商店版更新v3.2.3:新增应用内意见反馈、播放重试、透明磁贴

    在2016圣诞节临近之际,<芒果TV>UWP版迅速更新v3.2.3版,主要是新增应用内意见反馈提交功能.播放重试.透明磁贴.动态磁贴等功能,进一步优化稳定性.视觉细节.运行速度. 芒果TV ...

  3. 零元学Expression Blend 4 - Chapter 4元件重复运用的观念

    原文:零元学Expression Blend 4 - Chapter 4元件重复运用的观念 本章将教大家Blend元件重复运用的观念,这在Silverlight设计中是非常重要的,另外加码赠送渐层工具 ...

  4. C#高性能大容量SOCKET并发(二):SocketAsyncEventArgs封装

    原文:C#高性能大容量SOCKET并发(二):SocketAsyncEventArgs封装 1.SocketAsyncEventArgs介绍 SocketAsyncEventArgs是微软提供的高性能 ...

  5. UWP-标题栏”后退“按钮

    原文:UWP-标题栏"后退"按钮 标题栏”后退“按钮,系统级导航 应用必须启用所有硬件和软件系统后退按钮的后退导航.执行此操作的方法是注册 BackRequested 事件的侦听器 ...

  6. mstsc也要使用/admin参数

    mstsc.exe /admin http://stackoverflow.com/questions/6757232/service-not-responding-error-1053

  7. 80%的岗位是没有太多能力上的要求的(少部分聪明的人开始觉醒,这部分一定是那些主动追求、主动学习的人;30岁现象能区分真正专业和不学无术的人)good

    不要沦陷程序员的30岁问题     热门> 就是学习能力和工作热情态度的问题. 我之前也跟作者一样思考过这个问题,答案是否定的. 在知识积累的行业,年纪越大,越吃香,比如金融,医学,IT.就怕3 ...

  8. MinGW和MSYS区别和关系以及MinGW&MSYS在Win7中安装并编译x264

    http://blog.csdn.net/freeape/article/details/50555003

  9. Qt:正确判断文件、文件夹是否存在的方法

    一直对Qt的isFile.isDir.exists这几个方法感到混乱,不知道到底用哪个,网上搜了下资料,也是用这几个方法但是都没有对其深究,经过测试发现会存在问题,先看看下面的测试代码 { QFile ...

  10. 在mac上尝试docker-swarm

    声明:本博客欢迎转发,但请保留原作者信息!新浪微博:@Lingxian_kong;博客地址:孔令贤的博客;内容系本人学习.研究和总结,如有雷同,实属荣幸! 安装docker-machine 我的安装环 ...