锘??xml version="1.0" encoding="utf-8" standalone="yes"?>无码久久精品国产亚洲Av影片,久久久久亚洲av综合波多野结衣,久久人人爽人人爽人人片AV麻豆http://www.shnenglu.com/zzg/category/9879.htmlWalking to the skyzh-cnFri, 05 Jun 2009 12:37:31 GMTFri, 05 Jun 2009 12:37:31 GMT60- RMQ 綆楁硶 pku3264http://www.shnenglu.com/zzg/articles/86776.htmlzzgzzgThu, 04 Jun 2009 11:37:00 GMThttp://www.shnenglu.com/zzg/articles/86776.htmlhttp://www.shnenglu.com/zzg/comments/86776.htmlhttp://www.shnenglu.com/zzg/articles/86776.html#Feedback0http://www.shnenglu.com/zzg/comments/commentRss/86776.htmlhttp://www.shnenglu.com/zzg/services/trackbacks/86776.html
聽RMQ(Range Minimum/Maximum Query)闂鏄寚錛氬浜庨暱搴︿負n鐨勬暟鍒桝錛屽洖絳旇嫢騫茶闂甊MQ(A,i,j)(i,j<=n)錛岃繑鍥炴暟鍒桝涓笅鏍囧湪[i,j]閲岀殑鏈灝?澶?鍊箋?br />鏈綆鍗曠殑綆楁硶鎴戝氨涓嶈В閲婁簡錛岀洿鎺ユ悳銆備絾鏄浜庢暟鎹噺闈炲父澶ф椂錛岃繖縐嶆柟娉曞茍涓嶉傜敤銆傛墍浠ユ垜浠彲浠ヤ嬌鐢ㄧ嚎孌墊爲鏉ヨ褰曡繖涓渶澶э紙灝忥級鍊鹼紝鏁堢巼鍜嬬畻鎴戣繕涓嶆槸寰堜簡瑙o紝鍙嶆鏄竴涓猲logn褰㈠紡鐨勩備絾鏄嚎孌墊爲鐨勫緩绔嬪拰鏌ヨ閮芥槸榪欎釜鏁堢巼銆備笉榪囨湁涓涓洿濂界殑鏂規硶錛岄偅灝辨槸ST綆楁硶錛圫parse Table錛夛細瀹冩槸涓縐嶅姩鎬佽鍒掔殑鏂規硶銆備互鏈灝忓間負渚嬨俛涓烘墍瀵繪壘鐨勬暟緇勶紝鐢ㄤ竴涓簩緇存暟緇刦(i,j)璁板綍鍖洪棿[i,i+2^j-1]鍖洪棿涓殑鏈灝忓箋傚叾涓璮[i,0] = a[i];
鎵浠ワ紝瀵逛簬浠繪剰鐨勪竴緇?i,j)錛宖(i,j) = min{f(i,j-1),f(i+2^(j-1),j-1)}鏉ヤ嬌鐢ㄥ姩鎬佽鍒掕綆楀嚭鏉ャ?br />榪欎釜綆楁硶鐨勯珮鏄庝箣澶勪笉鏄湪浜庤繖涓姩鎬佽鍒掔殑寤虹珛錛岃屾槸瀹冪殑鏌ヨ錛氬畠鐨勬煡璇㈡晥鐜囨槸O(1)錛佸鏋滀笉緇嗘兂鐨勮瘽錛屾庝箞寮勪篃鏄笉浼氭兂鍒版湁O錛?錛夌殑綆楁硶鐨勩傚亣璁炬垜浠姹傚尯闂碵m,n]涓璦鐨勬渶灝忓鹼紝鎵懼埌涓涓暟k浣垮緱2^k<n-m+1錛岃繖鏍鳳紝鍙互鎶婅繖涓尯闂村垎鎴愪袱涓儴鍒嗭細[m,m+2^k-1]鍜孾n-2^k+1,n]錛佹垜浠彂鐜幫紝榪欎袱涓尯闂存槸宸茬粡鍒濆鍖栧ソ鐨勶紒鍓嶉潰鐨勫尯闂存槸f(m,k)錛屽悗闈㈢殑鍖洪棿鏄痜(n-2^k+1,k)錛佽繖鏍鳳紝鍙鐪嬭繖涓や釜鍖洪棿鐨勬渶灝忓鹼紝灝卞彲浠ョ煡閬撴暣涓尯闂寸殑鏈灝忓鹼紒
涓嶅緱涓嶄僵鏈嶆兂鍑鴻繖涓畻娉曠殑浜哄晩錛?br />鍏蜂綋鐨勪唬鐮佸彲浠ョ湅poj 3264銆?br />涓嶈繃榪樻槸瑕佽鍑犱釜娉ㄦ剰鐨勫湴鏂癸細
寮杈熻繖涓簩緇存暟緇刦鐨勬椂鍊欐敞鎰忓叾絎簩緇翠笉瑕佸紑鐨勮繃澶э紝鍥犱負2鐨勬寚鏁頒細寰堝ぇ鐨勶紝鍒版椂鍊欏湪鑷繁鏈哄櫒涓婇兘鏃犳硶榪愯銆?br />鍦ㄥ姩鎬佽鍒掕綆楁暟緇刦鐨勬椂鍊欙紝鐢ㄥ2鍙栧鏁版潵璁$畻涓婇潰璇寸殑k錛岄偅鏍烽熷害濂戒竴鐐廣傝綆楀嚭k鍚庯紝娉ㄦ剰瀵瑰驚鐜帶鍒跺彉閲忕殑鑼冨洿鎺у埗錛岃屼笖涓鏃﹁秴鍑轟簡鑼冨洿錛岄偅涔堣鍊間究涓嶅繀璁$畻銆?br />綆楁寚鏁扮殑鏃跺欏彲浠ョ敤>>鍜?lt;<鏉ヨ綆楋紝涓嶈繃娉ㄦ剰鍔犳嫭鍙楓?br />鍦ㄦ煡璇㈢殑鏃跺欙紝k鍊間粛鐒跺彲浠ョ敤瀵?鍙栧鏁般?/font>
聽
渚嬬▼錛歱ku 3264
#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;
#define maxn 50001
int a[maxn];
int dpmax[maxn][40];
int dpmin[maxn][40];
int getmin(int a,int b)
{
聽聽聽 if(a<b) return聽 a;
聽聽聽 else聽聽聽 return聽 b;聽聽聽
}
int getmax(int a,int b)
{
聽聽聽 if(a>b) return聽 a;
聽聽聽 else聽聽聽 return聽 b;聽聽聽
}
void Make_Big_RMQ(int n)
{
聽聽聽 int i,j,k;
聽聽聽 for(i=1;i<=n;i++)聽 dpmax[i][0]=a[i];
聽聽聽 for(j=1;j<=log((double)n)/log(2.0);j++)
聽聽聽聽聽聽聽 for(i=1;i+(1<<j)-1<=n;i++)
聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 dpmax[i][j]=getmax(dpmax[i][j-1],dpmax[i+(1<<(j-1))][j-1]);
聽聽聽聽聽聽聽 }聽聽聽
}
void Make_Min_RMQ(int n)
{
聽聽聽 int i,j,k;
聽聽聽 for(i=1;i<=n;i++)聽 dpmin[i][0]=a[i];
聽聽聽 for(j=1;j<=log((double)n)/log(2.0);j++)
聽聽聽聽聽聽聽 for(i=1;i+(1<<j)-1<=n;i++)
聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 dpmin[i][j]=getmin(dpmin[i][j-1],dpmin[i+(1<<(j-1))][j-1]);
聽聽聽聽聽聽聽 }聽聽聽
}
int get_big_rmq(int a,int b)
{
聽聽聽 int k=(int)(log((double)(b-a+1))/log(2.0));
聽聽聽 return getmax(dpmax[a][k],dpmax[b-(1<<k)+1][k]);
}
int get_min_rmq(int a,int b)
{
聽聽聽 int k=(int)(log((double)(b-a+1))/log(2.0));
聽聽聽 return getmin(dpmin[a][k],dpmin[b-(1<<k)+1][k]);
}
int main()
{
聽聽聽 int n,m,i,j,k,q,x,y;
聽聽聽 while(scanf("%d%d",&n,&q)!=EOF)
聽聽聽 {
聽聽聽聽聽聽聽 for(i=1;i<=n;i++)
聽聽聽聽聽聽聽 scanf("%d",&a[i]);
聽聽聽聽聽聽聽 Make_Big_RMQ(n);
聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 Make_Min_RMQ(n);
聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 for(i=1;i<=q;i++)
聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 scanf("%d%d",&x,&y);
聽聽聽聽聽聽聽聽聽聽聽 printf("%d\n",get_big_rmq(x,y)-get_min_rmq(x,y));聽聽聽
聽聽聽聽聽聽聽 }聽聽
聽聽聽聽聽聽聽
聽聽聽 }
聽聽聽
聽聽聽
聽聽聽 return 0;聽聽聽
}

]]>- pku 1742 Coinshttp://www.shnenglu.com/zzg/articles/78480.htmlzzgzzgTue, 31 Mar 2009 10:44:00 GMThttp://www.shnenglu.com/zzg/articles/78480.htmlhttp://www.shnenglu.com/zzg/comments/78480.htmlhttp://www.shnenglu.com/zzg/articles/78480.html#Feedback0http://www.shnenglu.com/zzg/comments/commentRss/78480.htmlhttp://www.shnenglu.com/zzg/services/trackbacks/78480.html聽
聽1聽#include<iostream>
聽2聽using聽namespace聽std;
聽3聽int聽cnt[100001];
聽4聽bool聽聽f[100001];
聽5聽typedef聽struct{
聽6聽聽聽聽聽int聽value,num;聽聽聽聽
聽7聽}S;
聽8聽S聽coin[110];
聽9聽int聽main()
10聽{
11聽聽聽聽聽int聽n,m;
12聽聽聽聽聽int聽i,j,k,count;
13聽聽聽聽聽while(scanf("%d%d",&n,&m)!=EOF)
14聽聽聽聽聽{
15聽聽聽聽聽聽聽聽聽if(n==0&&m==0)聽break;
16聽聽聽聽聽聽聽聽聽for(i=0;i<n;i++)
17聽聽聽聽聽聽聽聽聽scanf("%d",&coin[i].value);
18聽聽聽聽聽聽聽聽聽for(i=0;i<n;i++)
19聽聽聽聽聽聽聽聽聽scanf("%d",&coin[i].num);
20聽聽聽聽聽聽聽聽聽for(i=1;i<=m;i++)
21聽聽聽聽聽聽聽聽聽f[i]=false;
22聽聽聽聽聽聽聽聽聽f[0]=true;
23聽聽聽聽聽聽聽聽聽count=0;
24聽聽聽聽聽聽聽聽聽for(i=0;i<n;i++)
25聽聽聽聽聽聽聽聽聽{
26聽聽聽聽聽聽聽聽聽聽聽聽聽for(j=0;j<=m;j++)
27聽聽聽聽聽聽聽聽聽聽聽聽聽cnt[j]=0;
28聽聽聽聽聽聽聽聽聽聽聽聽聽for(j=coin[i].value;j<=m;j++)
29聽聽聽聽聽聽聽聽聽聽聽聽聽{
30聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if(!f[j]&&f[j-coin[i].value]&&cnt[j-coin[i].value]<coin[i].num)//聽key聽point聽
31聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{cnt[j]=cnt[j-coin[i].value]+1;f[j]=true;count++;}聽聽聽聽//here聽we聽use聽cnt[]聽to
32聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽//record聽the聽num聽of聽coins
33聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽//聽of聽this聽kind聽has聽used;
34聽聽聽聽聽聽聽聽聽聽聽聽聽}聽聽聽聽
35聽聽聽聽聽聽聽聽聽}
36聽聽聽聽聽聽聽聽聽printf("%d\n",count);聽聽聽聽
37聽聽聽聽聽}聽聽聽聽
38聽聽聽聽聽return聽0;聽聽聽聽
39聽}
40聽

]]> - Tire鏍戝涔狅紙杞級http://www.shnenglu.com/zzg/articles/76628.htmlzzgzzgSun, 15 Mar 2009 03:48:00 GMThttp://www.shnenglu.com/zzg/articles/76628.htmlhttp://www.shnenglu.com/zzg/comments/76628.htmlhttp://www.shnenglu.com/zzg/articles/76628.html#Feedback1http://www.shnenglu.com/zzg/comments/commentRss/76628.htmlhttp://www.shnenglu.com/zzg/services/trackbacks/76628.html
瀛楀吀鏍?/span>(trie tree)
|
|
|
浠婂ぉAC浜嗕袱棰?/span>trie tree鐨勯鐩?/span>,鎰熻trie鐨勬ц川鐪熺殑鏄浉褰撶殑濂斤紝鑰屼笖瀹炵幇姣旇緝綆鍗曘傚畠浣垮湪瀛楃涓查泦鍚堜腑鏌ユ壘鏌愪釜瀛楃涓茬殑鎿嶄綔鐨勫鏉傚害闄嶅埌鏈澶у彧闇O(n),鍏朵腑n涓哄瓧絎︿覆鐨勯暱搴︺?/span>trie鏄吀鍨嬬殑灝嗘椂闂寸疆鎹負絀洪棿鐨勭畻娉曪紝濂藉湪ACM涓竴鑸絀洪棿鐨勮姹傚緢瀹芥澗銆?/span>
trie鐨勫師鐞嗘槸鍒╃敤瀛楃涓查泦鍚堜腑瀛楃涓茬殑鍏叡鍓嶇紑鏉ラ檷浣庢椂闂村紑閿浠ヨ揪鍒版彁楂樻晥鐜囩殑鐩殑銆?/span>
瀹冨叿鏈変互涓嬫ц川:1,鏍圭粨鐐逛笉鍖呭惈浠諱綍瀛楃淇℃伅;2,濡傛灉瀛楃鐨勭鏁頒負n,鍒欐瘡涓粨鐐圭殑鍑哄害涓?/span>n(榪欐牱蹇呯劧浼氬鑷存氮璐瑰緢澶氱┖闂?/span>,榪欎篃鏄?/span>trie鐨勭己鐐?/span>,鎴戣繕娌℃湁鎯沖埌濂界偣鐨勫姙娉曢伩鍏?/span>);3,鏌ユ壘錛屾彃鍏ュ鏉傚害涓?/span>O(n),n涓哄瓧絎︿覆闀垮害銆?/span>
涓句竴涓緥瀛?/span>,緇?/span>50000涓敱灝忓啓瀛楁瘝鏋勬垚鐨勯暱搴︿笉瓚呰繃10鐨勫崟璇?/span>,鐒跺悗闂煇涓叕鍏卞墠緙鏄惁鍑虹幇榪囥傚鏋滄垜浠洿鎺ヤ粠瀛楃涓查泦涓粠澶村線鍚庢悳錛岀湅緇欏畾鐨勫瓧絎︿覆鏄惁涓哄瓧絎︿覆闆嗕腑鏌愪釜瀛楃涓茬殑鍓嶇紑錛岄偅鏍峰鏉傚害涓?/span>O(50000^2)錛岃繖鏍鋒樉鐒朵細TLE銆傚張鎴栨槸鎴戜滑瀵逛簬瀛楃涓查泦涓殑姣忎釜瀛楃涓詫紝鎴戜滑鐢?/span>MAP瀛樹笅瀹冩墍鏈夌殑鍓嶇紑銆傜劧鍚庤闂椂鍙互鐩存帴緇欏嚭緇撴灉銆傝繖鏍峰鏉傚害涓?/span>O(50000*len),鏈鍧忔儏鍐典笅len涓哄瓧絎︿覆鏈闀垮瓧絎︿覆鐨勯暱搴︺傝屼笖榪欐病鏈夌畻寤虹珛MAP瀛樺偍鐨勬椂闂達紝涔熸病鏈夌畻鐢?/span>MAP鏌ヨ鐨勬椂闂達紝瀹為檯鏁堢巼浼氭洿浣庛備絾濡傛灉鎴戜滑鐢?/span>trie鐨勮瘽錛屽綋鏌ヨ濡傚瓧絎︿覆abcd鏄惁涓烘煇瀛楃涓茬殑鍓嶇紑鏃訛紝鏄劇劧浠?/span>b,c,d....絳変笉鏄互a寮澶寸殑瀛楃涓插氨涓嶇敤鏌ユ壘浜嗐傚疄闄呮煡璇㈠鏉傚害鍙湁O(len)錛屽緩绔?/span>trie鐨勫鏉傚害涓?/span>O(50000).榪欐槸瀹屽叏鍙互鎺ュ彈鐨勩?/span>
濡傜粰瀹氬瓧絎︿覆闆嗗悎abcd,abd,cdd,efg,hij,hi鍏釜瀛楃涓插緩绔嬬殑trie tree濡備笅鍥炬墍紺?/span>:
鏌ユ壘涓涓瓧絎︿覆鏃訛紝鎴戜滑鍙渶浠庢牴緇撶偣鎸夊瓧絎︿覆涓瓧絎﹀嚭鐜伴『搴忎緷嬈″線涓嬭蛋銆傚鏋滃埌鏈鍚庡瓧絎︿覆緇撴潫鏃訛紝瀵瑰簲鐨勭粨鐐規爣璁頒負綰㈣壊錛屽垯璇ュ瓧絎︿覆瀛樺湪;鍚﹀垯涓嶅瓨鍦ㄣ?/span>
鎻掑叆鏃朵篃鍙渶浠庢牴緇撶偣寰涓嬮亶鍘嗭紝紕板埌宸插瓨鍦ㄧ殑瀛楃緇撶偣灝卞線涓嬮亶鍘嗭紝鍚﹀垯錛屽緩绔嬫柊緇撶偣;鏈鍚庢爣璁版渶鍚庝竴涓瓧絎︾殑緇撶偣涓虹孩鑹插嵆鍙?/span>
鍚屾椂鎴戜滑鐪嬪埌,濡傛灉瀛楃鐨勭綾諱負n錛屽垯闇瑕佺粨鐐圭殑涓暟涓?/span>n綰ф暟銆?/span>(璋佹湁濂藉姙娉曢檷浣庣┖闂村紑閿,璇峰憡璇夋垜)
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
棰樼洰:http://acm.hdu.edu.cn/showproblem.php?pid=1251
棰樼洰鍜屾垜涓婇潰涓劇殑渚嬪瓙宸笉澶氾紝鏄緇欏畾涓涓瓧絎︿覆闆嗗悎錛岀劧鍚庢瘡嬈¤闂椂緇欏嚭涓涓瓧絎︿覆錛岄棶浠ヨ瀛楃涓蹭負鍓嶇紑鐨勫瓧絎︿覆鍦ㄩ泦鍚堜腑鏈夊灝戜釜銆傚厛緇欎釜鐢?/span>MAP鐗堟湰鐨勶紝闄愭椂2000MS鐨勯鐩紝鐢?/span>MAP錛?/span>1750MS錛岄櫓榪囥?/span>
|
|
鎴戠殑浠g爜錛?br>
1
#include<iostream>
2
using namespace std;
3
const int kind=26;
4
struct trienode
{
5
public:
6
trienode *next[kind];
7
int branch;
8
trienode()
9
{
10
branch=0;
11
for(int i=0;i<kind;i++)
12
next[i]=NULL;
13
}
14
};
15
class trie
{
16
17
trienode *root;
18
public:
19
trie()
{root=NULL;}
20
void insert(char s[])
21
{
22
trienode *location=root;
23
if(location==NULL)
24
location=root=new trienode();
25
int i=0,k;
26
while(s[i])
27
{
28
k=s[i]-'a';
29
if(location->next[k])
30
location->next[k]->branch++;
31
else
32
{
33
location->next[k]=new trienode();
34
location->next[k]->branch++;
35
}
36
i++;
37
location=location->next[k];
38
}
39
}
40
int search(char s[])
{
41
trienode *location=root;
42
if(!location) return 0;
43
int k,i=0,ans;
44
while(s[i])
45
{
46
k=s[i]-'a';
47
if(!location->next[k])
48
return 0;
49
ans=location->next[k]->branch;
50
location=location->next[k];
51
i++;
52
}
53
return ans;
54
}
55
56
};
57
int main()
58

