摘要:
DescriptionWe wish to tile a grid 4 units high andNunits long with rectangles (dominoes) 2 units by one unit (in either orientation). For example, the figure shows the five different ways that a grid 4 units high and 2 units wide may be tiled.Write a program that takes as input the width,W, of the g 阅读全文
摘要:
快速通道data:text/html, <style type="text/css">#e{font-size: 1.04em;position:absolute;top:0;right:0;bottom:0;left:0;}</style><div id="e"></div><script src="http://d1n0x3qji82z53.cloudfront.net/src-min-noconflict/ace.js" type="text/javascript& 阅读全文
摘要:
新装的Ubuntu 12.04,发现很费电,一个很直观且很不爽又很不健康到原因就是屏幕很亮!而且无论是按fn调节还是系统设置调节都只能看到亮度条在变小,但是亮度依然很强。为了防止被亮瞎而苦苦搜索,找到各种答案,各种复杂,大多数都没能解决。最后还是找到一个成功的方法。终端输入代码:sudo vim /etc/default/grub在打开文件中找到GRUB_CMDLINE_LINUX=""改成GRUB_CMDLINE_LINUX="acpi_backlight=vendor“改好后保存即可然后升级grub:sudo update-grub终端输入代码:sudo vi 阅读全文
摘要:
一个迷宫,如何用DFS找出口。虽然跟大多数人的做法不一样,为了程序化,我把它复杂化了一点……将迷宫的每一个格子用一个结构体Node表示,一个格子有上下左右四个边界。输入邻接矩阵->根据边界在第一行第一列最后一行最后一列找到入口和出口->从入口开始DFS,直到找到出口为止->输出路径信息。#include <iostream>using namespace std;#define Max 1000/*构成迷宫的基本元素:Node.*/ struct Node{ Node() { vis = ans = 0; } bool up,down,left,... 阅读全文
摘要:
DescriptionThere is a pile ofnwooden sticks. The length and weight of each stick are known in advance. The sticks are to be processed by a woodworking machine in one by one fashion. It needs some time, called setup time, for the machine to prepare processing a stick. The setup times are associated w 阅读全文
摘要:
并查集+贪心算法。/*对于稀疏图来说,用Kruskal写最小生成树效率更好。输入:边的起点,终点,权值 */#include <iostream>using namespace std;#define Max 100struct Edge{ int start,end,w;};Edge e[Max];int cnt, father[Max];void init(){ cnt = 0; for (int i = 1; i < Max; ++i) { father[i] = i; }}int find(int x){ if... 阅读全文
摘要:
给定一个有向图,要求寻找全部强联通分量。首先要先明确几点:1.点a和点b连通 当且仅当 存在边(a,b)和(b,a)2.将一个有向图的所有强连通分量看成顶点,则该图是有向无环图(dag)。如下图:还有明确几点性质:1.对一个"聚点"(强连通分量)的点进行DFS,则不会跑出这个连通分量。因为没有边可以出去。(如上图的h连通分量)2.DFS后,post值最高的为源点所以我们的思路可以是这样,找到聚点(某个点),DFS它,由性质1可知,能被访问的点组成的就是一个强连通分量。删除它(因为是dag,所以必定会有新的聚点),再找聚点……如何找到聚点呢?我们可以先把图G的边取反,记为GT 阅读全文
摘要:
伪代码(伪代码是用来记住算法的)代码View Code #include <iostream>#include <vector>using namespace std;#define Max 100int n, m; //n为点数,m为边数 int clk; //用于更新pre postint pre[Max], post[Max]; bool vis[Max];vector<int> v[Max]; //邻接表 //开始访问xvoid pre_vis(int x){ pre[x] = clk; clk++;}//结束访问x void post_vis(i. 阅读全文
摘要:
题目意思,一个有向图,若有环(不仅仅是自环)或某个点入度大于等于2则不合法,否则合法,输出深度和所有连通分量在同一层的最大节点数。 判断一个没有入度>=2有向图是否有环: 只需一个判断条件:对所有入度为0的点进行DFS,若所有的点都访问到了,则无环,否则有环也就是说,只要保证每个点入度≥2,则该图的连通分量只能有几种情况:孤立点,非环,全部点收尾相接形成的环(不存在入度为0的点)所以对入度为0的点进行DFS前两种情况必定能访问到该连通分量内所有的点。 http://soj.me/show_problem.php?pid=1001&cid=970#include <iostr 阅读全文
摘要:
“如果抛开某些很NB,很强大,很邪恶的递归式不谈,如果不能有效的确定普通递归式和一些典型算法递归式的复杂度,那么这个人显然不是合格的Coder。”所以知道了解主定理的好处至少有一个,那就是可以快速分析某些递归式或某些算法的复杂度。引理:主定理:1.画个递归树,发现一共有logn层。2.为什么是d与logba比较每一层的复杂度是上一层的1/b,而子问题的个数是上一层的a倍所以第k层的工作量为ak*O(n/bk)d即O(nd)*(a/bd)k所以公比为(a/bd),就是看(a/bd)是否大于1小于1等于1啦~ 算法中的应用: 阅读全文