问题 A: 星际旅行

时间限制: 1 Sec  内存限制: 256 MB

题面


题面谢绝公开。

考试心路历程


拿到这道题感觉很懵逼,所以先搞的T2和T3,最后码了个暴力,结果还不如直接输出‘0’得分高。

暴力码了T10,花了30多分钟,感觉亏大了。主要调起来比较恶心。各种玄学低错层出不穷。

开始码出来后交了,又拉下来手模一组样例测了,hack了,整个人开始慌张,然后就调。调了半天终于过了手模样例和题示样例,觉得稳了,就交了。

后来看提交记录,之前交的也是T10……亏了亏了……

总结一下,别人这道题都是轻易拿50、80,我只拿了10,除了暴力太暴力以外,还是时间分配不合理。同样也是没仔细想完全没往欧拉回路那里想。

还是考试经验不足和实力不足的双重叠加。问题转化能力也要差很多。

题解


每个边拆成两条边,问题等价为删掉两条边,图中仍满足存在一个欧拉路。

给出欧拉路定义:欧拉路是指从图中任意一个点开始到图中任意一个点结束的路径,并且图中每条边通过的且只通过一次

得到欧拉路判定方式:所有点度都是偶数,或者恰好有两个点度是奇数,则有欧拉路。若有奇数点度,则奇数点度点一定是欧拉路的起点和终点,否则可取任意一点作为起点。(无向图)

根据欧拉图的判定方式我们分三种情况进行讨论:1.去掉任意2个自环  2.去掉任意1个自环和任意一条边  3.去掉两条有公共顶点的边

所以设自环数为sum_cir,情况1为:sum_cir*(sum_cir-1),

设每个点不包括自环的度为du[i],则情况2为:sum_cir*($\sum(du[i])$)/2(每个边连两个点,所以∑du[i]把每个边算了两次)。

