hdu 1735(贪心) 统计字数
2024-10-15 17:02:45
戳我穿越:http://acm.hdu.edu.cn/showproblem.php?pid=1735
对于贪心,二分,枚举等基础一定要掌握的很牢,要一步一个脚印走踏实
这是道贪心的题目,要有贪心的意识。
首先将所有为0的地方统计,因为是求最小的字数,所有最后一行后面的0可以看为空格直接减掉,
因为有m段(一定包括第一行),再减去m*2,最后枚举每行,将至少前两个为0的上一行的最后有多少
的0统计起来排序,再依次减去前m-1个大的,这样就保证了得到的答案是符合条件中最小的
code
#include<cstdio>
#include<algorithm>
using namespace std;
int yj[][],lsy[];
bool cmp(int x,int y){return x>y;}
int main()
{
int n,m,x,sum,ans,i,j,k,flag;
while (~scanf("%d %d %d",&n,&m,&x))
{
sum=;
for (i=;i<=n;i++)
{
for (j=;j<=m;j++)
{
scanf("%d",&yj[i][j]);
if (!yj[i][j])
sum++;
}
}
//printf("%d\n",sum);
for (i=m;i>=;i--)
{
if (!yj[n][i]) sum--;
else break;
}
//printf("%d\n",sum);
k=;
for (i=;i<=n;i++)
{
ans=;flag=;
if (!yj[i][]&&!yj[i][])
{
flag=;
for (j=m;j>=;j--)
{
if (!yj[i-][j])
ans++;
else
break;
}
}
if (flag)
lsy[k++]=ans;
}
sum-=*x;x--;
/*for (i=1;i<k;i++)
printf("%d ",lsy[i]);
printf("\n");*/
sort(lsy+,lsy+k,cmp);
for (i=;i<=x;i++)
sum-=lsy[i];
printf("%d\n",sum);
}
return ;
}
最新文章
- CSS 页面顶部阴影和给浏览器强制加上滚动条
- 移动端手势库hammerJS 2.0.4官方文档翻译
- Linux CentOS 6.6安装JDK1.7
- (转)sscanf() - 从一个字符串中读进与指定格式相符的数据
- 15款增强web体验的Javascript库
- Java NIO教程 Channel
- [CLR via C#]26. 计算限制的异步操作
- 用js实现返回上一页
- apimonitor
- 1030. Travel Plan (30)
- Swift和OC相互调
- shell中的内建命令, 函数和外部命令
- 64位Win7下安装并配置Python3的深度学习库:Theano
- Django1-10-5管理界面中文设置
- niagara Workbench module import IntelliJ
- (转)MFC界面风格
- Thread.Sleep(0)妙用
- h5语音录制及上传(Java版语音聊天系统)
- CentOS工作内容(一)CentOS6.4的安装 hwclock和date
- 【Spring学习笔记-MVC-12】Spring MVC视图解析器之ResourceBundleViewResolver