*4.2.1 草地排水「
裸的最大流(好像不滿足好題的標準。。。*
#include
#include
#include
#include
#include
#include
using
namespace
std;
struct bian
;vector
tu[1050];
bool vis[1050];
void add(int f,int to,int cap)
); tu[to].push_back((bian));
}int dfs(int v,int t,int f)}}
return0;}
int maxflow(int s,int t)
}int t,n,m,x,y,r;
void init()
int main()
cout
<1,n)二分圖匹配,裸的最大流(好像又不滿足好題。。。不粘了
usaco4.2.3
題還不錯,我的做法是先二分第乙個,然後得到第乙個的解後,再對第二個二分貪心
sort(a+1,a+m1+1,cmp);
sort(b+1,b+m2+1,cmp);
int l=1,r=200000;
while(l1)
for(int i=1;i<=m1&&a[i]<=l;i++)
num+=l/a[i];
if(num>=n)
ans1=l;
else
ans1=r;
cout<0;
int lastnum=0;
for(int i=1;i<=ans1;i++)
for(int i=1;i<=ans1;i++)
l=ans1,r=400000;
bool flag=0;
while(l1)
flag=0;
for(int j=m2;j>=1;j--)
}if(!flag)
}if(flag)
r=mid;
}cout開始做寬搜,結果可想而知。。。。
然後想找規律,結果仍無果
後來寫深搜就過了。。。
此題搜尋優化剪枝很明顯,只讓w往右走,z往左走
void dfs(int
x) num=1;
return ;
}
if(num==1)
return ;
int df=last;
if(w>=2&&last!=w-2)
}if(w>=1&&last!=w-1)
}if(w<2
*n&&last!=w+1)
}if(w<2
*n-1&&last!=w+2)
}}
usaco5.1.4
先二分長度,在同長度下hush,如果乙個hush值裡存了兩個及以上的元素,就把他們o(長度)判一下,如果還符合,那就說明這個長度是可以的
//所以說這裡hush作用是優化,為什麼乙個hush值有兩個及以上元素後還要再判一下呢? 。。。對自己hush函式不自信,這樣可以更穩
另外,在此題中我終於找到了最穩的二分方法:
int l,r;
while(l1)
if(pan(r))
ans=r;
else
ans=l;
就是這樣的格式
for(int i=1;i1]-music[i];
int l=4,r=2500;
while(l1)
bool flag=0;
for(int k=0;k<=99996;k++)}}
}}
if(flag==1)
l=mid;
else
r=mid-1;
}for(int i=0;i<=99996;i++)
if(!hush[i].empty())
hush[i].clear();
for(int i=1;i<=n-r;i++)
bool flag=0;
for(int k=0;k<=99996;k++)}}
}}
if(flag==0&&l==4)
if(flag==0)
cout<1
cout<1
<
usaco 訓練總結2
usaco 5.3.1 怎麼做呢?搜唄!void dfs int x,int cnt,int now for int i 1 i cnt i ans i b i return if x p return if vis now return 剪枝2 vis now cnt dfs x 1,cnt,no...
usaco 訓練總結4
這裡都是些之前在codevs做的但在usaco4章節後沒有找到的 汗 覺得有必要記錄的題目 素數方陣 很刁鑽很刁鑽的暴搜 開始的思路 既然都是質數,那質數的最後一位一定是1,3,7或9,所以先預處理每一位都是1,3,7,9的,各個位和還滿足要求的質數,然後把他們分別列舉填到最後一行,最後一列,然後處...
ACM訓練總結(1)
第一次做英文版的程式設計題,身為英語渣渣的我十分的不適應。但想到未來有一天出去比賽,結果題目都看不懂,那就太尷尬了。所以說最近的主要工作除了上課 作業 做題之外,最重要的就是盡快學習英語,多背點單詞,多看看英文題目,看看英文的程式設計解析。這次的21個題沒有在規定時間內做完其實也挺沮喪的,還是要在週...