青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 62  文章 - 96  trackbacks - 0
<2025年12月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用鏈接

留言簿(7)

隨筆分類(66)

隨筆檔案(62)

文章分類(31)

文章檔案(32)

友情鏈接

最新隨筆

積分與排名

  • 積分 - 237696
  • 排名 - 108

最新評論

閱讀排行榜

評論排行榜

寫了algorithm頭文件中的2個算法:

find.h
#ifndef FIND_H
#define FIND_H
template <typename ITER , typename T>
ITER find(ITER begin, ITER end, T value)
{
	ITER it;
	for(it = begin; it != end; ++it)
		if(*it == value)
			break;
	return it;
}
#endif


count.h #ifndef COUNT_H #define COUNT_H template <typename ITER , typename T> int count(ITER begin, ITER end, T value) { int sum = 0; for(ITER it = begin; it != end; ++it) { if(*it == value) ++sum; } return sum; } #endif
以后接著寫。
posted @ 2006-09-20 23:54 beyonlin 閱讀(399) | 評論 (3)編輯 收藏
參考文章:
http://www.shnenglu.com/qywyh/archive/2006/08/16/11301.html
http://www.programfan.com/blog/article.asp?id=16879

#ifndef UFSET_H
#define UFSET_H
class UFset
{
	public:
		UFset(int);
		void Union(int ,int);
		int Find(int);
		int & operator [] (int i){return parent[i];}
		int size(){return length;}
	private:
		int length;//集合的個數
		int * parent;
};
UFset::UFset(int len)
{
	length = len;
	parent = new int [length + 1];
	for(int k = 1; k <= length; k++)
		parent[k] = -1;
}
int UFset::Find(int x)
{
	 int i;
	 for(i = x; parent[i] >= 0; i = parent[i]);//搜索根節點
	 while(i!=x)//路徑壓縮
	 {
		  int tmp = parent[x];
		  parent[x] = i;
		  x = tmp;
	 }
	 return i;
}
void UFset::Union(int x,int y)//合并
{
	int pX = Find(x);
	int pY = Find(y);
	if(pX != pY)
	{
		int tmp = parent[pX] + parent[pY];
		if(parent[pX] > parent[pY])
		{
			parent[pX] = pY;
			parent[pY] = tmp;
		}
		else 
		{
			parent[pY] = pX;
			parent[pX] = tmp;
		}
		length--;
	}
}
#endif
posted @ 2006-08-30 00:27 beyonlin 閱讀(515) | 評論 (0)編輯 收藏

動態規劃即是一個重點,又是一個難點。
今天終于做出了一題像樣的動態規劃題。
Problem Id:1163??User Id:beyonlin_SCUT
Memory:100K??Time:0MS
Language:C++??Result:Accepted
http://acm.pku.edu.cn/JudgeOnline/problem?id=1163

The Triangle
Time Limit:1000MS? Memory Limit:10000K
Total Submit:3415 Accepted:1988

Description

7

3 8
8 1 0
2 7 4 4
4 5 2 6 5

(Figure 1)


Figure 1 shows a number triangle. Write a program that calculates the highest sum of numbers passed on a route that starts at the top and ends somewhere on the base. Each step can go either diagonally down to the left or diagonally down to the right.

Input
Your program is to read from standard input. The first line contains one integer N: the number of rows in the triangle. The following N lines describe the data of the triangle. The number of rows in the triangle is > 1 but <= 100. The numbers in the triangle, all integers, are between 0 and 99.

Output
Your program is to write to standard output. The highest sum is written as an integer.

Sample Input

5
7
3 8
8 1 0 
2 7 4 4
4 5 2 6 5

Sample Output
30


分析:
題意簡化為:
從第一行開始走到最后一行,每步可以向下走或右下走。
所求即為從第一行走到最后一行經過的數總和的最大值。
令p[][]存儲input。
5
7
3 8
8 1 0
2 7 4 4
|?????\ |? \
4 5 2 6 5

如上圖,令i為行,j為列,
d[i][j]為從第一行走到第i行第j列的最大值。
對于(i,j)這個點,它可以從不同方向走來,如圖' | '代表從上方走來,' \ '代表從左上方走來。

