bzoj1621[Usaco2008 Open]Roads Around The Farm分岔路口*

bzoj1621[Usaco2008 Open]Roads Around The Farm分岔路口

题意:

n头牛在路上走,每当它们走到岔路,如果这些牛可以分为数量相差刚好为k的两群,那么它们就会分成这样的两群往前走,否则就会停下来吃草。问最后有多少群在吃草。n≤10^9,k≤1000。

题解:

暴力模拟。(好像实际上不管有多少只牛只要经过3、4个岔路后就会无法再分并停下来吃草)

代码:

1 #include <cstdio>
2 int n,k,ans;
3 void dfs(int n,int k){
4     if(n>k&&(!((n-k)&1)))dfs((n-k)/2,k),dfs((n-k)/2+k,k);else ans++;
5 }
6 int main(){
7     scanf("%d%d",&n,&k); dfs(n,k); printf("%d",ans); return 0;
8 }

 

20160918

posted @ 2016-09-18 20:19  YuanZiming  阅读(149)  评论(0编辑  收藏  举报