pku2346 Lucky tickets

準確的說,這個題叫遞推,不叫DP,用f[i,j]表示長度為i,和為j的方案數f[i,j]=∑f[i-1,j-k]邊界見程式。View Code 1 program pku2346(input,output); 2 var 3 f:array[0..5,0..45] of int64; 4 answer:array[0..11] of int64; 5 n:longint; 6 i,j,k:longint; 7 begin 8

pku2136 Vertical Histogram

統計字串中各個字母出現的次數並且輸出一個柱狀統計圖,注意用滑鼠去劃一下,每兩個‘*’柱之間有空格。。其他的就是類比了,水題View Code 1 program pku2136(input,output); 2 var 3 map :array[0..73,'A'..'Z'] of boolean; 4 number:array['A'..'Z'] of integer; 5 max:longint; 6 procedure init; 7 var 8 s:

pku1330 Nearest Common Ancestors

裸的求最近公用祖先,LCA-->RMQ,沒什麼大問題,只不過標號不再完美,需要在深度序列中找最小值,最後再對應回去。View Code 1 rogram pku1330(input,output); 2 type 3 node = ^link; 4 link = record 5 goal : longint; 6 next : node; 7 end; 8 var 9 tree

黑書-DP-方塊消除 ****

具體題目見 《演算法藝術與資訊學競賽》P123或 http://tyvj.cpwz.cn/Problem_Show.asp?id=1227 (可提交)  以下是代碼(轉自:http://www.cnblogs.com/jiaohuang/archive/2010/10/20/1856294.html) 1 /* 2 方塊消除 3 先壓縮下狀態用把每種顏色壓到一位,記錄下每一位的長度 4 狀態方程式dp[i][j][k] = max(dp[i][j-1][0] + (len[j]+k)^2 ,

pku1631 Bridging signals

很老的一個連線不相交問題,左邊的點已經有序,直接對右邊的對應座標求最長不降序列即可,資料較大,需要用nlogn的二分法。View Code 1 program pku1631(input,output); 2 var 3 q : array[0..60000] of longint; 4 top : longint; 5 n : longint; 6 a : array[0..50000] of longint; 7 cases :

POJ-1818 ATP ****

