usaco 4.2 Cowcycles
来源:互联网 发布:怎么看淘宝店铺保证金 编辑:程序博客网 时间:2024/06/01 07:43
搜索题目,只需要两个优化即可,其他的效果并不明显
1)因为递归搜索出的数列是有序的,所以将分子升序,分母降序排列后,再按顺序相除,得到的数列将“较为有序”,采用插入排
序比较好,因为c++的sort函数在数组小的时候会自动insert_sort(),所以还是可以用sort的。这个优化是这道题目的关键!
2)计算方差可以采用 D(x) = E(x*x) - E(x)*E(x)
这道题目花了很长时间,总结如下:
1)对于搜索最终更新答案的函数要尽量优化,对较为有序的数列排序,速度很快
2)当遇到像编译器错误的问题时,一般是数组大小没开够,或者开错了,这次就是把ans[2][N]写成了ans[N][2]导致错误
- #include <iostream>
- #include <algorithm>
- #include <map>
- #include <vector>
- using namespace std;
- /*
- PROG: cowcycle
- LANG: C++
- ID: heben991
- */
- const int N = 60;
- int f[N], r[N], F, R, f1, f2, r1, r2;
- int ans[2][N];
- double a[N], mini=1e15;
- void update()
- {
- double mean=0, vari=0, t;
- int i, j, k=0, p;
- for(i = 1; i <= F; ++i)
- for(j = R; j >= 1; --j)
- {
- t = (double)f[i]/r[j];
- a[++k] = t;
- }
- sort(a+1,a+k+1);
- --k;
- for(i = 1; i <= k; ++i)
- {
- a[i]=a[i+1]-a[i];
- mean += a[i];
- vari += a[i]*a[i];
- }
- mean /= k;
- vari = vari/k - mean*mean;
- if(vari < mini)
- {
- mini = vari;
- memcpy(ans[0], f+1, F*sizeof(int));
- memcpy(ans[1], r+1, R*sizeof(int));
- }
- }
- void dfs_rear(int k, int low)
- {
- if(k > R)
- {
- int i, j;
- if( f[F]*r[R] < 3*f[1]*r[1] ) return;
- update();
- }
- else
- {
- for(r[k] = low; r[k]-R+k <= r2; ++r[k])
- {
- dfs_rear(k+1,r[k]+1);
- }
- }
- }
- void dfs_front(int k, int low)
- {
- if(k > F)
- {
- dfs_rear(1, r1);
- }
- else
- {
- for(f[k] = low; f[k]-F+k <= f2; ++f[k])
- {
- dfs_front(k+1, f[k]+1);
- }
- }
- }
- int main()
- {
- int i, j, k, t, h;
- freopen("cowcycle.in", "r", stdin);
- freopen("cowcycle.out","w",stdout);
- scanf("%d%d%d%d%d%d", &F,&R,&f1,&f2,&r1,&r2);
- dfs_front(1, f1);
- printf("%d", ans[0][0]);
- for(i = 1; i < F; ++i) printf(" %d", ans[0][i]);
- puts("");
- printf("%d", ans[1][0]);
- for(i = 1; i < R; ++i) printf(" %d", ans[1][i]);
- puts("");
- return 0;
- }
- usaco 4.2 Cowcycles
- usaco 4.2.4 Cowcycles
- USACO Section 4.2 Cowcycles - 枚举~
- usaco 4.2 Cowcycles(搜索+剪枝)
- usaco training 4.2.4 Cowcycles 题解
- USACO Cowcycles 解题报告
- USACO 6.3.3 Cowcycles dfs+剪枝
- Cowcycles
- USACO6.3.3 Cowcycles(cowcycle)
- usaco6.3.3 Cowcycles
- USACO 4.2 分析
- USACO 4.2 Drainage Ditches
- USACO 4.2 job processing
- USACO 4.2.2 stall4
- USACO 4.2.4/cowcycle
- USACO 4.2解题报告
- USACO 4.2 Drainage Ditches
- USACO
- 自绘控件的方法
- linux软中断的小结
- SOA实施技巧:评估现有技能和开发文化
- 一位软件工程师的分享工作总结(推荐程序员关注下)
- 视觉信息处理过程包括三个主要表达层次
- usaco 4.2 Cowcycles
- Gartner:企业中新兴的SOA模式
- 变化: IT的最大挑战,也是常态
- 好快啊,奥运
- About : destination host unreachable
- 15个设计得最糟糕最变态的CAPTCHA验证码
- 大型项目中需求分析人员与其他人员的分工协作
- 正则表达式c#中的使用
- CodeProject: MP3FileInfo - Extract Header and ID3 Tags of an MP3 File. Free source code and programming help