The Tourist Guide Mr. G. works as a tourist guide. His current assignment is to take some tourists from one city to another. Some two-way roads connect the cities. For each pair of neighboring cities there is a bus service that runs only between thos…
10099 - The Tourist Guide 题目页:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1040 打不开的可以上国内的:http://acm.sdibt.edu.cn/JudgeOnline/problem.php?id=1080 之前使用 最小生成树的 Kruskal 算法 + 广度优先搜索 改进之后用了 用动态规划技…
解题报告 题意: 有一个旅游团如今去出游玩,如今有n个城市,m条路.因为每一条路上面规定了最多可以通过的人数,如今想问这个旅游团人数已知的情况下最少须要运送几趟 思路: 求出发点到终点全部路其中最小值最大的那一条路. 求发可能有多种.最短路的松弛方式改掉是一种.最小生成树的解法也是一种(ps.prime和dijs就是这样子类似的) #include <iostream> #include <cstdio> #include <cstring> #include <…
1,Vaild Palindrome bool isPalindrome(string& s) { transform(s.begin(), s.end(), s.begin(), tolower); // 把字符全部转换成小写 ; ; while (left < right) { if (!isalnum(s[left])) ++left; else if (!isalnum(s[right])) --right; else if (s[left] != s[right]) return…
UVa和POJ都有这道题. 不同的是UVa要求区分单复数,而POJ不要求. 使用STL做会比較简单,这里纯粹使用指针做了,很麻烦的指针操作,一不小心就错. 调试起来还是很费力的 本题理解起来也是挺费力的,要搞清楚怎样模拟也不easy啊,读题要非常细致. 纯指针的操作挺快的吧. 只是POJ 0ms,而UVa就0.2左右了. 三相链表: 1 仅仅要有叠起来的牌.那么就使用一个down指针指向以下的牌就能够了. 2 使用双向链表,能够方便前后遍历. 3 记得有了更新牌之后.又要又一次開始检查是否须要更…
/* 最大权闭合图模板类型的题,考验对知识概念的理解. 题意:如今要辞退一部分员工.辞退每个员工能够的到一部分利益(能够是负的),而且辞退员工,必须辞退他的下属.求最大利益和辞退的最小人数. 最大权闭合图模板类型. 求出最大权后沿着源点s,dfs到的点就为最小的人数. 证明/* 转载:利用一个经典的trick:多keyword > 建图前,对全部b[i],运行变换b[i]=b[i]*10000-1.然后.会惊异地发现, > 此时最大流所相应的方案就是满足辞退最少人数的了. > 为什么?显…
题目传送门 /* 题意:在坐标轴上一群蚂蚁向左或向右爬,问经过ts后,蚂蚁的位置和状态 思维题:本题的关键1:蚂蚁相撞看作是对穿过去,那么只要判断谁是谁就可以了 关键2:蚂蚁的相对位置不变 关键3:order数组记录顺序 */ #include <cstdio> #include <algorithm> #include <iostream> #include <cstring> #include <string> #include <cm…
题目传送门 /* 题意:n个头,m个士兵,问能否砍掉n个头 贪心/思维题:两个数组升序排序,用最弱的士兵砍掉当前的头 */ #include <cstdio> #include <cstring> #include <algorithm> using namespace std; ; const int INF = 0x3f3f3f3f; int a[MAXN], b[MAXN]; int main(void) //UVA 11292 The Dragon of Loo…
这一题题目有点坑,注意这句话: 这代表了其圆心就是矩形的中心! 然后就可以推公式: 可知: x = 200/(a+2atan(b/c)*r); r = sqrt(a*a + b*b); 所以有AC代码如下: #include <iostream> #include <cstdio> #include <cmath> using namespace std; int main() { ; double a, b; while(scanf("%lf : %lf&q…
链表测试框架示例: // leetcodeList.cpp : 定义控制台应用程序的入口点.vs2013 测试通过 // #include "stdafx.h" #include <Windows.h> #include <iostream> using namespace std; struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(nullptr){}; }; v…