則動態規則方程為:
???????????????? ?{?????d[i-1][1]+p[i][1]???(j=1)
d[i][j]=Max{???? Max( d[i-1][j-1] , d[i-1][j] ) + p[i][j]???(1<j<i)
????????????????? {???? d[i-1][i-1]+p[i][i]???(j=i)

結果為Max(d[n][j]) , (1<=j<=n)

代碼如下:

#include<cstdio>
int p[100][100];
int d[100][100];
int Max(int a,int b)
{return a>b?a:b;}
int main()
{
	int i,n;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		int j;
		for(j=1;j<=i;j++)
			scanf("%d",p[i]+j);
	}
	d[1][1]=p[1][1];
	for(i=2;i<=n;i++)
	{
		int j;
		d[i][1]=d[i-1][1]+p[i][1];
		for(j=2;j<=i;j++)
			d[i][j]=Max(d[i-1][j-1],d[i-1][j])+p[i][j];
		d[i][i]=d[i-1][i-1]+p[i][i];
	}
	int max=0;
	for(i=1;i<=n;i++)
	{
		if(d[n][i]>max)
			max=d[n][i];
	}
	printf("%d\n",max);
	return 0;
}

posted @ 2006-08-28 10:31 beyonlin 閱讀(614) | 評論 (2)編輯 收藏
今天做出了第一題深度優先搜索題。
至此對廣度和深度有了一個基本的了解。
學ACM總算學到了一點非暴力解決問題的方法。
Problem Id:1154??User Id:beyonlin_SCUT
Memory:32K??Time:155MS
Language:C++??Result:Accepted
http://acm.pku.edu.cn/JudgeOnline/problem?id=1154

LETTERS
Time Limit:1000MS? Memory Limit:10000K
Total Submit:694 Accepted:334

Description
A single-player game is played on a rectangular board divided in R rows and C columns. There is a single uppercase
letter (A-Z) written in every position in the board.
Before the begging of the game there is a figure in the upper-left corner of the board (first row, first column). In every move, a player can move the figure to the one of the adjacent positions (up, down,left or right). Only constraint is that
a figure cannot visit a position marked with the same letter twice.
The goal of the game is to play as many moves as possible.
Write a program that will calculate the maximal number of positions in the board the figure can visit in a single game.

Input
The first line of the input contains two integers R and C, separated by a single blank character, 1 <= R, S <= 20.
The following R lines contain S characters each. Each line represents one row in the board.

Output
The first and only line of the output should contain the maximal number of position in the board the figure can visit.

Sample Input

3 6
HFDFFB
AJHGDH
DGAGEH

Sample Output

6

我的程序:
#include<cstdio> #include<stack> using namespace std; struct node { int row; int col; int dire; }; char p[30][30]; char flag[30]; int incr[4][2]={{0,1},{1,0},{0,-1},{-1,0}}; int main() { int i,row,col; scanf("%d%d",&row,&col); getchar(); char ch[30]; for(i=1;i<=row;i++) { gets(ch); int j; for(j=1;j<=col;j++) p[i][j]=ch[j-1]; } //初始化,外加一層 for(i=0;i<=col+1;i++) { p[0][i]='0'; p[row+1][i]='0'; } for(i=0;i<=row+1;i++) { p[i][0]='0'; p[i][col+1]='0'; } int Maxmove=0;//最大步數 stack<node>path;
????????//棧初始化 int r=1,c=1,dire=0,f=0,move=1; node in; in.row=r; in.col=c; in.dire=dire; path.push(in); flag[f++]=p[r][c]; while(!path.empty()) { if(dire<4) { int r2=r+incr[dire][0]; int c2=c+incr[dire][1]; bool b=true; for(int k=0;k<f;k++)//搜索是否已訪問或路不通 { if(flag[k]==p[r2][c2] || p[r2][c2]=='0') { dire++; b=false; break; } } if(b)//路通 { node in; in.row=r2; in.col=c2; in.dire=dire; path.push(in);//進棧 move++; flag[f++]=p[r2][c2];//標志已訪問 r=r2; c=c2; dire=0; } } else//找到一個解 { if(move>Maxmove) Maxmove=move; move--; dire=path.top().dire+1; //回溯,去除訪問標志 path.pop(); flag[--f]='\0'; if(!path.empty()) { r=path.top().row; c=path.top().col; } } } printf("%d\n",Maxmove); return 0; }

posted @ 2006-08-28 01:23 beyonlin 閱讀(867) | 評論 (0)編輯 收藏

今天在PKU上做了我第一題廣度優先搜索題:
Problem Id:2627??User Id:beyonlin_SCUT
Memory:64K??Time:575MS
Language:C++??Result:Accepted
個人認為算法復雜度應該為O(n^2)或更小。不知是不是這樣。
http://acm.pku.edu.cn/JudgeOnline/problem?id=2627

Gopher and hawks
Time Limit:1000MS? Memory Limit:65536K
Total Submit:900 Accepted:328

Description
A gopher sits in a hole located at (xs, ys) and wants to get to a hole located at (xt, yt). The gopher can run at a constant speed of v m/sec. However, if the gopher is outside of a hole for more than a m minutes he will become a supper to hawks flying over the holes. Can the gopher make it?

Input
The first line of input contains two positive integer numbers: v -- gopher's speed in meters per second and m -- the time after which the gopher becomes prey to hawks if he stays outside a hole. The second line of input contains two floating point numbers: the (xs,ys) coordinates of the gopher starting hole. The third line contains the (xt, yt) coordinates of the target hole. Each Subsequent line of input contains two floating point numbers: the (x,y) coordinates of a gopher hole. All distances are in metres, to the nearest mm.

Output
If the gopher can make it to the target hole, the output line should read "Yes, visiting n other holes.", where n is the minimal number of intermediate holes the gopher has to visit. If the gopher cannot make it the output line should read "No." There are not more than 1000 gopher holes and all coordinates are between -10000 and +10000.

Sample Input

3 1
0.000 0.000
500.000 0.000
179.000 0.000
358.000 0.000

Sample Output

Yes, visiting 2 other holes.

Hint
Sample input 2
5 1
0.000 0.000
0.000 550.000
179.000 0.000
0.000 301.000

Output for sample input 2
No.


我的程序:

#include<cstdio> #include<cmath> #include<queue> using namespace std; struct node { int point; int step; }; double x[1100],y[1100]; bool flag[1100]={false}; int main() { int i,v,t; scanf("%d%d",&v,&t); t*=60; double beginX,beginY,endX,endY; scanf("%lf%lf%lf%lf",&beginX,&beginY,&endX,&endY); int n=1; while(scanf("%lf%lf",x+n,y+n)!=EOF) n++; x[0]=beginX; y[0]=beginY; x[n]=endX; y[n]=endY; node n1;//隊列初始化 n1.point=0; n1.step=0; queue<node> que; que.push(n1); int steps=0; while(true) { if(que.empty()) break; node tmp=que.front(); que.pop();//出隊列 for(i=1;i<=n;i++) { if(!flag[i])//標志是否進過隊列 { double time=sqrt(pow(x[i]-x[tmp.point],2.0)+pow(y[i]-y[tmp.point],2.0))/v; if(time<t) { if(i==n) { steps=tmp.step; goto next; } else { node in; in.point=i; in.step=tmp.step+1; que.push(in);//進隊列 flag[i]=true; } } } } } next: if(steps!=0) printf("Yes, visiting %d other holes.\n",steps); else printf("No.\n"); return 0; }

posted @ 2006-08-24 10:25 beyonlin 閱讀(609) | 評論 (0)編輯 收藏
僅列出標題
共12頁: First 2 3 4 5 6 7 8 9 10 Last 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一区免费| 免费不卡亚洲欧美| 国产精品亚洲成人| 性感少妇一区| 久久爱www| 亚洲高清久久网| 亚洲国产精品成人精品| 欧美欧美天天天天操| 妖精成人www高清在线观看| 一区二区欧美亚洲| 国产精品制服诱惑| 免费观看亚洲视频大全| 欧美激情第六页| 亚洲欧美日韩人成在线播放| 亚洲欧美亚洲| 亚洲大片精品永久免费| 亚洲乱码一区二区| 国产亚洲一区二区在线观看| 欧美黄网免费在线观看| 欧美日韩少妇| 久久久久久婷| 欧美日韩成人在线| 久久久噜噜噜| 欧美日韩美女一区二区| 久久精品中文字幕一区| 欧美成人精品一区| 欧美在线观看视频在线| 开心色5月久久精品| 亚洲一区成人| 免费在线成人| 久久国产精品一区二区| 欧美精品日韩综合在线| 久久精品国产999大香线蕉| 欧美国产日韩在线| 久久久99免费视频| 欧美视频日韩视频| 欧美激情第9页| 国产欧美一区二区三区在线看蜜臀| 欧美国产日韩一区| 国产午夜精品久久久久久免费视| 亚洲人成在线观看一区二区| 黑人巨大精品欧美一区二区| 亚洲视频一区在线| 亚洲人成人99网站| 欧美一区二区| 午夜一区在线| 欧美日韩在线视频一区二区| 欧美国产精品| 狠狠久久综合婷婷不卡| 亚洲欧美经典视频| 亚洲视频中文字幕| 欧美美女bbbb| 亚洲精品1区2区| 亚洲电影av| 久久裸体视频| 久久综合狠狠综合久久综青草| 一本色道久久综合精品竹菊 | 母乳一区在线观看| 亚洲欧美国产三级| 欧美日韩你懂的| 亚洲人成在线播放网站岛国| 在线观看成人小视频| 久久激情五月婷婷| 久久久国产91| 国内精品久久久久久久影视麻豆| 亚洲欧美另类国产| 亚洲专区国产精品| 国产精品久在线观看| 99亚洲伊人久久精品影院红桃| 一本在线高清不卡dvd| 欧美精品在线免费观看| 亚洲黄网站黄| 一本色道久久综合亚洲精品不卡 | 欧美视频一区二| 亚洲九九精品| 亚洲综合999| 国产精品专区h在线观看| 中文日韩欧美| 欧美一区二区三区免费观看| 国产亚洲福利社区一区| 久久久久久久久久久久久久一区| 午夜一区二区三区不卡视频| 国产午夜亚洲精品不卡| 久久综合五月| 99re在线精品| 久久av二区| 亚洲国产精彩中文乱码av在线播放| 牛牛影视久久网| 在线视频一区观看| 久久午夜精品| 亚洲欧洲精品天堂一级| 欧美色欧美亚洲高清在线视频| 亚洲视频中文字幕| 久久综合影视| 一本久道久久综合狠狠爱| 国产精品一区免费在线观看| 久久久精品一区二区三区| 亚洲国产精品va在线看黑人动漫 | 亚洲福利视频网站| 欧美精品国产精品| 亚洲永久免费观看| 欧美黑人国产人伦爽爽爽| 亚洲一区激情| 亚洲大胆人体在线| 国产精品久久久91| 另类图片综合电影| 久久精品五月| 亚洲乱亚洲高清| 欧美中文在线免费| 亚洲欧洲精品一区二区精品久久久| 欧美日韩在线一区二区三区| 这里只有视频精品| 免费观看亚洲视频大全| 亚洲专区欧美专区| 亚洲人成亚洲人成在线观看| 国产农村妇女毛片精品久久莱园子 | 亚洲在线观看| 亚洲第一黄色| 国产欧美日本在线| 欧美日韩另类丝袜其他| 久热re这里精品视频在线6| 中国女人久久久| 亚洲视频一区二区在线观看 | 久久免费视频网| 在线一区观看| 亚洲三级视频| 亚洲国产91色在线| 国产欧美婷婷中文| 国产精品二区二区三区| 免费一区视频| 久久久久久久久久码影片| 亚洲欧美电影在线观看| 日韩一级黄色av| 亚洲精品综合精品自拍| 欧美激情va永久在线播放| 久久久久99| 久久av一区二区| 亚洲欧美一区二区三区在线| 一区二区三区欧美视频| 亚洲国产成人av在线| 国产一区二区三区免费观看| 国产精品一区免费在线观看| 欧美午夜一区二区| 欧美色图首页| 欧美午夜视频| 国产精品久久久久毛片大屁完整版| 欧美日韩亚洲国产一区| 欧美精品麻豆| 欧美日韩视频一区二区三区| 欧美精品久久99| 欧美三区在线观看| 国产精品青草久久| 国产欧美精品xxxx另类| 欧美午夜免费影院| 国产精品乱码久久久久久| 国产精品亚洲欧美| 国内精品久久久久久久影视麻豆| 国内精品久久久久影院优| 在线成人av.com| 亚洲国产岛国毛片在线| 日韩视频精品| 亚洲一区国产| 久久久欧美一区二区| 欧美成人一区二区| 91久久夜色精品国产网站| 99re成人精品视频| 性一交一乱一区二区洋洋av| 久久久综合香蕉尹人综合网| 欧美精品国产一区| 国产欧美精品| 亚洲国产精品激情在线观看| 亚洲日韩中文字幕在线播放| 亚洲私人影吧| 久久久国产亚洲精品| 欧美电影在线免费观看网站| 亚洲精品视频在线观看网站 | 欧美 日韩 国产一区二区在线视频 | 亚洲黄色在线视频| 亚洲一区激情| 麻豆成人在线播放| 亚洲精品中文字幕在线| 午夜激情综合网| 久久综合色一综合色88| 欧美日韩一区二区三| 亚洲欧洲综合另类| 99国产精品国产精品久久| 午夜精品亚洲| 欧美激情第二页| 国产亚洲成精品久久| 亚洲区国产区| 久久er精品视频| 亚洲理伦在线| 玖玖精品视频| 国产精品亚洲欧美| 99精品欧美一区二区三区 | 免费成人av资源网| 国产精品久久久久7777婷婷| 亚洲欧洲av一区二区| 欧美在线视频免费播放| 亚洲精品永久免费|