hdu-1267 下沙的沙子有幾粒 DP/Catalan

糾結 的題啊 ACMStep的2.3.8在2.3裡一看題就往Catalan數上想了 很欣喜的推匯出了公式:C[m][n]=(m-n+1)/n*C[m][n-1]; C[m][0]=1;其中,m是D可以放置的位置數。最後用大數的處理方式計算出了結果 提交後WA嗄  愣是想了半天不知道為何嗄 最後的最後 找了himdd的博文,發現可以用DP的思想。解法一:DP代碼及解析如下:#include<iostream>using namespace std;long long num[23][2

hdu-1133,1131 依然Catalan數

倆題驚人的相似嗄 唉 有個打算把ACM Step的題挨個總結一下、、、、、稍後有時間了 寫寫吧 加油!吖颯~~~~~http://acm.hdu.edu.cn/showproblem.php?pid=1133本題依然是Catalan數。稍加變形而已。公式的推導結果為:C[i][j]=(i+j)*(i+1-j)/j/(i+2-j)*C[i][j-1];http://acm.hdu.edu.cn/showproblem.php?pid=1131還是Catalan數,公式:C[i][j]=(4n-2)

hdu1176免費餡餅&&hdu2571命運 經典DP

hdu1176免費餡餅 比較無語的一個題、、、、、、、、、、題意:gameboy每秒僅能移動一米,餡餅落在0-10m範圍內,求能撿到的最多餡餅數。寫了個常規的DP動態方程,改來改去還是Time Limited Exceed 傷心呀 ~~~~然而的然而,學習了一下qsort的cmp函數寫法。對於結構體比較函數,寫法為:t從小打到排列,x從大到小排列int compare(const void *a,const void *b)//參數必須寫成這個形式{struct info *c=(info *)

遺傳演算法的概念

遺傳演算法的概念是建立在自然選擇和自然遺傳學機理基礎上的迭代自適應機率性搜尋演算法,在1975年由Holland教授提出。生物的進化是一個奇妙的最佳化過程,它通過選擇淘汰,突然變異,基因遺傳等規律產生適應環境變化的優良物種。遺傳演算法是根據生物進化思想而啟發得出的一種全域最佳化演算法。 遺傳演算法的概念最早是由Bagley

09-09 HDU_Steps5.3 樹狀數組,LCA HDU1166 HDU2492 HDU3584 HDU2586 HDU2874 HDU3486 HDU2688

5.3.1 HDU1166 敵兵布陣裸的樹狀數組query[i..j]=sum(j)-sum(i-1)#include <cstdio>#include <string.h> using namespace std;const int MAXN=50010;int n,cas,x,y; char op[6];//樹狀數組操作 int c[MAXN*2];void init(){memset(c,0,sizeof c);}int lowbit(int x){return

08-25 USACO 4.1~4.2 搜尋,最大流,二分匹配

今天一天迷迷糊糊的就沒做什麼題...好在把最大流理解了,看了半天演算法導論把 最小割基本也看懂了,LRJ的書說的太簡潔了...一晚上看一道最小割的題目(HDU2435),但是還是沒做出來,痛苦啊,智商不夠,還是先去USACO做點題,明天再繼續想吧..(好吧,已經12點了...)USACO 4.1.2 Drainage Ditches

POJ 1006 Biorhythms

中國剩餘定理,學習了..具體的定理講起來可能難以理解,百度一下就可以了..這裡舉個小例子吧..比如

HDU_Steps9.3 雜題 HDU2832 HDU2604 HDU1429 HDU2782 HDU1298 HDU2363 HDU3389 HDU1496

