大家都说,搜索是算法的基础.今天最这题就有体会了.在n个顶点里选择m个顶点,求最小生成树.用到了深搜的回溯.所有情况都能枚举. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ,INF=0x3f3f3f3f; int dist[N],Map[N][N],pre[N]; //向外延伸的最短边长,记录图信息,记录连接信息…
#include <stdio.h> #include <set> #include <string.h> #include <algorithm> using namespace std; ; ; double minans; int vis[maxn];//记录选中的点 int mp[maxn][maxn], ans[maxn][maxn]; int min_road[maxn]; int Prim(int n) { ; int dis[maxn]; i…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2489 思路:由于N, M的范围比较少,直接枚举所有的可能情况,然后求MST判断即可. #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <vector> using namespac…
Minimal Ratio Tree HDU - 2489 暴力枚举点,然后跑最小生成树得到这些点时的最小边权之和. 由于枚举的时候本来就是按照字典序的,不需要额外判. 错误原因:要求输出的结尾不能有空格. #include<cstdio> #include<cstring> #include<vector> using namespace std; ],ok2[]; ]; int num,n,m; ],b[][]; vector<int> vec; dou…
想到枚举m个点,然后求最小生成树,ratio即为最小生成树的边权/总的点权.但是怎么枚举这m个点,实在不会.网上查了一下大牛们的解法,用dfs枚举,没想到dfs还有这么个作用. 参考链接:http://blog.csdn.net/xingyeyongheng/article/details/9373271 #include <stdio.h> #include <string.h> #include <set> #include <vector> #incl…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2489 Problem Description For a tree, which nodes and edges are all weighted, the ratio of it is calculated according to the following equation. Given a complete graph of n nodes with all nodes and edges…
题目:http://poj.org/problem?id=1753 这个题在開始接触的训练计划的时候做过,当时用的是DFS遍历,其机制就是把每一个棋子翻一遍.然后顺利的过了.所以也就没有深究. 省赛前一次做PC2遇到了差点儿一模一样的题,仅仅只是是把棋盘的界限由4X4改为了5X5,然后一直跑不出结果来,可是当时崔老湿那个队过了,在最后总结的时候.崔老湿就说和这个题一样,只是要枚举第一行进行优化. 我以为就是恢复第一行然后第二行以此类推,只是手推一下结果是6不是4,就知道这个有问题. 问了崔老湿,…
题目大意:几根棒子能否组成一个正方形 Sample Input3           //测试组数4 1 1 1 1   //棒子数目以及每根棒子的长度5 10 20 30 40 508 1 7 2 6 4 4 3 5 Sample Output yesnoyes 虽然不用pos直接从0开始枚举也可以有答案,但会超时,加个pos,以前dfs过的情况就不会再出现了,想起以前bc的一道题也是这样 #include<cstdio> #include<iostream> #include&…
有一个形似央视大楼(Orz)的筒,从A口可以放球,放进去的球可通过挡板DE使其掉进B裤管或C裤管里,现有带1-10标号的球按给定顺序从A口放入,问是否有一种控制挡板的策略可以使B裤管和C裤管中的球从下往上标号递增. 输入: 第一行输入数据组数N.接下来N行为N组具体数据,每组数据中有10个整数,代表球的放入顺序. 输出: 对于每组数据,若策略存在,输出YES:若不存在,输出NO [分析]:因为每个球都有向左或者向右两种状况,数据量比较小,可以直接进行dfs 全部的情况进行遍历. [代码]: #i…
看题传送门:http://poj.org/problem?id=1753 DFS枚举的应用. 基本上是参考大神的.... 学习学习.. #include<cstdio> #include<iostream> using namespace std; int n,s,d,ans; bool a[5][5],flag=false; //判断全部一样的情况 bool alllike() { for(int i=0;i<4;i++) for(int j=0;j<4;j++) i…