【BZOJ】1621: [Usaco2008 Open]Roads Around The Farm分岔路口(dfs)
2014-09-02 22:54
465 查看
http://www.lydsy.com/JudgeOnline/problem.php?id=1621
这题用笔推一下就懂了的。。。。
当2|(n-k)时,才能分,否则不能分。
那么dfs即可。。
INPUT DETAILS:
There are 6 cows and the difference in group sizes is 2.
OUTPUT DETAILS:
There are 3 final groups (with 2, 1, and 3 cows in them).
6
/ \
2 4
/ \
1 3
这题用笔推一下就懂了的。。。。
当2|(n-k)时,才能分,否则不能分。
那么dfs即可。。
#include <cstdio> #include <cstring> #include <cmath> #include <string> #include <iostream> #include <algorithm> using namespace std; #define rep(i, n) for(int i=0; i<(n); ++i) #define for1(i,a,n) for(int i=(a);i<=(n);++i) #define for2(i,a,n) for(int i=(a);i<(n);++i) #define for3(i,a,n) for(int i=(a);i>=(n);--i) #define for4(i,a,n) for(int i=(a);i>(n);--i) #define CC(i,a) memset(i,a,sizeof(i)) #define read(a) a=getint() #define print(a) printf("%d", a) #define dbg(x) cout << #x << " = " << x << endl #define printarr(a, n, m) rep(aaa, n) { rep(bbb, m) cout << a[aaa][bbb]; cout << endl; } inline const int getint() { int r=0, k=1; char c=getchar(); for(; c<'0'||c>'9'; c=getchar()) if(c=='-') k=-1; for(; c>='0'&&c<='9'; c=getchar()) r=r*10+c-'0'; return k*r; } inline const int max(const int &a, const int &b) { return a>b?a:b; } inline const int min(const int &a, const int &b) { return a<b?a:b; } int ans, k; void dfs(int n) { if(n>k && !((n-k)&1)) { int a=(n-k)>>1; dfs(a); dfs(n-a); } else ++ans; } int main() { int n=getint(); read(k); dfs(n); print(ans); return 0; }
Description
约 翰的N(1≤N≤1,000,000,000)只奶牛要出发去探索牧场四周的土地.她们将沿着一条路走,一直走到三岔路口(可以认为所有的路口都是这样 的).这时候,这一群奶牛可能会分成两群,分别沿着接下来的两条路继续走.如果她们再次走到三岔路口,那么仍有可能继续分裂成两群继续走. 奶牛的 分裂方式十分古怪:如果这一群奶牛可以精确地分成两部分,这两部分的牛数恰好相差K(1≤K≤1000),那么在三岔路口牛群就会分裂.否则,牛群不会分 裂,她们都将在这里待下去,平静地吃草. 请计算,最终将会有多少群奶牛在平静地吃草.Input
两个整数N和K.Output
最后的牛群数.Sample Input
6 2INPUT DETAILS:
There are 6 cows and the difference in group sizes is 2.
Sample Output
3OUTPUT DETAILS:
There are 3 final groups (with 2, 1, and 3 cows in them).
6
/ \
2 4
/ \
1 3
HINT
6只奶牛先分成2只和4只.4只奶牛又分成1只和3只.最后有三群奶牛.Source
Silver相关文章推荐
- bzoj 1621: [Usaco2008 Open]Roads Around The Farm分岔路口【dfs】
- BZOJ_1621_[Usaco2008_Open]_Roads_Around_The_Farm_分岔路口(模拟+大水题)
- bzoj:1621 [Usaco2008 Open]Roads Around The Farm分岔路口
- BZOJ1621: [Usaco2008 Open]Roads Around The Farm分岔路口
- bzoj1621【Usaco2008 Open】Roads Around The Farm
- BZOJ 1621: [Usaco2008 Open]Roads Around The Farm分岔路口
- [BZOJ1621][Usaco2008 Open]Roads Around The Farm分岔路口
- BZOJ-1621-[Usaco2008 Open]Roads Around The Farm分岔路口
- BZOJ1621: [Usaco2008 Open]Roads Around The Farm分岔路口
- 【BZOJ 1621】 [Usaco2008 Open]Roads Around The Farm分岔路口
- [BZOJ] 1621: [Usaco2008 Open]Roads Around The Farm分岔路口
- BZOJ 1621: [Usaco2008 Open]Roads Around The Farm分岔路口
- [BZOJ] 1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路
- 【bzoj 1616】[Usaco2008 Mar]Cow Travelling游荡的奶牛(dfs|dp)
- 并查集+Set-BZOJ-1604-[Usaco2008 Open]Cow Neighborhoods 奶牛的邻居
- 【BZOJ】1603: [Usaco2008 Oct]打谷机(水题+dfs)
- bzoj1624 [Usaco2008 Open] Clear And Present Danger 寻宝之路
- [BZOJ1604] [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居
- BZOJ 1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路( 最短路 )
- BZOJ_1624_ [Usaco2008_Open]_Clear_And_Present_Danger_寻宝之路_(最短路_Floyd)