poj 1088 滑雪–DP or 深搜?

#include<stdio.h>#include<string.h>int map[110][110],step[110][110];int r,c;int dfs(int i,int j){if(step[i][j]!=0)return step[i][j];int max=0,zmax;if(j-1>0&&map[i][j-1]<map[i][j]){zmax=dfs(i,j-1);if(zmax>max)max=zmax;}if(

sgu 176 Flow construction–有源匯 有上下界 最小流

/*SGU 176 Flow construction題意:有些節點(編號1~n,1為源,n為匯)和管道,用來運輸某種物質(substance)某些管道必須滿流,有些不必,找到一個最小流,滿足要求輸入:結束數目 管道數目管道{管道前節點,後節點,最大流量,是否需要滿流(1需要0不需要)}就是求一個最小流http://blog.csdn.net/qq172108805/article/details/7802832有最小流做法*/#include<stdio.h> #include&

可以正處n的區間和-zzuli177

/*求同餘,記錄相關資訊*/#include<stdio.h>#include<string.h>int m[1000010];int n;int main(){int i,shang,a,f,ji,yo,yu;while(scanf("%d",&n)!=EOF){shang=0;f=0;memset(m,-1,sizeof(m));m[0]=0;for(i=1;i<=n;i++){scanf("%d",&a);if(f!=0)continue;a=

sgu 242 Student’s Morning–最大流 或 多重匹配

/*n同學分別來自不同的學校,他們想去學校玩,但是不像一個人去,所以去某個學校的人數應>=2問是否有k個學校滿足要求建邊:[s,學校] 權為2[學校,同學] 權為1[同學,t] 權為1據說這題可以用匹配做,以後看看*/#include<stdio.h>#include<string.h>#define inf 0x7ffffffstruct edge{int u,v,f,next;}e[100010];int head[410],yong;int

poj 1325 Machine Schedule–最小點覆蓋

/*題意:A機器有n(0~n-1)個模式,B機器有m(0~m-1)個模式先有k個任務需要做,可以用A機器的ai模式做或者用B機器的bi模式做任務無先後,換模式序重啟,開始兩個機器都在模式0問最少需要重啟幾次二分圖最小點覆蓋A的模式為X集 B的模式為Y集按任務建邊求最小點覆蓋任務是求最少的重啟次數,也就是最少要工作在幾個模式(除了0模式)只要邊的任何一個端點被選中就行了所以求最小點覆蓋

zzuli1672–二分答案+最大匹配

#include<stdio.h>#include<math.h>#include<string.h>#define max 110int xx[max],yy[max];int v[max*max][max];double map[max*max][max];int pi[max];int fang[max];int m,n,t1,t2,s;double dis(int x1,int y1,int x2,int y2){return sqrt((x1-x2)

poj 2396 Budget–有源匯+有上下界+可行流

/*有源匯 有上下界 求可行流有源匯可以轉化為無源匯:添加一條邊t~s (0,0x7fffffff) 就成了無源匯基本流程是:構造附加網路(添加新源 新匯 分離必要弧)求附加網路的最大流若新源 新匯 相鄰的邊都是滿流,則存在可行流題意:有個表格,給出每行的和以及每列的和 還有某些元素的要求求一個合格表格一個比較詳細的講解

poj 1422Air Raid–最小路徑覆蓋

/*題意:有個城鎮,所有路都是單行道,並且沒有環,所有路都串連在十字路口上現在用最少的傘兵走完這些式子路口,每個只能走一遍很明顯的最小路徑覆蓋最小路徑覆蓋=點數-最大匹配需要拆點 所有式子路口 在X中一個 在Y中一個路把兩個集合中十字路口串連起來求最大匹配 還是匈牙利*/#include<stdio.h>#include<vector>using namespace std;vector<int>v[150];int t,n,m;int match[150

poj 2653 Pick-up sticks–線段相交–vector

