总目录详见https://blog.csdn.net/mrcrack/article/details/84471041
做题原则,找不到测评地址的题不做。2018-11-28
重走长征路---OI每周刷题记录---5月24日 2014
本周共计39题+题
测评地址:
斜率优化:
1.[Usaco2008 Mar]土地购买
2.「bzoj1911」[Apio2010]特别行动队
3.「bzoj1096」[ZJOI2007]仓库建设
kruskal:
4.「bzoj2429」[HAOI2006]聪明的猴子
5.「bzoj1626」[Usaco2007 Dec]Building Roads 修建道路
离线+线段树:
6.「bzoj3585」mex
树状数组:
7.「bzoj1782」[Usaco2010 Feb]slowdown慢慢游
状压dp:
8.「bzoj1231」[Usaco2008 Nov]mixup2 混乱的奶牛
树形dp+贪心:
9.「bzoj1827」[Usaco2010 Mar]gather 奶牛大集会
分数规划:
10.「bzoj1690」[Usaco2007 Dec]奶牛的旅行
二分+后缀数组:
11.「bzoj1717」[Usaco2006 Dec]Milk Patterns 产奶的模式
dp:
12.「bzoj1668」[Usaco2006 Oct]Cow Pie Treasures 馅饼里的财富
13.「cf431C」k-Tree
14.「bzoj1600」[Usaco2008 Oct]建造栅栏
15.「bzoj1617」River Crossing渡河问题
16.「bzoj1260」[CQOI2007]涂色paint
17.「bzoj1679」[Usaco2005 Jan]Moo Volume 牛的呼声
18.「bzoj1642」[Usaco2007 Nov]Milking Time 挤奶时间
最大流:
19.「bzoj1711」[Usaco2007 Open]Dingin吃饭
高精度:
20.「JoyOI1040」表达式计算
dp+单调队列:
21.「bzoj1233」[Usaco2009Open]干草堆tower
dp+背包dp:
22.「bzoj1296」[SCOI2009]粉刷匠
爬山算法:
23.「poj2420」A Star not a Tree?
24.「JoyOI1551」平衡的爱
25.「poj2069」Super Star
模拟退火:
26.「poj2420」A Star not a Tree?
贪心+筛法:
27.「432C」Prime Swaps
模拟:
28.「cf431A」Black Square
暴力+dfs:
29.「cf431B」Shower Line
随机增量法:
30.「bzoj1336」[Balkan2002]Alien最小圆覆盖
31.「bzoj1337」最小圆覆盖
反素数+dfs:
32.「bzoj1053」[HAOI2007]反素数ant
floyd:
33.「1612」[Usaco2008 Jan]Cow Contest奶牛的比赛
筛法:
34.「bzoj1607」[Usaco2008 Dec]Patting Heads 轻拍牛头
并查集:
35.「JoyOI1863」 [Poetize I]黑魔法师之门
spfa:
36.「bzoj1631」[Usaco2007 Feb]Cow Party
rmq:
37.「bzoj1636」[Usaco2007 Jan]Balanced Lineup
bfs:
38.「bzoj1627」[Usaco2007 Dec]穿越泥地
贪心:
39.「bzoj1629」[Usaco2007 Demo]Cow Acrobats
题解:
斜率优化:
1.[Usaco2008 Mar]土地购买
2.「bzoj1911」[Apio2010]特别行动队
3.「bzoj1096」[ZJOI2007]仓库建设
kruskal:
4.「bzoj2429」[HAOI2006]聪明的猴子
//P2504 [HAOI2006]聪明的猴子
//在线测评地址https://www.luogu.org/problemnew/show/P2504
//Kruskal算法
//1000个点,边有C(1000,2)=1000*999/2=5*10^5条边
//边自小到大排列,需采用快排,平均算法时间复杂度O(nlogn)
//结束时,找到此时最大的边,猴子的跳跃距离与其进行比较即可
//最大距离sqrt((1000-(-1000))^2+(1000-(-1000))^2),计算过程中,int不会溢出
//决定计算时,不开方。
//编的过程中,小错误不断,采用跟踪的方式,一一排除。
//样例通过,提交AC。2019-4-11
#include
#include
#define maxn 1010
using namespace std;
int h[maxn/2],m,n,cnt=0,f[maxn],c;//cnt用来统计边数
struct Point{
int x,y;
}p[maxn];
struct Edge{
int a,b,d;//a节点,b节点,d边长
}e[maxn*maxn/2];
int dis(Point a,Point b){
return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);
}
int cmp(Edge a,Edge b){
return a.d
void init(){
int i,j;
scanf("%d",&m);//此处写成scanf("%d%d",&m,&n);,重大失误
for(i=1;i<=m;i++)scanf("%d",&h[i]);
sort(h+1,h+1+m);//自小到大排序
scanf("%d",&n);
for(i=1;i<=n;i++)f[i]=i;//此处一开始,写错位了
for(i=1;i<=n;i++)scanf("%d%d",&p[i].x,&p[i].y);
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
cnt++,e[cnt].a=i,e[cnt].b=j,e[cnt].d=dis(p[i],p[j]);//此处写成 cnt++,e[cnt].a=i,e[cnt].b,e[cnt].d=dis(p[i],p[j]);
sort(e+1,e+1+cnt,cmp);
}
int getf(int u){
return f[u]==u?u:f[u]=getf(f[u]);
}
void Kruskal(){
int i,b=0,f1,f2;//b统计边数
for(i=1;i<=cnt;i++){
f1=getf(e[i].a),f2=getf(e[i].b);
if(f1!=f2){
f[f2]=f1;
b++;
if(b==n-1){
c=e[i].d;
break;
}
}
}
}
int main(){
int i;
init();
Kruskal();
for(i=1;i<=m;i++)
if(h[i]*h[i]>=c)break;//此处写成 if(h[i]>=c)break;
printf("%d\n",m-i+1);
return 0;
}
5.「bzoj1626」[Usaco2007 Dec]Building Roads 修建道路
离线+线段树:
6.「bzoj3585」mex
树状数组:
7.「bzoj1782」[Usaco2010 Feb]slowdown慢慢游
状压dp:
8.「bzoj1231」[Usaco2008 Nov]mixup2 混乱的奶牛
树形dp+贪心:
9.「bzoj1827」[Usaco2010 Mar]gather 奶牛大集会
分数规划:
10.「bzoj1690」[Usaco2007 Dec]奶牛的旅行
二分+后缀数组:
11.「bzoj1717」[Usaco2006 Dec]Milk Patterns 产奶的模式
dp:
12.「bzoj1668」[Usaco2006 Oct]Cow Pie Treasures 馅饼里的财富
13.「cf431C」k-Tree
14.「bzoj1600」[Usaco2008 Oct]建造栅栏
15.「bzoj1617」River Crossing渡河问题
16.「bzoj1260」[CQOI2007]涂色paint
17.「bzoj1679」[Usaco2005 Jan]Moo Volume 牛的呼声
18.「bzoj1642」[Usaco2007 Nov]Milking Time 挤奶时间
最大流:
19.「bzoj1711」[Usaco2007 Open]Dingin吃饭
高精度:
20.「JoyOI1040」表达式计算
dp+单调队列:
21.「bzoj1233」[Usaco2009Open]干草堆tower
dp+背包dp:
22.「bzoj1296」[SCOI2009]粉刷匠
爬山算法:
23.「poj2420」A Star not a Tree?
24.「JoyOI1551」平衡的爱
25.「poj2069」Super Star
模拟退火:
26.「poj2420」A Star not a Tree?
贪心+筛法:
27.「432C」Prime Swaps
模拟:
28.「cf431A」Black Square
暴力+dfs:
29.「cf431B」Shower Line
随机增量法:
30.「bzoj1336」[Balkan2002]Alien最小圆覆盖
31.「bzoj1337」最小圆覆盖
反素数+dfs:
32.「bzoj1053」[HAOI2007]反素数ant
floyd:
33.「1612」[Usaco2008 Jan]Cow Contest奶牛的比赛
筛法:
34.「bzoj1607」[Usaco2008 Dec]Patting Heads 轻拍牛头
并查集:
35.「JoyOI1863」 [Poetize I]黑魔法师之门
spfa:
36.「bzoj1631」[Usaco2007 Feb]Cow Party
rmq:
37.「bzoj1636」[Usaco2007 Jan]Balanced Lineup
bfs:
38.「bzoj1627」[Usaco2007 Dec]穿越泥地
贪心:
39.「bzoj1629」[Usaco2007 Demo]Cow Acroba