自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

XD

为了将来,拼了!~

  • 博客(27)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 Uva305——Joseph

约瑟夫环问题。#include using namespace std;int a[14];int main(){ int n; a[1] = 2; for(int i = 2; i < 14; i++) { for(int m = i + 1; ; m++) { int s = 0, j = 2 * i; while(1) { i

2016-03-27 19:36:51 757

原创 Uva299——Train Swapping

简单的题目。求冒泡排序交换的次数。#include using namespace std;int data[60];int main(){ int n, l; cin >> n; while(n--) { cin >> l; for(int i = 0; i < l; i++) cin >> data[i]; int ans = 0; fo

2016-03-27 18:55:01 601

原创 Uva160——Factors and Factorials

求n!的质因子个数。也就是2~n每个数的质因子的个数之和。输出的格式比较麻烦,需要注意。代码:#include #include #include using namespace std;int vis[110], prime[100], count = 0;int ans[100];void prime_table() //获取质数表{ int i,

2016-03-24 23:32:32 1130

原创 Uva216—— Getting in Line

题目的意思求n个点连起来的最短距离。n最大为8,直接枚举排列的所以情况,然后求最短的距离,最短距离等于连线上的每两个点的距离加上16的和.点的排序可以多种情况,只要找到最短距离就行。枚举排列用next_permutation函数。代码:#include #include #include #include using namespace std;int n,

2016-03-19 11:46:21 410

原创 Uva208——Firetruck

题目的意思:给你节点k,然后输入的是无向图,求1到节点k的所以路径。首先用Floyd算法算出两两之间的是否存在路径。然后在递归求出路径的时候可以很快的判断是否有路到达k节点。代码:#include #include using namespace std;const int maxn = 25;const int INF = 0xfffffff;int ma

2016-03-16 22:15:43 384

原创 Uva10048——Audiophobia

题目的意思,无向图中求某个点到另外一个点的路径上的最大噪声值,最大噪声值比其他路径上的最大噪声值小,比该路径上的噪声大。最后问的是有q个问题,每个问题存入两个点,求这两点之间的最大噪声值,直接用Floyd算法。代码:#include #include using namespace std;const int INF = 0xfffffff;int c, s,

2016-03-15 20:03:33 633

原创 Uva247——Calling Circles

求有向图的传递闭包,并输出各个连通分量的成员。输出各个连通分量,可以递归输出。代码:#include #include #include #include #include using namespace std;const int maxn = 40;int n, m;vector vec;bool data[maxn][maxn], vis[ma

2016-03-14 23:27:12 571

原创 Uva10603——Fill

求的是倒水量最小,不是次数。代码:#include #include #include #include using namespace std;struct Node{ int v[3], dist; bool operator < (const Node& a)const { return dist > a.dist; }};const int

2016-03-12 23:16:51 536

原创 Uva1151——Buy or Build && POJ2784——Buy or Build

最小生成树的应用。输入n个城市(1~n),和q个方案,接下来q行的第一个数为该方案中的城市数a,第二个数为用该方案需要的钱b,接下来a个数为城市的编号。接下来n行为第n个城市所在的坐标位置。在这些城市之间建设道路,使得两两城市直接连通。在两个城市之间建设道路,需要花费 两个城市之间的坐标的欧几里德距离,若买方案,则方案内的城市已经连通。先进行一次求最小生成树,再枚举方案再求最小生成

2016-03-12 16:29:03 793

原创 Uva1395——Slim Span

这题,最小生成树的应用,只是需要稍微变形一下。输入结点数为n,边数为m,对每条边进行从小到大排序,然后枚举枚举每一条边,从该边起到最后这些边中求最小生成树并找到权值最大的边。不断的更新最大权值与枚举的边的差值。代码:#include #include using namespace std;const int maxn = 110;int m, n;

2016-03-12 14:20:18 651

原创 Uva108——Maximum Sum

题目的意思,求矩阵的的子矩阵的最大和。暴力枚举行的组合,将各列数值相加,再查找最大连续和,更新最大值即可。代码:#include #include #include using namespace std;const int maxn = 110;int data[maxn][maxn], n;int main(){// freopen("1.txt

2016-03-10 14:46:03 583

原创 Uva524——Prime Ring Problem

简单的回溯的应用。代码:#include #include #include using namespace std;int data[50], vis[50], n;int is_pre[50];void dfs(int x){ if(x == n && is_pre[data[0] + data[n - 1]]) { cout << data[0];

2016-03-10 13:09:39 409

原创 Uva10976——Fractions Again?!

简单的题目,很容易看懂。主要是枚举,但是枚举的范围不确定。从x >= y , 推出 1 / x 然后就是枚举,暴力过。代码:#include #include #include using namespace std;int data[15000];int main(){// freopen("1.txt", "r", stdin); int k,

2016-03-08 19:26:16 501

原创 Uva11057——Exact Sum

简单的题目,在N个数中找到差值最小的并且相加等于所给的 M。直接暴力枚举,数据量较小。代码:#include #include #include using namespace std;int data[10010];int n, money;int main(){// freopen("1.txt", "r", stdin); int i, j; w

2016-03-08 19:06:28 479

原创 Uva11059——Maximum Product