情况3为:$\sum (du[i]*(du[i]-1)/2$,

(可以按组合数学的思路:从与i点相连的du[i]条边里面选出两个删掉,即为:$C_{du[i]}^2$,化简就是这个了。)

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<stack>
#include<cmath>
#include<vector>
#define rint register int
#define ll long long
using namespace std;
ll n,m,fr,to;
ll tot,first[],du[];
ll sum,sum2,rd[];
ll fa[];
ll ans=;
inline ll get_fa(ll x)
{
if(fa[x]==x)return x;
return fa[x]=get_fa(fa[x]);
}
int main()
{
scanf("%lld %lld",&n,&m);
for(ll i=;i<=n;++i)fa[i]=i;
for(ll i=;i<=m;++i)
{
scanf("%lld %lld",&fr,&to);
if(fr==to)sum++;
else
{
du[fr]++,du[to]++;
ll f1=get_fa(fr),f2=get_fa(to);
fa[f1]=f2;
}
rd[fr]++,rd[to]++;
}
ll lin;
for(ll i=;i<=n;++i)
if(rd[i]){lin=i,get_fa(i);break;}
for(ll i=;i<=n;++i)
{
if(rd[i]&&get_fa(i)!=fa[lin])
{
cout<<<<endl;
return ;
}
}
for(ll i=;i<=n;++i)
ans+=(du[i]-)*du[i]/,sum2+=du[i];
ans+=sum*sum2/;
ans+=sum*(sum-)/;
printf("%lld\n",ans);
return ;
}

「题解」:07.18NOIP模拟赛T1:星际旅行的更多相关文章

  1. 「题解」「美团 CodeM 资格赛」跳格子

    目录 「题解」「美团 CodeM 资格赛」跳格子 题目描述 考场思路 思路分析及正解代码 「题解」「美团 CodeM 资格赛」跳格子 今天真的考自闭了... \(T1\) 花了 \(2h\) 都没有搞 ...

  2. 「题解」「HNOI2013」切糕

    文章目录 「题解」「HNOI2013」切糕 题目描述 思路分析及代码 题目分析 题解及代码 「题解」「HNOI2013」切糕 题目描述 点这里 思路分析及代码 题目分析 这道题的题目可以说得上是史上最 ...

  3. 「题解」JOIOI 王国

    「题解」JOIOI 王国 题目描述 考场思考 正解 题目描述 点这里 考场思考 因为时间不太够了,直接一上来就着手暴力.但是本人太菜,居然暴力爆 000 ,然后当场自闭- 一气之下,发现对 60pts ...

  4. 【洛谷比赛】[LnOI2019]长脖子鹿省选模拟赛 T1 题解

    今天是[LnOI2019]长脖子鹿省选模拟赛的时间,小编表示考的不怎么样,改了半天也只会改第一题,那也先呈上题解吧. T1:P5248 [LnOI2019SP]快速多项式变换(FPT) 一看这题就很手 ...

  5. 20180610模拟赛T1——脱离地牢

    Description 在一个神秘的国度里,年轻的王子Paris与美丽的公主Helen在一起过着幸福的生活.他们都随身带有一块带磁性的阴阳魔法石,身居地狱的魔王Satan早就想着得到这两块石头了,只要 ...

  6. 07.27NOIP模拟赛

    戳这里下载过去三次NOIP模拟赛总成绩 (别嘲笑垫底的我...解压密码为信奥生所在的两个班的班号,文档密码为机房开机用户名+密码) 又一次垫底…… 我难受. 上来感觉T1不可做,T2和蔼可亲,T3一脸 ...

  7. 「题解」:07.16NOIP模拟T1:礼物

    问题 A: 礼物 时间限制: 1 Sec  内存限制: 256 MB 题面 题目描述 夏川的生日就要到了.作为夏川形式上的男朋友,季堂打算给夏川买一些生 日礼物. 商店里一共有种礼物.夏川每得到一种礼 ...

  8. 「题解」:07.16NOIP模拟T2:通讯

    问题 B: 通讯 时间限制: 1 Sec  内存限制: 256 MB 题面 题目描述 “这一切都是命运石之门的选择.” 试图研制时间机器的机关SERN截获了中二科学家伦太郎发往过去的一条短 信,并由此 ...

  9. 「题解」「2014 NOI模拟赛 Day7」冒泡排序

    目录 题目 考场思考 正解 题目勾起了我对我蒟蒻时代的回忆,虽然我现在也蒟蒻 题目 点这里 可能链接会挂,在网上搜题目就有. 毕竟 \(BZOJ\) 有点老了... 考场思考 本来以为十分友善的一道题 ...

随机推荐

  1. Slow HTTP POST慢速攻击

    测试工具 模拟测试工具:slowhttptest https://github.com/shekyan/slowhttptest 安装: https://github.com/shekyan/slow ...

  2. 正版STlink的使用注意

    https://blog.csdn.net/xinghuanmeiying/article/details/78026561

  3. 21-2-substring

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. gulp 压缩 uglify报错GulpUglifyError: unable to minify JavaScript

    引:https://www.cnblogs.com/vellemo/p/6898125.html 在压缩的时候报错:GulpUglifyError: unable to minify JavaScri ...

  5. VMware 安装android-x86系统。

    首先先安装 VMware 虚拟机,并下载 android-x86_64-8.1-r2.iso 系统. VMware安装完成后,打开VMware Workstation,单击“创建新的虚拟机”,或者在菜 ...

  6. linux命令输出到屏幕的同时保存到文件

    有时候无法在一个屏幕中打印出所有显示内容 可以使用以下命令: ifconfig | tee ifconfig.log more ifconfig.log

  7. JS函数 有参数的函数 参数可以多个,根据需要增减参数个数。参数之间用(逗号,)隔开

    有参数的函数 上节中add2()函数不能实现任意指定两数相加.其实,定义函数还可以如下格式: function 函数名(参数1,参数2) { 函数代码 } 注意:参数可以多个,根据需要增减参数个数.参 ...

  8. The linux command 之软件包管理

    一.软件包系统 不同的Linux发行版用的是不同的软件包系统,多数都采用以下两种: 二.软件包系统工具 三.在库里查找软件包 四.安装库中的软件包 五.安装软件包文件中的软件包 六.删除软件包 七.更 ...

  9. mySql搜索引擎

    转载自 深入浅出mysql数据库 MySQL5.5以后默认使用InnoDB存储引擎,其中InnoDB和BDB提供事务安全表,其它存储引擎都是非事务安全表. 若要修改默认引擎,可以修改配置文件中的def ...

  10. thinkphp 定界符

    模板文件可以包含普通模板标签和XML模板标签,标签的定界符都可以重新配置. 大理石平台厂家 普通标签 内置模板引擎的普通模板标签默认以{ 和 } 作为开始和结束标识,并且在开始标记紧跟标签的定义,如果 ...