I Hate It(hdu1754)

不多說和上題差不多,同樣的模板。。好好想想。。#include<stdio.h>#include<stdlib.h>#include<string.h>#define N 200000int max(int a,int b){a=a>b?a:b;return a;}struct point {int x,y;int max,sum;}a[N*3];void tree(int t,int x,int

hdu(2575)Ocean Currents

題目大意:        一隻小船在水中行走,想要到達目的地,然後有八個方向,用0 …… 7表示,分別是北,東北,東,東南……,而它在任何一點都有一個方向,而當它的下一步走的方向跟它此刻自己的順風方向相同的時候(即下一步的方向跟它的數字相同),走這一步不需要耗費能量,否則耗費的能量為1個單位能量。然後要求這隻小船到達目的地所需的最小能量。解題思路:        

hdu(2266)深搜

本題要求在原字串中添加一些+、-號,使所得的值所給定值相同。這提示到很明顯的搜尋題。注意搜尋的方法。   #include"stdio.h"#include"string.h"__int64 count,m;char a[100];int b[100],k;void dfs(int x,__int64 y){ int i; if(x==k&&y==m) {  count++;  return ; } __int64

poj2312 Battle city (優先隊列)

#include<stdio.h> #include<string.h>#include<queue>usingnamespace std; int dir[4][2]={-1,0,  1,0,  0,1,   0,-1}; char map[1000][1000]; int visit[1000][1000]; int n,m; structpoint  { int x,y,time; friendbool operator<(point

hdu(1164)

這題不利用素數更簡單。。#include"stdio.h"#include"string.h"int map[70000];int main(){ int m,i,j; while(scanf("%d",&m)!=EOF) {  j=1;  for(i=2;i<=m;)  {   while(m%i)    i++;   m=m/i;   map[j++]=i;  }  for(i=1;i<j;i++)  {   printf("%d",map[i]);   if(i<

hdu2822((Dogs))優先隊列

描述:雖然水題,但錯了幾次,才對。。要明白優先隊列的原理。。就很容易掌握了,得心應手。。題意:起點到終點,’X‘處不用時,’ . '用時為1,求到達終點的最小時間。 優點:因為目前狀態的下一個狀態不能確定,所以如果用普通廣搜的話,必須將整個圖遍曆一遍,但是此題的n*m可能為1000*1000,必定逾時。所以考慮用優先隊列。即,每次探查到的點入隊列時,不是直接放到隊尾,放在隊列中合適的位置(此元素前面的元素比它“小”,後面的元素比它“大”),這樣才能保證,首先探查到終點的路徑為所需“最短”路徑。

hdu(1533)Going Home(poj2195)

對於本題,應用KM()演算法計算最大權值,但因為要求花費最小,則應將把人到房子的距離取負,其他的距離都是負無窮,則就可以利用KM最後的結果再加上個負號。。應注意的是,n是人的個數,再根據人的座標,計算出每個人到每個房子的距離存入map中。。 #include"stdio.h"#include"string.h"#include"math.h"int map[1000][1000];int sx[1000],sy[1000];int lx[1000],ly[1000];int link[1000]

hdu1010(Tempter of the Bone)

題意:輸入一個n*m的迷宮,和一個T:可以在迷宮中生存的最大時間。S為起點,D為終點。並且,每個格子只能踩一次,且只能維持一秒,然後該塊地板就會塌陷。所以你必須每秒走一步,且到D點時,所用時間為T。用深搜。單用深搜,逾時,所以,後來的剪枝非常重要!!!//這題有2個重要的剪枝要學習 //第一個是奇偶剪枝 ,//第二個是步數剪枝.深搜要返回,用回朔法,深搜時,標記前進,返回時解除標記。#include<stdio.h>#include<math.h>#include<

hdu1242 優先隊列加廣搜

http://acm.hdu.edu.cn/showproblem.php?pid=1242 題意:圖中有多個點r,要求從r到a的最短路。用bfs從a開始搜,每次搜上下左右四個位置,並且入隊列。直到隊列為空白,那麼就不存在路徑。,搜到x,則額外加1,搜到r,直接返回步數加一,否則步數加1.簡單的說一下啊;題中可能有多個r,但是只有一個a,所以我們就從a搜到r;優先隊列只是定義不同,用的時候和普通隊列差不多:  掌握住原理一切esay;; #include<stdio.h>#inclu

poj(1274)The Perfect Stall

//注意二分圖中,m對應右邊,牛棚,n對應左邊,牛。//對每頭牛尋找匹配的時候,都要將mark初始化一次。題意:有n頭奶牛和m個牛棚,其中每頭奶牛隻願意進它願意進的牛棚。也許每頭牛隻願進一個棚,也許一個棚只容納一頭牛。現在給定n頭牛和m個牛棚,並且給定每頭牛願意進的牛棚編號,請讓你設計一種牛對棚的方案,使牛——棚的匹配數最大,並輸出這個最大匹配值。思路:其實這題就是求一個二分圖最大匹配。二分圖:一個圖中的點可以分為兩個點集,圖中每條邊的兩端點分屬不同點集,則圖為二分圖。匹配的一般定義:匹配是二分

