C. Party Lemonade

这个题目是贪心,开始我以为是背包,不过也不太好背包,因为这个L都已经是1e9了。

这个题目怎么贪心呢?它是因为这里有一个二倍的关系,所以说val[i]=val[i-1]*2

所以利用这个关系,我们可以求出每一个体积的最小的花费。

这个处理完之后,我们就可以开始处理题目中的L了。

这个L,从高位开始枚举,先求出L个中最多并且要小于等于这个最大值可以用的这个物品的数量,然后如果是小于,那么再多选一次,这样肯定会超出体积,

不过这样就保证了大于等于L。

对于下面一个L取完膜之后继续这样处理,最后求出最小值。

#include <cstdio>
#include <cstring>
#include <queue>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <iostream>
#define inf 0x3f3f3f3f
#define inf64 0x3f3f3f3f3f3f3f3f
using namespace std;
typedef long long ll;
const int maxn = 1e5 + ;
ll val[]; int main()
{
int n;
ll L;
scanf("%d%I64d", &n, &L);
for (int i = ; i <= n; i++) scanf("%I64d", &val[i]);
for (int i = ; i <= n; i++) val[i] = min(val[i], val[i - ] * );
ll ans = inf64, sum = ;
for(int i=n;i>=;i--)
{
ll len = << (i - );
ll num = L / len;
sum += num * val[i];
L %= len;
ans = min(ans, sum + (L > )*val[i]);
}
printf("%I64d\n", ans);
return ;
}

C

B. Dima and a Bad XOR

这个题目其实比较简单,就是找规律,如果找出来了,就很简单了。

首先我发现如果每一行有两个不同的数,那么肯定是可以的,然后lj发现如果最后一行有两个不相同的数,那么肯定也是可以的,最后就可以推出来

如果任意一行有两个数不同,那么肯定也是可以的。

这样子就很简单了。

#include <cstdio>
#include <cstring>
#include <queue>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <iostream>
#define inf 0x3f3f3f3f
#define inf64 0x3f3f3f3f3f3f3f3f
using namespace std;
typedef long long ll;
const int maxn = 1e5 + ;
int mp[][]; int main() {
int n, m;
scanf("%d%d", &n, &m);
int flag = , mark = ;
for (int i = ; i <= n; i++) {
for (int j = ; j <= m; j++) {
scanf("%d", &mp[i][j]);
if (!flag&&j > && mp[i][j] != mp[i][]) {
flag = i;
mark = j;
}
}
}
if (!flag)
{
int ans = ;
for (int i = ; i <= n; i++) ans ^= mp[i][];
if (ans == ) printf("NIE\n");
else
{
printf("TAK\n");
for (int i = ; i < n; i++) printf("1 ");
printf("1\n");
}
}
else
{
printf("TAK\n");
int ans = ;
for (int i = ; i <= n; i++) ans ^= mp[i][];
if(ans)
{
for (int i = ; i < n; i++) printf("1 ");
printf("1\n");
}
else
{
for(int i=;i<=n;i++)
{
if (i == flag) printf("%d ", mark);
else printf("1 ");
}
printf("\n");
}
}
return ;
}

B

J 牛客假日团队赛1 分组

这个题目其实很不好想,这个是lj一步步引导我才写出来的,

首先这个题目每一个位置可以往后面推出 1~k 所以算一下复杂度是1e7

dp[i]表示以 i 为最后一个值,从 1~i 的最大的分完组之后的和。

所以这个就有刷表法和填表法,

就是从这个状态往后推和每一个状态从前面推过来,第一个很好写,后面那个比较难。

#include <cstdio>
#include <cstring>
#include <queue>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <iostream>
#define inf 0x3f3f3f3f
#define inf64 0x3f3f3f3f3f3f3f3f
using namespace std;
typedef long long ll;
const int maxn = 1e4 + ;
int dp[maxn];
int a[maxn]; int main()
{
int n, k;
scanf("%d%d", &n, &k);
for (int i = ; i <= n; i++) scanf("%d", &a[i]);
for(int i=;i<=n;i++)
{
int mxx = ;
for(int j=;j<=k;j++)
{
if (i + j > n) break;
mxx = max(mxx, a[i + j]);
dp[i + j] = max(dp[i + j], dp[i] + j * mxx);
//printf("i=%d j=%d dp[%d]=%d\n", i, j, i + j, dp[i + j]);
}
}
printf("%d\n", dp[n]);
return ;
}

1

#include <cstdio>
#include <cstring>
#include <queue>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <iostream>
#define inf 0x3f3f3f3f
#define inf64 0x3f3f3f3f3f3f3f3f
using namespace std;
typedef long long ll;
const int maxn = 1e4 + ;
int dp[maxn];
int a[maxn]; int main()
{
int n, k;
scanf("%d%d", &n, &k);
for (int i = ; i <= n; i++) scanf("%d", &a[i]);
for(int i=;i<=n;i++)
{
int mxx = ;
for(int j=;j<k;j++)
{
if (i < j + ) break;
mxx = max(mxx, a[i - j]);
dp[i] = max(dp[i],dp[i - j - ] + mxx * (j + ));
// printf("i=%d j=%d dp[%d]=%d dp[%d]=%d\n", i, j, i, dp[i],i-j,dp[i-j]);
// printf("mxx=%d\n", mxx);
}
}
printf("%d\n", dp[n]);
return ;
}