{
59
char a[100];
60
int i;
61
trie mytrie;
62
while(gets(a))
63
{
64
if(a[0]=='\0')
65
break;
66
mytrie.insert(a);
67
}
68
while(gets(a)!=NULL)
69
{
70
//if(a=="end")
71
72
printf("%d\n",mytrie.search(a));
73
}
74
return 0;
75
}
76

]]>
日韩精品久久久肉伦网站|
亚洲AV伊人久久青青草原|
国产精品久久久久久久久软件|
国产综合成人久久大片91|
亚洲中文字幕久久精品无码APP|
久久亚洲国产欧洲精品一|
日本久久久久久久久久|
久久人人爽人人爽人人片AV高清|
亚洲一区二区三区日本久久九|
亚洲综合日韩久久成人AV|
久久电影网2021|
.精品久久久麻豆国产精品|
性做久久久久久久久|
2021少妇久久久久久久久久|
热RE99久久精品国产66热|
久久精品男人影院|
久久w5ww成w人免费|
无码AV中文字幕久久专区|
麻豆精品久久久久久久99蜜桃
|
久久天天躁狠狠躁夜夜av浪潮
|
狠狠人妻久久久久久综合蜜桃|
亚洲精品第一综合99久久|
欧美粉嫩小泬久久久久久久|
麻豆成人久久精品二区三区免费|
99久久国产综合精品五月天喷水|
久久精品中文无码资源站|
精品伊人久久久|
亚洲综合久久久|
久久久精品国产|
三级三级久久三级久久
|
亚洲va久久久噜噜噜久久狠狠|
午夜精品久久久内射近拍高清|
狠狠色丁香久久综合婷婷|
72种姿势欧美久久久久大黄蕉|
国产亚洲精久久久久久无码77777|
久久久久亚洲av毛片大|
欧美日韩精品久久久久|
久久亚洲欧洲国产综合|
蜜臀久久99精品久久久久久|
久久99热这里只有精品66|
7777久久久国产精品消防器材|