【hdoj_2124】RepairTheWall
2024-08-28 01:40:19
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2124
思路:贪心法.由于要求所需的块儿(block)的最小数目,先把所有的块儿加起来,看看大小是否>=缝隙L,如果不是,则输出impossible,如果可以,则先用最大的块儿填充,然后用更小的,直到缝隙补齐就停止.
C++代码如下
#include<iostream>
#include<algorithm>
using namespace std; bool cmp(int a,int b)
{
return a>b;
} int main()
{
int L,N;
while(cin>>L>>N)
{
int *A = new int[N];
int sum=0;
for(int i=0;i<N;i++)
{
cin >> A[i];
sum += A[i];
}
if(sum>=L)//可以填满
{
int result = 0;
sort(A,A+N,cmp);//排序 for(int i=0;i<N;i++)
{
if(L>A[i])
{
result ++;
L = L - A[i];
}
else
{
result ++;
//L = 0;这句话可以不要了
break;
}
//上面的for循环的循环体可以作如下简化
/*
if(L==0) break;
result ++;
L = L - std::min(L,A[i]);
*/
}
cout << result << endl;
}
else
cout << "impossible" << endl;
} return 0;
}
上述代码,提交可以通过.
最新文章
- DOS下命令符开启wifi无internet访问解决办法
- JAVA Day8
- ASCII码表(二进制 十进制 十六进制)
- 不同场景下 MySQL 的迁移方案
- Apache Spark源码走读之24 -- Sort-based Shuffle的设计与实现
- Metadata file &#39;xxx.dll&#39; could not be found 已解决
- ✡ leetcode 160. Intersection of Two Linked Lists 求两个链表的起始重复位置 --------- java
- Flink Program Guide (8) -- Working with State :Fault Tolerance(DataStream API编程指导 -- For Java)
- CSS的z-index(分层)
- JavaScript之再谈回调与闭包
- WCF引用方式
- 设计模式:Prototype 原型模式 - 同学你抄过别人的作业么?-clone()方法的使用
- ES6关于Unicode的相关扩展
- mysql_pconnect 问题
- Java高级框架——Mybatis(二)
- html页面调用js文件里的函数报错-->;方法名 is not defined处理方法
- maven 项目中没有src/test/java文件夹
- scala编程第15章
- mac下安装phalcon
- PHP对象的使用,什么时候可以用中括号[], 什么时候可以用箭头->;