自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 64位win7使用debug的方法 (汇编)

首先你要下载一个DOSBOX程序 这个程序是一个dos模拟器 这个程序的制作目的是运行经典的DOS游戏 -。- 下载地址:http://www.dosbox.com/download.php?main=1 其次下载一个Win732位的debug程序 下载地址:http://u.115.com/file/b3mmegwu 举例将debug放到D盘的根目录 双击运行DOSBox 0.74

2013-04-22 20:46:57 896

原创 poj1470(Closest Common Ancestors)

Closest Common Ancestors Time Limit: 2000MS   Memory Limit: 10000K Total Submissions: 12677   Accepted: 4140 Description Write a program that takes as input a rooted tree a

2013-04-18 20:47:57 653

原创 uva10158(War)并查集

#include using namespace std; int f[20005]; int n; int find(int x) { return f[x]==x?x:f[x]=find(f[x]); } int areFriends(int x,int y) { if(find(x)!=find(y)&&find(x)!=find(y+n)) return -1; if(find(x)

2013-04-18 08:10:42 564

原创 poj2236(Wireless Network)

Wireless Network Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 13373   Accepted: 5663 Description An earthquake takes place in Southeast Asia. The ACM (Asia

2013-04-17 22:41:02 625

原创 poj1195(二维树状数组)

Mobile phones Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 12189   Accepted: 5590 Description Suppose that the fourth generation mobile phone base stations

2013-04-17 12:44:37 548

原创 poj2352Stars(树状数组)

分析:由于输入数据是以y为第一关键递增输入,以x为第二关键字递增输入,因此,可以直接对x用一维树状数组。 #include #include int count[32005]; int c[32005]; int lowbit(int x) { return x&(-x); } void change(int x) { int i; for(i=x;i<32005;i+=lowbit(i)

2013-04-16 22:34:38 592

原创 poj1679(The Unique MST)Kruskal

最近略忙,就不写题意思路什么的,直接上代码。 #include #include struct edge { int u,v,w,flag; }p[4952]; int n,m; int f[101]; int used[101]; int cmp(const void*aa,const void*bb) { return ((struct edge*)aa)->w-((struct edg

2013-04-14 10:27:07 516

原创 uva167(无异于八皇后问题)

#include int c[10],a[10][10],max; void search(int cur) { int i,j,tmp; if(cur==8) { tmp=0; for(i=0;i<8;i++) tmp+=a[i][c[i]]; if(tmp>max) max=tmp; } else for(i=0;i<8;i++) { int ok=1;

2013-03-24 21:44:17 557

原创 uva539(卡坦岛)-回溯法

#include #include int map[26][26],vis[26][26]; int n,m,pathmax; void dfs(int i,int d) { if(d>pathmax) pathmax=d; for(int j=0;j<n;j++) { if(!vis[j][i]&&!vis[i][j]&&map[i][j]&&i!=j) { vis[i][j

2013-03-23 12:54:53 586

原创 uva639(放车问题)-回溯法

#include char s[8]; int map[5][5],n; int ok(int a,int b) { for(int i=a;i>=0;i--) if(map[i][b]<0) return 0; else if(map[i][b]==0) break; for(int j=b;j>=0;j--) if(map[a][j]<0) return 0; els

2013-03-23 12:52:45 693

原创 八皇后问题(回溯法)

记得以前c综合程序设计做过这题,记不清当时是用什么做的,总之代码没这么清晰易懂。        思路:经过思考可以发现,恰好每行每列各放置一个皇后。设用c[x]表示第x行皇后的列编号,则问题变成了全排列生成问题。而0~7的全排列只有8!=40320个,故用枚举法的话,枚举量不会超过它。使用递归枚举法实现这个算法,也即回溯法。 法一: #include int c[10]; void sear

2013-03-19 22:09:50 734

转载 大牛给的ACM进阶建议

一位高手的建议: 一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功. 训练过ACM等程序设计竞赛的人在算法上有较大的优势,这就说明当你编程能力提高之后,主要时间是花在思考算法上,不是花在写程序与debug上。 下面给个计划你练练: 第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常

2013-03-10 21:04:56 585

原创 uva10608

题意:一个市镇有N个居民。已知有若干对是朋友,根据著名的说法“我的朋友的朋友也是我的朋友“,可以推导出如果A和B是朋友,并且B和C是朋友,则A和C是朋友。请你计算在最大的朋友团体中有多少人。 思路:典型的并查集,没什么好说的。 #include using namespace std; int f[30005],s[30005]; int find(int x) { return f[x]=

2013-03-08 21:30:26 470

原创 LA3644(易爆物)

题意:有一些化合物,每个化合物都由两种元素组成的(每个元素用一个大写字母表示)。你是一个装箱的工人,从实验员那里按照顺序依次把一些简单化合物装到车上。但这里存在一个安全隐患:如果车上存在k个简单的化合物,正好包含k中元素,那么它们将组成一个易爆的混合物。为了安全起见,每当你拿到一个化合物时,如果它和已装的化合物形成易爆混合物,你就应当拒绝装车;否则就应该装车。变成输出有多少个没有装车的化合物。

2013-03-08 21:09:46 583

原创 uva11401(Triangle Counting)

题目大意:计算从1,2,3,...,n中选出3个不同的整数,使得以它们为边长可以构成三角形的个数。 思路:用一般的方法需要三重循环,时间复杂度为O(n^3),肯定超时,因此可用数学的方法对问题进行分析。设最大边长为x的三角形有c(x)个,另外两边长分别为y,z,则可得x-y 由以上分析可得,最大边长不超过n的三角形数目为f(n)=c(1)+c(2)+...+c(n)。 #include lo

2013-03-02 16:29:34 846

原创 uva11462(Age sort)(计数排序)

题目大意:给定若干个居民的年龄(都是1-100之间的整数),把它们按照从i型奥到大的顺序输出。输入第一行为整数n(0 思路:数据太大,内存限制太紧,整数范围很小,故考虑计数排序(线性时间排序) #include//492ms #include int main() { int n,x,c[101],i,j; while(scanf("%d",&n)==1&&n) { memset(c

2013-02-28 20:31:06 475

原创 uva11464Even Parity(偶数矩阵)

题目大意:给你一个n*n的矩阵,每个元素不是0就是1,你的任务是把尽量少的0变成1,使得每个元素的上下左右元素(如果存在的话)之和均为偶数。对于每组测试数据,输出被改变的元素的最小个数,如果无解,应输出-1。 思路:枚举第一行变得情况,第二行完全可以由第一行计算出来,以此类推计算接下来各行,时间复杂度O(2^n*n^2) #include #include #define INF 100000

2013-02-27 11:57:49 475

原创 poj2823(线段树)

题目大意:给定一个长度为N的数字序列,要求你求出每个长度为K的区间内的最小值与最大值。 #include #include #include #define maxn 1000010 #define MAX INT_MAX #define MIN INT_MIN struct node { int l,r;//线段树区间 int mid;//线段树区间中间值 int min,max;//

2013-02-24 15:45:19 515 1

原创 poj2777Count color(线段树)

题目大意:给你一个长度为n的线段(n<1000000),还有t种颜料(m<30)。有以下两种操作: 1.C a b c :将从a到b的线段涂上c色; 2.P a b:询问从a到b的线段上有多少种颜色。 #include #include #define maxn 100010 struct node { int l,r;//线段树区间 int mid;//线段树区间中间值 int ma

2013-02-24 10:54:18 223

原创 poj3264(RMQ问题的线段树实现方法)

题目大意:第一行输入两个整数n,m;第二行输入一个n个数的序列,第三行开始的m行,每行两个数a,b,分别表示一个操作,对于每个操作,要求输出该区间的最小值和最大值。#include #include #define maxn 50010 #define MAX 1000005 #define MIN 0 struct node { int l,r;//线段树区间 int mid;//线段树区间

2013-02-24 10:47:37 349

原创 poj3468(线段树成段更新)

题目大意:输入第一行,两个整数n,m,第二行给出n个数的一个序列,接下来m行,每行给出一个操作。操作有两种形式,1."C a b c" 表示将 Aa, Aa+1, ... , Ab.加上c. 2."Q a b" 输出区间[a,b]的和。 #include #define maxn 100010 struct node { int l,r;//线段树区间 int mid;//线段树区间中间值

2013-02-24 10:37:07 298

原创 poj2243Knight Moves(Floyed-Warshall)

思路:将棋盘上的每个方格视为节点,在一次跳马可达的节点间连边,边权为1,这样就将“马”周游路线问题转化为求图的最短路径问题。设最短路径矩阵为w,其中w[x1][y1][x2][y2]为“马”由方格(x1,y1)移动至方格(x2,y2)的最小步数,简称最短路径矩阵。 代码:(192k,16ms)#include int w[9][9][9][9]; #define inf 99999999 voi

2013-02-24 10:21:19 414 1

空空如也

空空如也

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

TA关注的人

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