2

dp 20190618的更多相关文章

  1. BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]

    1911: [Apio2010]特别行动队 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 4142  Solved: 1964[Submit][Statu ...

  2. 2013 Asia Changsha Regional Contest---Josephina and RPG(DP)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4800 Problem Description A role-playing game (RPG and ...

  3. AEAI DP V3.7.0 发布,开源综合应用开发平台

    1  升级说明 AEAI DP 3.7版本是AEAI DP一个里程碑版本,基于JDK1.7开发,在本版本中新增支持Rest服务开发机制(默认支持WebService服务开发机制),且支持WS服务.RS ...

  4. AEAI DP V3.6.0 升级说明,开源综合应用开发平台

    AEAI DP综合应用开发平台是一款扩展开发工具,专门用于开发MIS类的Java Web应用,本次发版的AEAI DP_v3.6.0版本为AEAI DP _v3.5.0版本的升级版本,该产品现已开源并 ...

  5. BZOJ 1597: [Usaco2008 Mar]土地购买 [斜率优化DP]

    1597: [Usaco2008 Mar]土地购买 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4026  Solved: 1473[Submit] ...

  6. [斜率优化DP]【学习笔记】【更新中】

    参考资料: 1.元旦集训的课件已经很好了 http://files.cnblogs.com/files/candy99/dp.pdf 2.http://www.cnblogs.com/MashiroS ...

  7. BZOJ 1010: [HNOI2008]玩具装箱toy [DP 斜率优化]

    1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 9812  Solved: 3978[Submit][St ...

  8. px、dp和sp,这些单位有什么区别?

    DP 这个是最常用但也最难理解的尺寸单位.它与“像素密度”密切相关,所以 首先我们解释一下什么是像素密度.假设有一部手机,屏幕的物理尺寸为1.5英寸x2英寸,屏幕分辨率为240x320,则我们可以计算 ...

  9. android px转换为dip/dp

    /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public int dipTopx(Context context, float dpValue) { final floa ...

随机推荐

  1. GIL 已经被杀死了么?

    GIL 已经被杀死了么? 本文原创并首发于公众号[Python猫],未经授权,请勿转载. 原文地址:https://mp.weixin.qq.com/s/8KvQemz0SWq2hw-2aBPv2Q ...

  2. shell初级-----更多结构化命令

    for命令 bash shell提供了for命令,允许你创建一个遍历一系列的循环. for var in list do commands done 1.读取列表中的值 for命令最基本的用法就是遍历 ...

  3. 强大的在线web编辑器UEditor

    UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码. UEditor在线演示地址:http://u ...

  4. 洛谷P3723 [AH2017/HNOI2017]礼物(FFT)

    传送门 首先,两个数同时增加自然数值相当于只有其中一个数增加(此增加量可以小于0) 我们令$x$为当前的增加量,${a},{b}$分别为旋转后的两个数列,那么$$ans=\sum_{i=1}^n(a_ ...

  5. Elasticsearch学习记录(分布式的特性)

    Elasticsearch学习记录(分布式的特性) 分布式的特性 我们提到Elasticsearch可以扩展到上百(甚至上千)的服务器来处理PB级的数据.然而我们的例子只给出了一些使用Elastics ...

  6. rn-splash-screen 启动页 安卓

    1. 进入项目npm install --save rn-splash-screen 2.react-native link rn-splash-screen 3.在项目android/app/src ...

  7. 5 天 4000 star 的一个爆款开源项目

    今天早上起来浏览 GitHub 的时候,在周热门趋势排行榜上看到了这么一个开源项目,仅仅 5 天时间,爬到了周排行榜的第一名的位置.而在每天的排行榜上,今天一早也高高位居排行榜的第二位. 这个开源项目 ...

  8. iOS UITableView 解决估算行高和指定行高的矛盾

    喜欢交朋友的加:微信号 dwjluck2013 1.一般来说 在iOS 中若UITableViewCell 固定行高, 会通过 - (CGFloat)tableView:(UITableView *) ...

  9. django_uWSGI+nginx环境

    1 uWSGI 作用 Django 默认使用的是 Python 自带的 simple HTTPServer 提供web服务的,在安全性和效率上都是不行的,只能用作django开发测试. WSGI是一个 ...

  10. AKOJ-1695-找素数

    题意: 给定区间L,R. 计算区间中素数个数. 2 <= L,R <= 2147483647, R-L <= 1000000. 思路: 素数区间筛 先筛(2-sqrt(r)). 再用 ...