第三屆河南省程式設計大賽

2021-07-12 03:54:06 字數 3239 閱讀 3955

#includeusing namespace std;

int dp[200];

int main()

int main()

y=m+1;

while(!su(y))

if(m-x

#includeint main()

; int i,j;

for(i=2; i<32; i++)

int n;

scanf("%d",&n);

while(n--)

}

#include#include#includeusing namespace std;

int du[10002];

int main()

cout<<(count(du,du+m+2,1)+1)/2<

#includeusing namespace std;

int f[22][22];

int main()

cout<

#include"stdio.h"

#include"string.h"

#include"queue"

using namespace std;

#define max(a,b) (a>b?a:b)

#define min(a,b) (aq;

int x,i,v;

int mark1[n],mark2[n];

memset(mark1,0,sizeof(mark1));

memset(mark2,0,sizeof(mark2));

mark1[s]=1;

mark2[n]=1;

q.push(s);

while(!q.empty())}}

q.push(n);

while(!q.empty()) //從終點原路返回起點,即走反向邊}}

int ans=0;

for(i=1;i<=n;i++)

}return ans;

}int main()

memset(head1,-1,sizeof(head1));

memset(head2,-1,sizeof(head2));

e=0;

while(m--)

printf("%d\n",spfa(1,n));

}return 0;

}

#includeusing namespace std;

const int n=1e3+7;

const int mod=1e9+7;

const int inf=0x3f3f3f3f;

typedef long long ll;

struct node

;node g[n];

bool cmp(node x,node y)

cout<

未ac#includeusing namespace std;

const int n=5*1e3+7;

const int mod=1e9+7;

const int inf=0x3f3f3f3f;

typedef long long ll;

int f[n];

void write(int a,int b)

void xie(int a,int b)

int main()

if(i>m) cout<<"0"<>b>>c;xie(b,b+c-1);}}}

return 0;

}

(看的)

/*name:

author:

date: 28/04/13 21:55

description:

剛開始做這道題的時候,第一感覺用線段樹應該很容易實現,結果發現我沒做過此類的線段樹題目

然後上網看了別人的**,才了有點思路,現總結如下:

這道題題意就是旅館訂房問題,由於牽扯到某一段區間的查詢與運算,所以選擇了線段樹求解,

用free表示此段區間房間是否可用,lmax代表這段區間從左邊起最長空閒房間數,rmax表示這段區間

從右邊起最長空閒房間數,tmax表示整個區間上的最長連續空閒房間數,查詢連續空房間數時,過程如下:

1、如果1~n區間的tmax值都比待查長度len小,就無解,否則有解執行2

2、假如區間lmax是否大於等於len,直接返回l ,否則執行3

3、對於每乙個區間,如果它的左兒子的tmax值大於等於len,到左兒子裡去找。否則執行4

4、如果左兒子的rmax加上有兒子的lmax大於等於len,直接返回左兒子的右端點減去左兒子的rmax值。

5、否則到右兒子裡去找。

ps:對於上述過程,如果滿足前面的條件,則不再考慮後面的情況。

更新的時候既進行下壓操作,在對某段區間進行處理後(清空房間或占用房間)後,進行更新父節點,

細節看注釋!!

*/#include#includeconst int n=50010;

using namespace std;

struct nodetree[3*n];

int build(int l,int r,int i)

}int query(int i,int len)

int update(int l,int r,int i,int state)else

}else if(tree[i].r > tree[i].l)

if(tree[i].free==0)

int mid=(tree[i].r+tree[i].l)>>1;

if(mid>=r) update(l,r,i<<1,state);

else if(mid

#includeusing namespace std;

const int n=1e3+7;

const int mod=1e9+7;

const int inf=0x3f3f3f3f;

typedef long long ll;

struct node;node g[n];

int main()

ans=0;

for(i=0;i<=m;i++) if(g[i].n==1) ans++;

if(ans==0)

{for(i=0;i<=m;i++) if(g[i].n>1) break;

cout<<"the winner is "<

素數(第三屆河南省程式設計大賽)

描述 走進世博園某資訊通訊館,參觀者將獲得前所未有的尖端互動體驗,一場充滿創想和喜悅的資訊通訊互動體驗秀將以全新形式呈現,從觀眾踏入展館的第一步起,就將與手持終端密不可分,人類未來夢想的驚喜從參觀者的掌上展開。在等候區的夢想花園中,參觀者便開始了他們奇妙的體驗之旅,等待中的遊客可利用手機等終端參與互...

第三屆河南省程式設計競賽

include include include include includeusing namespace std const int maxn 11000 int main a for int i n i b if ab printf d n num2 else printf d n num1 ...

1016第三屆程式設計大賽 大優惠

include 廈門理工學院 計算機與資訊工程學院 黃潮欽程式描述 第三屆程式設計大賽 大優惠 time limit 1000ms memory limit 65536k total submit 1688 accepted 607 description 中國移動推出最新的手機資費優惠方案,按照這...