Section 1.3 Barn Reapir
来源:互联网 发布:软件压力测试题 编辑:程序博客网 时间:2024/06/11 10:25
贪心算法,思路不难但在提交过程中发现很多bug:
1.得到需要“切板”的位置后,应该按num排序
2.当M == 1时要特别处理,否则number为空向量,程序异常退出
3.输入牛的位置是无序的,要先按num升序排序
4.当M > C的时候,number个数应该为min(M,C)
/*ID: alexyua2PROG: barn1LANG: C++*/#include<fstream>#include<vector>#include<algorithm>using namespace std;ifstream fin("barn1.in");ofstream fout("barn1.out");//ifstream fin("in.txt");//ofstream fout("out.txt");struct Stall{ int num; int interval;};bool cmp1(Stall a,Stall b){ return a.interval > b.interval;}bool cmp2(Stall a,Stall b){ return a.num < b.num;}bool cmp3(int a,int b){ return a<b; }int main(){ //input int M,S,C; fin>>M >>S >>C; vector<Stall>cows; int i; for(i=0;i<C;i++) { Stall temp; fin>>temp.num; cows.push_back(temp); } //BUG 3:the input is arbitory order of the num sort(cows.begin(),cows.end(),cmp2); //compute the interval for(i=0;i<C-1;i++) cows[i].interval = cows[i+1].num - cows[i].num; //sort by the interval sort(cows.begin(),cows.end(),cmp1); //store M stalls' num where need cutting vector<int>number; //BUG 2 if(M == 1) number.push_back(0); else { int loop = min(M,C); //BUG 4 for(i=0;i<loop-1;i++) { number.push_back(cows[i].num); } } //sort by the num sort(cows.begin(),cows.end(),cmp2); //BUG 1 sort(number.begin(),number.end(),cmp3); //greedy algorithm int beg = cows[0].num,end = cows[0].num; int result = 0,j=0; for(i=0;i<C;i++) { if(cows[i].num == number[j]) { end = cows[i].num; result += end - beg + 1; beg = cows[i+1].num; j++; } if(j == M-1) break; } end = cows[C-1].num; result += end - beg + 1; fout<<result <<endl; //close files fin.close(); fout.close(); return 0;}
0 0
- Section 1.3 Barn Reapir
- Section 1.3 Barn Pepair
- [USACO]Section 1.3 Barn Repair
- USACO Section 1.3 Barn Repair
- USACO Section 1.3 Barn Repair
- USACO Section 1.3 - Barn Repair
- USACO-Section 1.3 Barn Repair[...]
- USCAO-Section 1.3 Barn Repair
- USACO Section 1.3 Barn Repair
- USACO Section 1.3.3 Barn Repair
- USACO Section 1.3.2 Barn Repair
- USACO-Section 1.3 Barn Repair(贪心)
- Section 5.3 Big Barn
- USACO Section 1.3 Barn Repair - 卡了一年的DP...
- USACO Training Section 1.3 Barn Repair 解题报告&AC代码
- USACO Section 5.3 Big Barn - DP...
- USACO 1.3-Barn Repair
- 1.3.2 Barn Repair
- css3中的content字图片处理background
- 如何解决gcc版本冲突?
- 开博客了
- 如何查看Mac电脑的处理器核心数目-CPU的核心数目
- 深入理解Linux内存管理-之-目录导航
- Section 1.3 Barn Reapir
- Verilog的generate的用法
- sql 工具
- HTTP协议之状态码详解
- spring基础——ssh学习笔记
- leetcode: Reservoir Sampling:Linked List Random Node(382)
- Android知识点总结--第四篇
- 回车符,换行符的区别
- 有关NSURLConnection的几个问题