昨晚去补了EOJ月赛的三道题,第一题石头剪刀布不给样例比较难受,不过理清楚思路或者列举一下情况就很容易做了。第二题求妙,刚开始没注意最大数字出现多次的情况,一直WA,后来知道改一下就过了。。。还是细节问题。第三题找个样例把它代码卡掉。。。迷糊了半天,最后直接造了50个点100条边的情况就过了。。。真是被自己菜哭。

图论:看完了无向图割顶、桥的问题和双连通分量问题。都基本是固定模板,理解起来也不难。Tarjan算法必须熟练掌握。

判断一个无向图是否为点连通图或边连通图只需要看图中是否有割顶和桥即可,但是要找出其中的点连通分量和边连通分量,

点双连通只做了HDU 3749,进展条件弄错了,WA了好几次。另外还有vector初始化清空老是忘,细节还总出错。。。醉了

边双连通的一个重要结论:对于一棵无向树(缩点以后),我们要使得其变成边双连通图,需要添加的边数 == (树中度数为1的点的个数+1)/2。

HDU 3749 核心代码:

void init()
{f=0;ti=0;cnt=0;memset(fa,-1,sizeof(fa));memset(pre,0,sizeof(pre));memset(bcc,0,sizeof(bcc));for(int i=0;i<=n;i++) {bl[i].clear();ans[i].clear();vc[i].clear();}//老是忘,还是错少了
}
void add(int u,int v)
{vc[u].push_back(v);vc[v].push_back(u);
}
void dfs(int u,int fa)
{low[u]=pre[u]=++ti;for(int i=0;i<vc[u].size();i++){int v=vc[u][i];if(v==fa) continue;node no;no.u=u;no.v=v;if(!pre[v]){sta[++f]=no;//这里要进栈dfs(v,u);low[u]=min(low[u],low[v]);if(low[v]>=pre[u]){++cnt;node j;while(1){j=sta[f--];if(bcc[j.u]!=cnt){bcc[j.u]=cnt;ans[cnt].push_back(j.u);bl[j.u].push_back(cnt);}if(bcc[j.v]!=cnt){bcc[j.v]=cnt;ans[cnt].push_back(j.v);bl[j.v].push_back(cnt);}if(j.u==u&&j.v==v) break;}}}else if(pre[v]<pre[u]){sta[++f]=no;low[u]=min(pre[v],low[u]);}//这里也要进栈}
}
void jud(int x,int y)
{if(find(x)!=find(y)) {puts("zero");return;}for(int i=0;i<bl[x].size();i++)for(int j=0;j<bl[y].size();j++){if(bl[x][i]==bl[y][j]){int num=bl[x][i];if(ans[num].size()>2) {puts("two or more");return;}}}puts("one");//两点一边的特例
}

至于拓扑排序,之前学习过一段时间。但是现在看,觉得不一样。。。明天争取把博客里的题目都看完吧。

拓扑排序核心代码:

bool topu()
{queue<int>q;for(int i=0;i<n;i++) if(in[i]==0)q.push(i);int sum=0;while(!q.empty()){int u=q.front();q.pop();for(int j=0;j<vc[u].size();j++){int v=vc[u][j];if(--in[v]==0) q.push(v);}}sum++;}return sum==n;
}

拓扑排序的一个重要结论:能拓扑排序 <==>不存在3节点环

欧拉路,即一笔画路,饶齐的博客上说的还是比较详细的:

无向图是否具有欧拉通路或回路的判定:
        G有欧拉通路的充分必要条件为:G 连通,G中只有两个奇度顶点(它们分别是欧拉通路的两个端点)。
        G有欧拉回路(G为欧拉图):G连通,G中均为偶度顶点。

有向图是否具有欧拉通路或回路的判定:

D有欧拉通路:D连通,除两个顶点外,其余顶点的入度均等于出度,这两个特殊的顶点中,一个顶点的入度比出度大1,另一个顶点的入度比出度小1。D有欧拉回路(D为欧拉图):

D连通,D中所有顶点的入度等于出度。(注意:这里说有向图连通,说的是有向图是弱连通图。即把有向图中的边变成无向边,只要该图连通,那么原有向图即是弱连通图。实际中可用并查集判断是否弱连通)

一个经典的问题就是给你一堆单词然后首尾相接,问是否能接成一串。

(考试成绩基本都出了。。。还是很一般。。。)明天继续加油!

获得一个新发现:加入一个#pragma预处理指令可以防止爆栈,即:

#pragma comment(linker,"/STACK:10240000,10240000")

2018年1月23日训练日记相关推荐

  1. 2018年6月18日训练日记

    昨天沉迷课程设计忘了写训练日记...醉 这几天的主要任务是做区间数据维护专题的题目.DP4虽然延长了几天时间,但是依然是做不动啊...以后有时间再回来补吧.区间数据维护专题,做了几道比较简单的线段树和 ...

  2. 2018年9月13日训练日记

    今晚看了kuangbin最短路专题,我做题真的好慢,看着提交栏里一个大二的学生都ac了好几个题,我还就提交了一个题.看来我训练这么久,之所以没有取得什么成绩.不是我投入的时间少,而是效率极低.

  3. 2018年7月16日训练日记

    今天的主要任务还是2015年多校训练的前两套题. 做起来真是非常吃力...昨天把最简单的四道题都做出来了(其实也并不是很简单),今天花了将近一上午时间搞一道线段树没搞出来,于是先搞了一道自己擅长的网络 ...

  4. 2018年1月27日训练日记

    今天主要总结了本周图论专题所学习的知识和内容.虽然做了课件,但是还是有必要在这里写一下,以后方便看.

  5. 2018年2月6日训练日记

    今天主要的还是做网络流专题里的题目... 读了I题后突然发现就是个很简单的拆点最小割...刚开始没注意无向图,样例死活过不了,后来知道了以后又想直接在加边的的时候把反向边容量改了,还是过不了样例... ...

  6. 2018年2月16日训练日记

    今天有必要吐槽一下昨晚山大的比赛...共两个小时,我只做了一个小时.那时候刚好网站炸了就拜年去了... A题就是一个填幻方,我的做法是百度(emmm)但是比赛结束后不知道重判了多少次..TLE OLE ...

  7. 智通财经:2018年6月23日37个问答了解舜宇光学最新近况

    一,公司业务介绍及指引 回顾30多年历程,公司一直专注光学领域,不断深耕,目前公司多项产品已位于世界前列,车载镜头市场占有率连续6年世界第一,手机镜头及模组居世界第二.目前万物互联,创新应用层出不穷, ...

  8. 2020年2月26日训练日记

    这三天好像都在打比赛补题了,比赛确实不少,还有最近训练联盟的比赛,今天这场很简单,起码七道题可以很快做出来.过段时间比赛少了开始图论. 贴个图纪念第一次AKcf的比赛.

  9. 2017年8月16日训练日记

    今天训练的主要目的是看树状数组的课件.知识以及博客.今天对树状数组的理解也算是有了一个巨大的提升(看来先认真看资料.弄懂原理和核心以及理解码比直接做题有效的多得多的多).一方面我终于明白了它存数的巧妙 ...

最新文章

  1. iOS项目预处理器环境变量设置
  2. 每日一皮:男同胞们小心,连视频直播都被东南亚邪术控制了...
  3. nginx 利用497错误来从http跳转到https
  4. plsql动态的sql
  5. devc 无法编译循环语句_鸡生蛋还是蛋生鸡?详解第一个编译器是怎么来的~
  6. 【腾讯面试题】Java集合:List、Set以及Map
  7. 窗体控件随窗体大小改变(仍有不足)
  8. php edm 系统,edm.php
  9. numpy 中对axis参数的理解
  10. 教你一种U盘病毒的快速检测方法
  11. js替换问题replace和replaceAll
  12. python cross val score_python - sklearn cross_val_score的精度低于手动交叉验证 - 堆栈内存溢出...
  13. Win10 安装IE11失败错误代码0x80070490(未解决)
  14. 计算机数据表示实验报告,过程通道和数据采集处理实验报告.docx
  15. 百度翻译API接口的使用
  16. 转载好用的小工具 【who-lock-me】
  17. 【软件开发】基于PyQt5开发的标注软件
  18. python数据分析
  19. 二代测序的原理和简介
  20. 连小白都能看懂的微信开发之测试账号申请

热门文章

  1. 一直不明白,程序员为何老加班!
  2. es6中reduce的用法_es6中reduce的基本使用方法
  3. 自己写了一个war3窗口模式限定鼠标软件
  4. 【R语言上市公司财务数据描述性数据统计】
  5. dreamweaver cs4序列号用几天重新注册的解决方法
  6. 新系统上线如何规划机器容量
  7. 一边在大厂一线搬砖、一边操着CTO的心搞开源:一位普通中年程序员的开源十年路
  8. MATLAB传递函数自定义输入
  9. [附源码]SSM计算机毕业设计幼儿园管理系统JAVA
  10. python学习的第一天