USACO silver 刷題記錄

2021-08-07 15:41:03 字數 3903 閱讀 9158

2017 9 1:

1、 1624: [usaco2008 open] clear and present danger 尋寶之路

floyd最短路

#include#includeconst int n=105,len=10000+9;

int map[n][n];

int a[len];

int main()

e[m];

int count[n];

int visit[n];

void dfs(int x)

int main()

int sum=0;

for(int i=1;i<=k;i++)

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

if(count[i]==k) sum++;

printf("%d\n",sum);

return 0;

}

3、1623: [usaco2008 open]cow cars 奶牛飛車

貪心資料範圍再大一些可以考慮二分找出符合條件的牛

剛開始cmp函式寫錯了

寫成了min函式qaq

#include#include#includeconst int n=5*1e4+100;

int si[n];

int sum[n];

bool cmp(int a,int b)

printf("%d\n",ans);

return 0;

}

4、1627: [usaco2007 dec]穿越泥地

隨便打個bfs

每個點只會遍歷一次

#include#includeconst int n=1020;

bool map[n][n];

bool bo[n][n];

const int len=1e6+5;

int qu[len][3];

int x,y,n;

int hh[4]=,ll[4]=;

int sth,stl;;

int bfs()

} }

}int main()

printf("%d\n",bfs());

return 0;

}

2017 9 2:

5、1682: [usaco2005 mar]out of hay 乾草危機

最小生成樹

很難受。。。

大水題wa了好幾次

有乙個地方m寫成n了。。。。

#include#include#includeconst int m=10000+17,n=2005;

struct node

e[m];

int f[n];

int get(int v)

int cnt;

inline void insert(int u,int v,int c)

bool cmp(node a,node b)

int main()

else

}while(head<=tail) printf("%d\n",qu[head++]);

return 0;

}

7、3403: [usaco2009 open]cow line 直線上的牛

bfs

#include#includeconst int m=50000+100,n=20005,len=1e5;

struct node

e[m*2];

int first[n];

int dis[n];

int qu[len];

bool visit[n];

void bfs() }}

int main()

bfs();

int max=0,sum=0;

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

if(dis[i]>max) max=dis[i],sum=1;

else if(dis[i]==max) sum++;

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

if(dis[i]==max)

return 0;

}

———————————————————————分割線——————————————————————————————

寫的這些題都好水啊。。。。。

準備棄坑

去寫gold了,,,

2017 9 4:

沒事閒的寫一題

8、1606: [usaco2008 dec]hay for sale 購買乾草

揹包問題變形?

題意好像不是很清楚

我寫的是完全揹包

我看別人寫的是01揹包

不過我也過了。。。。

跑了300ms

不知道0ms的是怎麼跑的 %%%

#include#include#includeint f[50000+19];

int a[5000+7];

int main()

return 0;

}

9、1621: [usaco2008 open]roads around the farm分岔路口

沒事又寫了一題

水。。模擬,類似bfs

#include#includeconst int len=1e6+5;

int qu[len+5];

int main()

else ans++;

}printf("%lld\n",ans);

return 0;

}

2017 9 11:

10、1614: [usaco2007 jan]telephone lines架設**線

隨意一寫竟然遇到一道難題qaq

2017 10 14:

時光飛逝qaq,已經過了乙個月了

今天剛考完noip初賽qaq,忐忑。。。

11、bzoj 1635: [usaco2007 jan]tallest cow 最高的牛

首先我們發現區間不可能相交(最多端點重疊或者區間包含)

那麼我們可以剛開始就可以貪心地將所以牛都設為maxh

對於a can see b

我們只需將區間[ a+1,b-1 ] -1就可以了

注意去掉重複的關係

#include#includeint read()

const int n=1e4+7;

int ans[n];

struct node

e[n];

bool cmp(node a,node b)

int main()

std::sort(e+1,e+1+m,cmp);

for(int i=1;i<=m;i++)

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

ans[i]+=ans[i-1],printf("%d\n",ans[i]);

return 0;

}

2017 10 23:

12、bzoj1610: [usaco2008 feb]line連線遊戲

#include#include#includeconst int n=205;

struct edgt

e[n];

struct node

a[n*n];

const double eps=1e-10;

inline bool cmp(node a,node b)

{ if(a.xie-b.xie

OI刷題記錄

2014 4 18 poj3264 bzoj1699 balanced lineup rmq 2014 4 19 bzoj1012 jsoi2008 最大數maxnumber noi2004 鬱悶的出納員 bzoj3224 tyvj 1728 普通平衡樹 2014 4 20 bzoj1862 105...

面試刷題記錄

寫一段 判斷乙個包括 的表示式是否合法 注意看樣例的合法規則。給定乙個表示式a,請返回乙個bool值,代表它是否合法。測試樣例 a b 5 4 返回 true 測試樣例 a b 5 4 返回 false include vector include iostream using namespace ...

刷題記錄 2015 11 14

現在每天做的題都記錄一下,免得不知道自己在幹什麼。poj2406 用next陣列的定義求迴圈節 poj3261 字尾陣列 題 spoj705 同上,這題我wa了幾次,結果發現 我以為字串只有大寫字母,其實有小寫。如下 poj2406 author duyixian date 2015 11 14 1...