51nod 1625 贪心/思维
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1625
第一行为n, m, x, k四个整数。 1 <= n <= 10, 1 <= m <= 200
1 <= x <= 10^9,0 <= k <= n + m 接下来为一个n * m的矩阵,代表每个观众获得的普通红包的金额。普通红包的金额取值范围为1 <= y <= 10^9
输出一个整数,代表现场观众能获得的最大红包总金额
3 4 1 5
10 5 7 2
10 5 10 8
3 9 5 4
78
还有这种操作,贪心半天发现会有后效性,后来看题解说枚举行状态我才明白过来= =,将行状态固定之后再去贪心的更新列状态找到最大值就方便多了。
万恶的bug竟是因为我用s1记录已经发过了几行红包,更新列的时候直接 (int j=s1;j<=k;++j) ,特喵的相当于赠送了一个红包,检查了半天我也是服气!
#include<bits/stdc++.h>
using namespace std;
#define LL long long
LL e[][];
LL r[];
LL o[];
int main()
{
LL n,m,x,k,i,j;
cin>>n>>m>>x>>k;
for(i=;i<=n;++i)
{
for(j=;j<=m;++j)
{
scanf("%lld",&e[i][j]);
r[i]+=e[i][j];
}
}
for(i=;i<=m;++i)
for(j=;j<=n;++j)
o[i]+=e[j][i];
LL ans=;
for(i=;i<(<<(n));++i)
{
LL s1=,s2=;
for(j=;j<=n;++j)
{
if(i&(<<(j-))){
s1++;
s2+=x*m;
}
else s2+=r[j];
}
if(s1>k) continue;
priority_queue<LL,vector<LL>,greater<LL> >q; for(j=;j<=m;++j)
{
LL fro=o[j];
for(LL c=;c<=n;++c)
if(i&(<<(c-))) {fro+=(x-e[c][j]);}
q.push(fro);
}
for(j=s1+;j<=k;++j)
{
LL t=q.top();
if(t>x*n||q.empty()) break;
else{
s2+=(x*n-t);
q.pop();
} }
ans=max(ans,s2); }
cout<<ans<<endl;
return ;
}
/*
附上一组数据
3 3 30 2
10 10 10
1 1 99
20 20 99
388
*/
51nod 1625 贪心/思维的更多相关文章
- 51nod 1099 贪心/思维
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1099 1099 任务执行顺序 基准时间限制:1 秒 空间限制:13107 ...
- Mike and distribution CodeForces - 798D (贪心+思维)
题目链接 TAG: 这是我近期做过最棒的一道贪心思维题,不容易想到,想到就出乎意料. 题意:给定两个含有N个正整数的数组a和b,让你输出一个数字k ,要求k不大于n/2+1,并且输出k个整数,范围为1 ...
- Codeforces Round #546 (Div. 2) D 贪心 + 思维
https://codeforces.com/contest/1136/problem/D 贪心 + 思维 题意 你面前有一个队列,加上你有n个人(n<=3e5),有m(m<=个交换法则, ...
- 贪心/思维题 Codeforces Round #310 (Div. 2) C. Case of Matryoshkas
题目传送门 /* 题意:套娃娃,可以套一个单独的娃娃,或者把最后面的娃娃取出,最后使得0-1-2-...-(n-1),问最少要几步 贪心/思维题:娃娃的状态:取出+套上(2),套上(1), 已套上(0 ...
- 贪心/思维题 UVA 11292 The Dragon of Loowater
题目传送门 /* 题意:n个头,m个士兵,问能否砍掉n个头 贪心/思维题:两个数组升序排序,用最弱的士兵砍掉当前的头 */ #include <cstdio> #include <c ...
- T - Posterized(贪心思维)
Description Professor Ibrahim has prepared the final homework for his algorithm’s class. He asked hi ...
- 51nod 1563 坐标轴上的最大团(今日gg模拟第一题) | 线段覆盖 贪心 思维题
51nod 1563 坐标轴上的最大团 坐标轴上有n个点,每个点有一个权值.第i个点的坐标是 xi ,权值是 wi .现在对这些点建图.对于点对 (i,j) ,如果 |xi−xj|≥wi+wj ,那么 ...
- 51nod 1163贪心
用优先队列来贪心,是一个很好地想法.优先队列在很多时候可以维护最值,同时可以考虑到一些其他情况. http://www.51nod.com/onlineJudge/questionCode.html# ...
- 51nod 1428 贪心
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1428 1428 活动安排问题 基准时间限制:1 秒 空间限制:13107 ...
随机推荐
- 保存到properties
@FXMLprivate void savaconfig(ActionEvent event) { try { Properties prop = new Properties(); FileWrit ...
- shadow批量破解
john有个参数可以设置破解时间,比如破解5秒则设置:--max-run-time=5,可以利用这个参数批量破解 for i in *;do (echo $i>>out;john --ma ...
- c# 获取网页源代码(支持cookie),最简单代码
/// /// 获取网页源码 public static string GetHtmls(string url, string referer = "", string cooki ...
- 【转】Python爬虫_示例2
爬虫项目:爬取并筛选拉钩网职位信息自动提交简历 一 目标站点分析 #一:实验前准备: 浏览器用Chrome 用Ctrl+Shift+Delete清除浏览器缓存的Cookie 打开network准备 ...
- json教程系列(2)-生成JSONObject的方法
生成JSONObject一般有两种方式,通过javabean或者map类型来生成.如下面的例子: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2 ...
- PHP 数字转大写
<?php header("content-type:text/html;charset=utf-8"); function numToRmb($num){ $rmbNum ...
- centos中安装php7
centos7下安装php7 php7 centos7 安装PHP7 首先安装一些必须的依赖,这里就不阐述了,后面文章再细说 yum install -y \ gcc-c++ autoconf \ l ...
- 设计模式—迭代器Iterator模式
什么是迭代器模式? 让用户通过特定的接口访问容器的数据,不需要了解容器内部的数据结构. 首先我们先模仿集合中ArrayList和LinkedList的实现.一个是基于数组的实现.一个是基于链表的实现, ...
- 建议41:使用argparse处理命令行参数
# -*- coding:utf-8 -*- ''' 以现阶段最好用的参数处理标准库是argparse ''' import argparse parser = argparse.ArgumentPa ...
- 【HackerRank】Gem Stones
Gem Stones John has discovered various rocks. Each rock is composed of various elements, and each el ...