1 /* 2 * 貪心 + 二分 3 * 看了網上的代碼 + discuss 才想出解法。。。 4 * 5 * 設答案是排名為p的人 6 * 則貪心策略是: p最後一輪與(p-k)比賽。 7 * 這個還是有點顯然的,因為所有與p比賽且能被p贏的人中, 8 * (p-k)是最容易撐到最後一輪的。 9 * 證明: 否則,設p最後一輪與m比賽,(則m >

pku2232 New Stone-Forfex-Cloth Game

石頭剪刀布,每個人出什麼已知,你可以決定他們遊戲的順序,有多少人有可能贏分情況:1:對於石頭剪刀布都有的情況,這個值是n    2:對於只有兩種的情況,答案是兩種對抗能贏得那種的人數    3:只有一種的情況,答案是nView Code 1 program pku2232(input,output); 2 var 3 n,i :longint; 4 c,s,f:longint; 5 ss:ansistring; 6 begin 7 while not

極大強連通分量的Tarjan演算法

                             求極大強連通分量的Tarjan演算法   首先,在有向圖G中,如果兩個頂點vi,vj間(vi<>vj)都有一條從vi到vj的有向路徑,同時還有一條從vj到vi的有向路徑,則稱兩個頂點強連通(strongly connected)。如果有向圖G的每兩個頂點都強連通,稱G是一個強連通圖。非強連通圖有向圖的極大強連通子圖,稱為強連通分量(strongly connected

LaTeX首行縮排

LaTeX 預設的第一段不是首行縮排的, 這不符合我們的中文習慣.要實現首行縮排也很簡單,在導言區加入宏包首行 \usepackage{indentfirst} 就可以了. (LaTeX 學習部落格 (http://latex.yo2.cn) , 白色印記.)使用命令 設定 縮排的距離 \setlength{\parindent}{2em}  ,這裡的 2em 表示縮排 2 個字元位置.如果有一個段落你不想首行縮排, 在段落前使用命令 \noindent .同樣的, 你要保證這一段是首行縮排,

poj-1737 Connected Graph ***

1 /* 2 3 [轉]http://hi.baidu.com/accplaystation/blog/item/51417bdca982bea4cc116660.html 4 5 這道題據說有兩種思路: 6 7 1——將總的方案數減掉所有不連通的方案。 8 9 總的方案數是2^(C(n,2)),不連通的方案數可以如下考慮:10 11

pku1252 Euro Efficiency

有6種面值的貨幣,最小的是1,求出用最少的貨幣數湊成1..100的最少貨幣數,輸出其中的最大值和他們的平均值。而可以用減法。例如:6=1+2+3,6=7-1,那麼湊成6的最小貨幣數為2.是一個沒有下限的背包問題,體積數組開到3000+就可以了(經過實驗了)。View Code 1 program pku1252(input,output); 2 var 3 f : array[-3000..3000] of longint; 4 v : array[1..6

pku1195 Mobile phones

需要一個這樣的資料結構,每次能修改矩陣中的某一個值,還可以查詢某個子矩陣的權值和。二維樹狀數組沒壓力啊。View Code 1 program pku1195(input,output); 2 var 3 c : array[0..1500,0..1500] of int64; 4 n,kk : longint; 5 function lowbit(x: longint ):longint; 6 begin 7 exit(x and (-x)); 8 end; {

pku2355 Railway tickets

有n個火車站,從一個網站到另一個網站的費用C與它們的距離L有關,有3種距離,對應有3種費用。現在求從一個網站S到另一個網站E所需的最小費用。很簡單的DP,難度等價於數字三角形,注意:輸入中起點不一定大於終點View Code 1 program pku2355(input,output); 2 var 3 f :array[0..10010] of longint; 4 d :array[0..10010] of longint; 5 l,c

pku1944 Fiber Communications

有一個圓上有n個點,有m個要求,分別是(a,b)表示a與b要聯通,每個點只能和它左右的點連線,問最少連多少個線段(相鄰兩點之間連的一條線算1條線段)。最多要連n-1條線,整個圓上的點都聯通,所以枚舉不連哪一條線段,算出此時最小的線段數即可。算的時候用next[i]記錄i點向後連邊的終點,求和的時候就能很快了。View Code 1 {$inline on} 2 program pku1944(input,output); 3 type 4 node = record 5

pku3171 Cleaning Shifts

有一個倉庫,在時間段[M,E]需要一直被打掃。現在有n頭奶牛來幹這項工作。每頭奶牛都有一個工作時間段[start,final],並且需要付的費用是cost。問題是聘用哪些奶牛能使費用最少?允多頭奶牛在同一時間工作。先把區間按照final升序排列,然後進行DP,考慮到範圍較大,O(L^2)逾時,引入線段樹進行最佳化,將決策的複雜度降到logn。還要輸出-1,WA死了。。。這是我的pku第100題,慶祝啊,激動死了。。View Code 1 program

pku3368 Frequent values

有一個長度為n(n<=100000)的有序序列,對於Q(Q<=100000)條詢問(x,y)輸出區間[x,y]中出現次數最多的數的次數。用maxl表示包括左端點的最長重複數的個數maxr表示包括右端點的最長重複數的個數sum表示在該區間內重複數的最大個數,那麼就很容易建立線段樹,由兒子節點去求父親節點,具體的規劃式在程式裡很清楚。View Code 1 program pku3368(input,output); 2 type 3 node = record 4

pku3418 Double Queue

需要這樣一個資料結構,支援如下操作1:插入優先順序為p,編號為k的節點2:查詢優先順序最高的節點,輸出編號並刪除3:查詢優先順序最低的節點,輸出編號並刪除用一顆SBT即可完美解決問題,沒什麼好說的,多說無益~~~View Code 1 program pku3481(input,output); 2 var 3 left,right,key,s,th:array[0..200000] of longint; 4 tot,root:longint; 5

pku1946 Cow Cycling

有n只奶牛進行單車環跑,如果奶牛一分鐘要跑x圈,則領跑者消耗x*x體力,後面跟跑的消耗x體力。現在給出N頭奶牛的數目N,每頭奶牛原先所具有的能量E,需要環跑的圈數D。只要有一隻奶牛先達到D圈,就算完成環跑,求奶牛能否完成環跑,如果不能,輸出0。否則,輸出環跑的最短時間。最優方案顯然是n頭牛輪流領跑,最後第n頭牛衝線。f[i,j,k]表示當前第i頭牛領跑,已經領跑j圈,它已經消耗了k點體力的最短時間。寫一個正推方程f[i,j+x,k+x*x]=min{f[i,j,k]+1}//領跑牛繼續跑    

poj-3250 Bad Hair Day **

1 /* 2 * DA-term-Bad Hair Day.cpp 3 * 4 * 這是一種解法,還可以用 “單調隊列” 來做(見後。。) 5 * 6 * Created on: 2011-12-2 7 */ 8 9 #include <iostream>10 using namespace std;11 12 const int maxn = 80000 + 5;13 14 int h[maxn], n;15 int num[maxn], cow[maxn];

LaTeX技巧203:如何?等號對齊

我們在進行公式的輸入排版的時候,通常希望公式比較齊整,所以需要一些等號對齊,或者靠左對齊,關於公式的靠左對齊前文已經介紹了方法。http://blog.sina.com.cn/s/blog_5e16f1770100ggwo.html 下面我們來介紹如何?等號的對齊,主要是兩種方法,第一是使用align這一環境,第二是使用eqnarray環境。我們示範如下, 示範:  示範代碼: 1 \documentclass{article} 2 \pagestyle{empty} 3

總頁數: 61357 1 .... 10324 10325 10326 10327 10328 .... 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.