HDU2832 Snail’s trouble 100cm的繩子,蝸牛每分鐘爬k cm,每分鐘後繩子被拉長100cm,問多少分鐘到終點蝸牛第一分鐘爬繩子的 k/100,第二分鐘k/200...也就是求k/100*(1+1/2+1/3+..1/n)>=1的n的最小值HDU2604 Queuing 一道遞迴,前面重複了,要用矩陣加速HDU1429 勝利大逃亡(續) 在一般的迷宮上加了鑰匙,必須拿了對應的鑰匙才能開對應的門BFS,狀態有橫豎座標及在該點持有的鑰匙組成,鑰匙狀態使用位元運算來標記#

POJ 3259 Wormholes(bellman-ford)

 英文理解起來有點累...很多農田,有的農田之間有路相連,從一個農田到另一個農田需要時間,然後有的農田中有蟲洞,可以將你傳送到另一個農場,並且時間會倒退..問FJ有沒有可能在遊歷農場的過程中看到自己...其實就是問有沒有一個點,能在他從這個點出發前回到這個點,也就是求有沒有負環.轉了一圈後回到這個點時光倒退了,這樣他在這個點等一會就能看到自己了..求負環自然是Bellman-ford演算法了..蟲洞的邊權為負值,為單向,但是農田之間路徑是無向的.#include

HDU_Steps8.2 博弈入門 HDU1846 HDU1847 HDU1848 HDU2149 HDU2188 HDU2147 HDU1907 HDU1851

8.2.1 HDU1846 Brave Game 巴什博弈,搶報n-k(m+1)的人可以獲勝,只有當n%(m+1)==0時先手贏8.2.2 HDU1847 Good Luck in CET-4 Everybody! 報2^k次方,顯然2^k只含有因數2,當對手報2^k時,都可以報1或者2使和為3N,即報n-3k的人獲勝8.2.3 HDU1848 Fibonacci again and again

08-30 HDU_Steps1 HDU2095

HDU_Step 1 中部分題目解題1.2.2 HDU_2095 find your present(2)輸入N個數,其中有個數出現奇數次,找出找個數一開始想到的是Hash或者用Map,應該都是能過的,但是這題有更簡單的方法,就是異或運算0^6=0 6^6=0 一個數異或兩次後等於沒有操作另外使用輸入外掛後,時間由500MS+減到60MS,效果明顯#include <cstdio>using namespace std;inline void scan(int

HDU_Steps8.1 棧,隊列 HDU1702 HDU1022 HDU1237 HDU3228 HDU1873 HDU1509 HDU1870 HDU1387

8.1 基本都是簡單的棧和隊列 8.1.1 HDU1702 ACboy needs your help again!入門題8.1.2 HDU1022 Train Problem I棧的入門題,瞭解概念就能做了,標記現在已經匹配到o1的第幾列車了,o2從頭開始,如果不匹配就放入棧中,匹配後出棧並比較棧頂與o1的下一輛,匹配繼續出,不匹配就繼續進棧 8.1.3 HDU1237 簡單計算機 

HDU_Steps9.1 雜題 HDU2054 HDU1789 HDU2159 HDU1401 HDU2818 HDU3465 HDU2433 HDU3524

HDU2054 A == B ?坑爹題,題意說的太不清楚了。注意幾點,前面的0,有小數點時後面的0,以及正負數(不同號時僅有0相等)#include<cstdio>#include<string>#include<iostream>using namespace std;int main(){string s1,s2;while(cin>>s1>>s2){int l1=s1.size()-1;//後面int l2=s2.size()-1

09-08 HDU_Steps5.2 字典樹,拓撲,哈夫曼 HDU1075 HDU1251 HDU1671 HDU1285 HDU2094 HDU3231 HDU1053 HDU2527

5.2.1 HDU1075 What Are You Talking About簡單的字典樹,在翻譯時注意一點小問題,字串的問題就是處理有些麻煩..#include <cstdio>#include <string.h>#include <cstdlib>using namespace std;char line[30],s1[12],s2[12],tline[3010];struct trie{trie *next[26];char c[12];int

歸併排序求逆序對

