自定义博客皮肤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 890

原创 poj1470(Closest Common Ancestors)

Closest Common AncestorsTime Limit: 2000MS Memory Limit: 10000KTotal Submissions: 12677 Accepted: 4140DescriptionWrite a program that takes as input a rooted tree a

2013-04-18 20:47:57 642

原创 uva10158(War)并查集

#includeusing 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 558

原创 poj2236(Wireless Network)

Wireless NetworkTime Limit: 10000MS Memory Limit: 65536KTotal Submissions: 13373 Accepted: 5663DescriptionAn earthquake takes place in Southeast Asia. The ACM (Asia

2013-04-17 22:41:02 618

原创 poj1195(二维树状数组)

Mobile phonesTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 12189 Accepted: 5590DescriptionSuppose that the fourth generation mobile phone base stations

2013-04-17 12:44:37 541

原创 poj2352Stars(树状数组)

分析:由于输入数据是以y为第一关键递增输入,以x为第二关键字递增输入,因此,可以直接对x用一维树状数组。#include#includeint 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 586

原创 poj1679(The Unique MST)Kruskal

最近略忙,就不写题意思路什么的,直接上代码。#include#includestruct 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 511

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

#includeint 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 545

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

#include#includeint 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 582

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

#includechar 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 684

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

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

2013-03-19 22:09:50 731

转载 大牛给的ACM进阶建议

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

2013-03-10 21:04:56 577

原创 uva10608

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

2013-03-08 21:30:26 464

原创 LA3644(易爆物)

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

2013-03-08 21:09:46 580

原创 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)。#includelo

2013-03-02 16:29:34 838

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

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

2013-02-28 20:31:06 470

原创 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 466

原创 poj2823(线段树)

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

2013-02-24 15:45:19 503 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 100010struct node{ int l,r;//线段树区间 int mid;//线段树区间中间值 int ma

2013-02-24 10:54:18 216

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

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

2013-02-24 10:47:37 336

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

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

2013-02-24 10:37:07 288

原创 poj2243Knight Moves(Floyed-Warshall)

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

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

空空如也

空空如也

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

TA关注的人

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