摘要:
题目链接:http://lightoj.com/volume_showproblem.php?problem=1377思路:这道题只要处理好遇到"*"这种情况就可以搞定了。我们可以用一个vector向量来记录所有的“*”,然后用一个3维数组来判重,并且对于每个状态都加一个标记,判断是否需要立刻转移,值得注意的是转移过后,vector应该立刻清空。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 const int MAXN =... 阅读全文
摘要:
题目链接:http://lightoj.com/volume_showproblem.php?problem=1412思路:好久没写题解了,有点手生,这题从昨天晚上wa到现在终于是过了。。。思想其实很简单,就是预处理出每一块的最长直径,然后每次询问的时候直接查询就可以了。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 const int MAXN = (100000 + 100); 9 typedef pairPair;10 11 vectorg[MAXN];12 vecto. 阅读全文
摘要:
一些常用的vim编辑器快捷键:h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。按「ctrl」+「b」:屏幕往“后”移动一页。按「ctrl」+「f」:屏幕往“前”移动一页。按「ctrl」+「u」:屏幕往“后”移动半页。按「ctrl」+「d」:屏幕往“前”移动半页。按数字「0」:移到文章的开头。按「G」:移动到文章的最后。按「$」:移动到光标所在行的“行尾”。按「^」:移动到光标所在行的“行首”按「w」:光标跳到下个字的开头按「e」:光标跳到下个字的字尾按「b」:光标回到上个字的开头按「#l」:光标移到该行的第#个位置,如:5l,56l。「x」:每按一次,删除当前字符。「#x」:例 阅读全文
摘要:
非常简单的三行命令就搞定了!$ sudo add-apt-repository ppa:webupd8team/java$ sudo apt-get update$ sudo apt-get install oracle-java7-installer然后在终端运行一下java –version,如果有一下提示:则JDK说明配置成功。 阅读全文
摘要:
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 using namespace std; 14 15 typedef pairPP; 16 typedef pair >PPP; 17 18 19 //*代表弧 20 //~代表空 21 //输入: 22 /* 23 S*MH 24 S*a 25 H*LSo 26 H*~ 27 K*dML 28 ... 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1063思路:最近刚学了java,然后就迫不及待想试试java写大数的好处了,呵呵,果然是很方便啊! 1 import java.math.BigDecimal; 2 import java.util.*; 3 import java.io.*; 4 5 public class Main { 6 7 public static void main(String[] args){ 8 Scanner cin=new Scanner(System.in); 9 ... 阅读全文
摘要:
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26981思路:题目的意思是求给定的起点到终点的最短路径序列,并且这个序列的字典顺序最小。我们可以先求最短路,然后对那些在最短路上的点进行深度优先搜索。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 const int MAXN=55555; 11 const int inf=1g[M... 阅读全文
摘要:
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=27087思路:题目的意思是求S->T的所有路径中花费总和小于给定的P值的所经过的路径上的最大权值。我们可以从起点做一次SPFA,然后求出起点到所有点的最短路径,然后以终点为起点,将边反向,求终点到起点的最短路,然后枚举每一条边即可,求最大值。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define MAXN 22222 8 #define 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4114思路:首先是floyd预处理出任意两点之间的最短距离。dp[state1][state2][u]表示在该状态state1(已经访问过的景点)、state2(手中有的景点的票)、目前所在的位置时所花费的时间的最小值,于是答案就是dp[(1 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define inf 1<<30 9 #define FILL(a,b) memset 阅读全文
摘要:
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25828题意:求所有点到给定的目标顶点的路径上的权值的最大值的最小值。思路:spfa的应用,更新的时候判断max(dist[u],w(u,v)) 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define MAXN 555 8 #define inf 1g[MAXN];19 20 void spfa(int vs)21 {22 FILL(mark,false);2... 阅读全文