/*題意:隨即扔一些棒子,輸出在最上面的棒子(沒有那個棒子壓著它)的編號線段相交問題本體用到了 vector 注意 v.erase(remove_if(v.begin(),v.end(),ok),v.end()); 用法同時 v.erase 返回的是刪除過後,下一個元素的位置,不要再for裡面用 it++

poj 3292 Semi-prime H-numbers

#include<stdio.h>char n[250010]={0};int num[250010];void f(){int i,j;for(i=1;i<=251;++i){if(!n[i]){/*a,b是素數,a*b=c,則c是和數,故(4m+1),(4n+1)是素數,(4q+1)是和數(4m+1)*(4n+1)=4q+116mn+4m+n4+1=4q+14mn+m+n=q為其下標關係*/for(int j=i;((((i*j)<<2)+i+j))<=2

poj 2318 TOYS–點在直線左側還是右側

/*poj 2318 TOYS簡單的計算幾何就是一個矩形的範圍 被n條線段分成n+1個地區然後有m個點的座標,他們歸屬於所在的地區然後輸出各地區內點的個數就是算一下點是線上段左側還是右側用向量的叉積即可保證線段所在的向量的x>0那麼 叉積>0 點在左側 叉積<0 點在右側二分求解即可*/#include<stdio.h>struct point{int x,y;};struct zone{point s,x;int n;}l[5050];int n,

poj 1113 Wall–凸包

/*題也沒讀,大致是這麼個意思:給出若干個點,讓建一個圍牆,包含所有的點,且距所有點的距離不小於l。所以主要就是求凸包這裡有一些講解http://www.byywee.com/page/M0/S634/634173.htmlhttp://www.byywee.com/page/M0/S634/634180.htmlhttp://www.byywee.com/page/M0/S634/634158.html*/#include<stdio.h>#include<stdlib.h&

poj 2023 Choose Your Own Adventure 用隊列廣搜 用棧深搜 用遞迴深搜 三種方法均測試過

題目大意:輸入一個整數n,表示有n組測試資料,每組第一行輸入一個整數x表示該組測試一共有x頁,接下來輸入x行,每行表示一頁,每頁或者以C開頭,或者以E開頭,中間用引號括起一段文字,注意第一行必須以C開頭,以C開頭的末尾輸入兩個數字a,b表示該頁完後可以跳轉到第a頁或第b頁,以E開頭的末尾輸入一個單詞,或者是HAPPY或者是GRISLY(有且僅有一頁以HAPPY結尾),現在要求你根據輸入找出以C開頭以E結尾,且E的行末為HAPPY的路徑,輸出路徑上每一頁中間引號裡面的內容,不包含引號。用隊列廣搜:

poj 2398 Toy Storage –基本上和poj 2318 一樣

/*poj 2398 Toy Storage基本上和2318一樣 但是要求輸出 有t個玩具的地區的個數 t從小到大 需要注意的是 這次的擋板的順序不是岸從左至右的順序了,需要排序簡單的計算幾何就是一個矩形的範圍 被n條線段分成n+1個地區然後有m個點的座標,他們歸屬於所在的地區就是算一下點是線上段左側還是右側用向量的叉積即可保證線段所在的向量的x>0那麼 叉積>0 點在左側 叉積<0

poj 1696 Space Ant–有關極角

/*題意:從最低的點開始,不能向右拐,問能經過多少點?能定是經過所有點了 從最低點開始,求與其極角最小的點,作為新的起點,在需找與這個點成極角最小的點,依次即可*/#include<stdio.h>#include<stdlib.h>struct point {int x,y,n;}dian[60];int n;int dis(point a,point b){return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);}int

矩形嵌套 DP

原先沒看出來,後來發現和議題很像,都是胴體規劃,那題是給你一些點的座標,找到最多的點連成的顯示單調的#include<stdio.h>#include<stdlib.h>struct asd{int a,b,c;}ju[1010];int cmp(const void *a,const void *b){struct asd *c=(struct asd *)a,*d=(struct asd *)b;return c->b-d->b;}int

poj 3304 Segments–直線和線段相交

/*題意:給一些線段 問你是否存在這樣一條直線:所有這些線段在直線上的投影有公用點假設存在 那麼過這個點,做這條直線的垂線,這條垂線過所有線段因為所有線段的投影都覆蓋這點,因為他們的投影有這個公用點麼所以就是找一條直線穿過所有線段所以枚舉任意兩個點組成的直線 看是否滿足要求*/#include<stdio.h>#include<math.h>const double zero=1e-8;struct point{double x,y;};struct

poj 1269 Intersecting Lines–直線相交

/*題意:判斷直線與直線的關係 是一條直線輸出LINE 平行不在一條直線上NONE 相交輸出交點*/#include<stdio.h>struct point{int x,y;};struct line{point p1,p2;int a,b,c;};line ppline(point p1,point p2)//根據兩點求直線{line l;l.p1=p1;l.p2=p2;l.a=p2.y-p1.y;l.b=p1.x-p2.x;l.c=p1.y*p2.x-p1.x*p2.y;

獨木舟上的旅行 貪心

試圖讓最重的和最輕的同坐一條船,不行的話,只能最重的獨用一條船#include<stdio.h>#include<stdlib.h>int per[330];int cmp(const void *a,const void *b){return *(int *)a-*(int *)b;}int main(){int t,n,m,i,ff,tt,zz;scanf("%d",&t);while(t--){scanf("%d%d",&m,&n);zz=0

hdu 4245 A Famous Music Composer–map

#include<iostream>#include<string>#include<map>using namespace std;map<string,string>m;void ini(){m["A"]="";m["A#"]="Bb";m["Bb"]="A#";m["B"]="";m["C"]="";m["C#"]="Db";m["Db"]="C#";m["D"]="";m["D#"]="Eb";m["Eb"]="D#";m["E"]="";

總頁數: 61357 1 .... 21006 21007 21008 21009 21010 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.