排序都用Qsort了,別的排序演算法不怎麼用,但有些排序的思想很重要。碰到一道求逆序對的題,要用到歸併排序,學習了一下歸併排序。歸併排序是用分治思想,分治模式在每一層遞迴上有三個步驟:                               分解:將n個元素分成個含n/2個元素的子序列。                               解決:用合并排序法對兩個子序列遞迴的排序。                              

HDU_Steps9.2 雜題 HDU2052 HDU1871 HDU1254 HDU3350 HDU3234 HDU2642 HDU2833 HDU3483

HDU2052 Picture HDU1871 無題上面兩道純水題。。為什麼Steps做到這中間還有這麼水的題=。=HDU1254 推箱子 推箱子模型,最短路使用DFS加回溯,更新找到箱子的最小值,搜尋人可達的位置用BFS,人和箱子的位置共同組成一個狀態。#include<cstdio>#include<string.h>#include<queue>using namespace std;int

nyoj151/poj1006中國剩餘定理

很早就知道中國剩餘定理了,也寫過這類題,以前卻都是暴力寫過的。今天終於用定理寫了一次。剩餘定理是關於:求某個數X,它對三個數(x,y,z。互素)取餘分別為a,b,c。解法為:先計算出某個最小整數(px),它能整除另外兩個數(y,z),但對該數(x)取餘為1。然後累加三個最小整數(px,py,pz)與對應餘數的積。累加和對三個數的最小公倍數取餘結果即為所求X。證明:令T1=px*a,T2=py*b,T3=pz*c;因為 px%x==1 ;所以 T1%x==a; 已知: T2%x==0,T3%x==

09-07 HDU_Steps5.1 並查集 HDU1829 HDU1325 HDU1598 HDU3461 HDU3635 HDU2473 HDU3172 HDU3038

HDU STEP 5.1 並查集5.1.1 HDU1829 A Bug's Life給出異性對a,b 判斷是否有衝突,即給出a,b異性,a,c異性,又給出b,c異性,顯然是衝突了(同性戀~)用opp[x]數組表示與x對立的bug,(其實就是判斷一個二分圖)輸入a,b後顯然分四種情況1,opp[a]==-1,opp[b]==-1,a和b都沒有出現過,分別加到各自的對立集合 opp[a]=b

約瑟夫環O(N)解法

無論是用鏈表實現還是用數組實現都有一個共同點:要類比整個遊戲過程,不僅程式寫起來比較煩,而且時間複雜度高達O(nm),當n,m非常大(例如上百萬,上千萬)的時候,幾乎是沒有辦法在短時間內出結果的。我們注意到原問題僅僅是要求出最後的勝利者的序號,而不是要讀者類比整個過程。因此如果要追求效率,就要打破常規,實施一點數學策略。為了討論方便,先把問題稍微改變一下,並不影響原意:問題描述:n個人(編號0~(n-1)),從0開始報數,報到(m-1)的退出,剩下的人繼續從0開始報數。求勝利者的編號。我們知道第

09-02 HDU_Steps2.3 遞推,高精度,卡特蘭數 HDU1002 HDU103 HDU1018 HDU1130 HDU1131 HDU1133 HDU1134 HDU1267

這幾天一直在做題,沒有抽出時間來寫總結..HDU的Steps做到了第六節了,溫習的一些知識點,也學到了不少新東西..加油,爭取在省賽前能盡量多學一些!!STEPS 2.3的題目基本都是遞推或者大數,當然這兩者常常是結合在一起的,因為遞推尤其像卡特蘭數之類的,很容易得到一個非常大的數值,一般簡單的只有加法的用CPP就可以了,懶的去啟慢吞吞的Eclipse..當然了,複雜的大數運算還是用JAVA比較好一些,畢竟容易寫,也不會出錯..2.3.1 HDU1002 A+BⅡ入門大數主要代碼for(int

總頁數: 61357 1 .... 20319 20320 20321 20322 20323 .... 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.