優先隊列相關知識

empty() 如果隊列為空白返回真pop() 刪除對頂元素push() 加入一個元素size() 返回優先隊列中擁有的元素個數top() 返回優先隊列對頂元素在預設的優先隊列中,優先順序高的先出隊。在預設的int型中先出隊的為較大的數。使用方法:標頭檔:#include <queue>聲明方式:1、普通方法:priority_queue<int>q;//通過操作,按照元素從大到小的順序出隊2、自訂優先順序:struct cmp{operator bool ()(int

hdu(hdu1016)Prime Ring Problem

#include"stdio.h"#include"string.h"#include"math.h"int a[21],b[21],n,m;int prime(int k)//判斷素數。。{ int i,h; h=int(sqrt(1.0*k)); for(i=2;i<=h;i++) {  if(k%i==0)   return 0; } return 1;}void dfs(int num)//{ int

hdu(2255)奔小康賺大錢

#include<stdio.h>#include<string.h>#define inf 0x7fffffff//是定義無窮大常量的最好方法。。int map[301][301];int lx[301],ly[301];int sx[301],sy[301];//sx[],sy[]為左\右第i個點是否在匈牙利樹中。。int link[301],n;int find(int k)//匈牙利裡匹配(找增廣路){int

Data Structure?(hdu4217)

線段樹模板題線段樹的題目。向上更新。題意:有N個數[ 1,2,3,,,,,n ],取K個數,每次去第i小的數。思路:建立一個線段樹,樹節點記錄的是節點所表示的區間內剩餘數的個數(初始化時葉子節點的值都為1,然後向上傳遞)。取數時,先找到第i小的數的葉子,值修改為1,然後向上傳遞。  #include"stdio.h"#include"string.h"#include"stdlib.h"struct point{    int x,y;    int sum;}a[20000000];void

KM演算法總結

【KM演算法及其具體過程】(1)可行點標:每個點有一個標號,記lx[i]為X方點i的標號,ly[j]為Y方點j的標號。如果對於圖中的任意邊(i, j, W)都有lx[i]+ly[j]>=W,則這一組點標是可行的。特別地,對於lx[i]+ly[j]=W的邊(i, j, W),稱為可行邊; (2)KM 演算法的核心思想就是通過修改某些點的標號(但要滿足點標始終是可行的),不斷增加圖中的可行邊總數,直到圖中存在僅由可行邊組成的完全符合為止,此時這個

hdu(1045)Fire Net(深搜+回朔)

 #include"stdio.h"#include"string.h"char map[20][20];int n,cnt;int judge(int x,int y)//判段此位置是否可以放。。{ int i; if(map[x][y]=='X')  return 0; for(i=x-1;i>=0;i--) {  if(map[i][y]=='@')//說明已經放過。   return 0;  if(map[i][y]=='X')   break; } for(i=y-1;i>

poj(1469)COURSES

 題意:學生有各自喜愛的課程,所以對於一個課程可能存在多個學生喜歡它,但我們想要沒門課程都有人選。第一個資料,代表測試的個數,接下來是課程p個,學生n個,在接下的p行裡,一次代表課程1,2...p,每行 i

hdu(1875)暢通工程再續

技巧在不滿足條件的將距離值為零,然後把距離為零的除外。。#include<stdio.h>#include<algorithm>#include<math.h>using namespace std;int pre[200];struct pointl{    int x,y;}a[200];struct point{    double c;    int a,b;}w[20000];int find(int x){    int r=x;   

狀態壓縮動態規劃

    動態規劃的狀態有時候比較難,不容易表示出來,需要用一些編碼技術,把狀態壓縮的用簡單的方式表示出來。典型方式:當需要表示一個集合有哪些元素時,往往利用2進位用一個整數表示。    *:一般有個資料 n<16 或者 n<32 這個很可能就是狀態DP的標誌,因為我們要用一個int的二進位來表示這些狀態。要注意好這些資料規模的提示作用。    *:確定了為狀態DP,那麼第一步就是預先處理,求出每行所有可能的狀態了,cnt記錄總的狀態數,stk[]記錄所有的可能狀態。以炮兵陣地為例: 

次層網域原理以及程式碼

次層網域原理以及程式碼TYPE:經典程式碼片段TIME:2002-7-30AUTHOR:揚子URL:N/AHIT:51  DAYHIT:1  WEEKHIT:1 要達到二級名的效果,必須一下條件以及流程: 1、必須有一個頂級網域名稱,而且此網域名稱必須做好泛解析並做好指向。 2、必須有一台獨立的伺服器。泛解析的網域名稱指向該伺服器。 3、在伺服器上的IIS建一個空的主機頭名的web網站。 4、將預設的版面設定為你的二機解析程式(比如:freedns.asp)

總頁數: 61357 1 .... 14324 14325 14326 14327 14328 .... 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.