暴力枚举,数据量相对较小。不过__int64 这个类型过不了。代码:#include #include using namespace std;int data[20];int n;long long Max, ans;int main(){// freopen("1.txt", "r", stdin); int i, j, t = 0; while(cin

2016-03-08 18:39:00 246

原创 Uva725——Division

简单的题目,暴力枚举可以过。只不过我第一次用的是五重循环枚举一直WR,2到79 的答案都对,就是不过,不知道为毛。。后来改用直接枚举其中一个数。代码:#include #include #include using namespace std;int ans[10];bool flag;int cheak(int x, int y){ memset(ans, 0

2016-03-07 22:15:25 250

原创 Uva12118——Inspector's Dilemma

这题的意思:给你V个城市,两两城市有双向的通路,给你E个边,求最短路径走过这E个边。边长为T。一开始以为是BFS来求解,但是怎么都想不到切入口。后面看到欧拉两个字,恍然大悟,这题就是无向图的欧拉回路的求解。只不过,还需要判断图是否连通,存在多个连通图,需要将他们连通起来。然后判断各个节点的度,奇数的节点大于2,则需要加上 奇数点 / 2 - 1个边,才能使图存在欧拉回路。下面的代码

2016-03-07 15:56:22 688 4

原创 Uva1600——Patrol Robot

这题:找最短路径,只是可以跨越障碍,不能连续跨越K个障碍。可以通过BFS做。一开始我没有用vis数组,是在输入的矩阵中操作的,结果一直WR,不明白,为毛加了vis就可以,同样是标记的,自己还是有待提高。下面AC代码:#include #include #include using namespace std;struct node{ int x, y,

2016-03-05 17:47:51 373

原创 Uva439——Knight Moves

简单的BFS。只是国际象棋的棋盘有点特殊,坐标需要转换下。AC代码:#include #include #include using namespace std;struct node{ int x, y, count;};int xy[8][2] = {-1, -2, -2, -1, -2, 1, -1, 2, 1, 2, 2, 1, 2, -1, 1, -2};

2016-03-05 14:28:47 293

原创 Uva536——Tree Recovery

根据先序遍历以及中序遍历,构造二叉树,输出后序遍历。代码:#include #include #include using namespace std;struct node{ char c; struct node *lchild, *rchild;};node *Root;int len;char pre[30], in[30];void crea

2016-03-05 13:44:48 361

原创 Uva712——S-Trees

输入的第一行数字,是该满二叉树的叶子节点。接下来m行是查找叶子节点的数值的,0 向左走, 1 向右走。 用数组来表示二叉树。根节点为k,左孩子为2*k + 1,右孩子为2*k + 2。代码:#include #include #include using namespace std;char str[8][5];int num[300], ans[150

2016-03-05 11:35:03 351

原创 Uva673——Parentheses Balance

题目很简单,栈的应用。需要注意的是空串也是合法的。AC代码:#include #include #include #include using namespace std;int main(){// freopen("1.txt", "r", stdin); int n; bool ans; char str[140]; cin >> n; getchar

2016-03-05 10:25:17 326

原创 Uva1572——Self-Assembly

题目的意思:给你N个正方形,正方形每条边有编号,为一个大写字母加上一个“+”或者“-”,还有一个编号是“00”,“00”边不能连接其他的正方形,而想要连接需要字母相同,符号相反,问能不能无限的铺。下面是代码,有解析。主要是dfs来判断是否存在环。代码:#include #include using namespace std;int c[55];int G[55][55];

2016-03-05 09:14:11 602

原创 Uva10562——Undraw the Trees

可以用DFS来做。找到子树的根,进行深搜。代码:#include #include #include #include using namespace std;const int maxn = 200 + 10;int n;char buf[maxn][maxn];void dfs(int x, int y){ cout << buf[x][y] <<

2016-03-04 09:27:20 650 2

原创 Uva10129——Play on Words

这题,可以转换成有向图的欧拉回路的判断。有向图的判断方法:所以点的入度等于出度或者有一个点的出度比入度大1有一个点的入度比出度大1,剩下的点入度等于出度。不过还有一个前提,就是图是连通的,可以用DFS来判断或者并查集。我用的是并查集。代码:#include #include using namespace std;struct node{ int indegre

2016-03-03 17:40:29 284

原创 Uva10305——Ordering Tasks

简单的拓扑排序,模拟一下就可以了。AC代码:#include #include #include using namespace std;const int maxn = 110;int n, m;vector vec[maxn];int ans[maxn];bool cheak(){ for(int i = 1; i <= n; i++) if(!an

2016-03-01 20:51:49 286

原创 Uva1103 World finals 2011——Ancient Messages

这题是2011年的World finals的题目。判断由01矩阵组成的图像是属于哪个古埃及的文字。从6个图形可以看出,每一个图形里面的  空洞  都是不同的。可以从空洞的个数来判断属于哪个文字。矩阵组成的每一个文字都是完整的,两个文字之间不会有连接。题目的给是01矩阵每四位构成的十六进制的矩阵,需要转换一下,这个不难。01矩阵外围再围上一圈 的 0,一开始进行一次深搜dfs(0

2016-03-01 19:11:02 506

SkinH_VC。rar

VC换肤库,可以让你的界面焕然一新。支持各种环境,各种开发工具

2015-04-26

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除