Topcoder 658 div2 500 加强版

不过给了<=20,暴力肯定不行。

然后想DP方程,先二分可能需要的最大次数mid;

然后根据 mid 构造 DP方程。

假设x[i]需要 x个9 ,y个3,z个1,x*9+y*3+z>=x[i];

然后求出dp[n][[x]][y][z]<=mid 是否 符合。

转移方程为:dp[i+1][n9+m9][m3+n3]=min(dp[i+1][n9+m9][n3+m3],dp[i][n9][n3]+max(0,x[i]-9*m9-3*m3));

(i<n,m9+n9<=mid,m3+n3<=mid)

这里是5维

 #include <iostream>
#include <cstdlib>
#include <algorithm>
#include <fstream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <ctime>
#include <queue>
#include <stack>
#include <vector>
#include <map>
#include <deque>
#include <set> using namespace std; int dp[][][]; class Mutalisk
{
public:
int minimalAttacks(vector <int> x)
{ int r=,l=;
int n=x.size();
for (int _=;_<;_++)
{
int mid=(l+r)>>;
memset(dp,,sizeof(dp));
dp[][][]=; for (int i=;i<n;i++)
for (int n9=;n9<=mid;n9++)
for (int n3=;n3<=mid;n3++)
{
if (dp[i][n9][n3]>mid ) continue; for (int m9=;m9*<=x[i]+&&m9+n9<=mid;m9++)
for (int m3=;m3*+m9*<=max(m9*,x[i]+)&&m3+n3<=mid;m3++)
{
if (m9+m3+max(,x[i]-*m9-*m3)>mid) continue;
dp[i+][n9+m9][m3+n3]=min(dp[i+][n9+m9][n3+m3],dp[i][n9][n3]+max(,x[i]-*m9-*m3));
}
} int ok=;
for (int n9=;!ok&&n9<=mid;n9++)
for (int n3=;!ok&&n3<=mid;n3++)
if (dp[n][n9][n3]<=mid)
{
ok=;
} if (ok) r=mid;
else l=mid;
}
return r;
}
}; int main()
{
int n;
cin>>n;
vector<int> p;
for (int i=;i<=n;i++)
{
int x;
cin>>x;
p.push_back(x);
}
Mutalisk q;
cout<<q.minimalAttacks(p)<<endl;
return ;
}

状态,需要剪枝。

Topcoder 658 650 point的更多相关文章

  1. topcoder 650 srm

    500 遇到这种构造题 就给跪了 比赛的时候想很多方法 DP,贪心,模拟 发现越写越烦琐.看到别人出这么快,肯定又是奇葩思路. 后来居然想到 2^50的暴力 +剪枝 不过暴力肯定卡你 IDEA: 只要 ...

  2. topcoder 650 srm div2 1000pts

    (15) 也是 DIV1 500 题意是给定 一个无向图 删去一条边以后 可不可以是完全二叉树. 细节点很多,开始做法居然求到桥去了,最近强联通写傻了. 最多1024-1个点 1024-1条边枚举 所 ...

  3. TopCoder kawigiEdit插件配置

    kawigiEdit插件可以提高 TopCoder编译,提交效率,可以管理保存每次SRM的代码. kawigiEdit下载地址:http://code.google.com/p/kawigiedit/ ...

  4. 记第一次TopCoder, 练习SRM 583 div2 250

    今天第一次做topcoder,没有比赛,所以找的最新一期的SRM练习,做了第一道题. 题目大意是说 给一个数字字符串,任意交换两位,使数字变为最小,不能有前导0. 看到题目以后,先想到的找规律,发现要 ...

  5. TopCoder比赛总结表

    TopCoder                        250                              500                                 ...

  6. Topcoder几例C++字符串应用

    本文写于9月初,是利用Topcoder准备应聘时的机试环节临时补习的C++的一部分内容.签约之后,没有再进行练习,此文暂告一段落. 换句话说,就是本文太监了,一直做草稿看着别扭,删掉又觉得可惜,索性发 ...

  7. TopCoder

    在TopCoder下载好luncher,网址:https://www.topcoder.com/community/competitive%20programming/ 选择launch web ar ...

  8. TopCoder SRM 596 DIV 1 250

    body { font-family: Monospaced; font-size: 12pt } pre { font-family: Monospaced; font-size: 12pt } P ...

  9. 求拓扑排序的数量,例题 topcoder srm 654 div2 500

    周赛时遇到的一道比较有意思的题目: Problem Statement      There are N rooms in Maki's new house. The rooms are number ...

随机推荐

  1. gulp自动化构建工具使用

    gulpfile.js: var gulp = require("gulp"); var imagemin = require("gulp-imagemin") ...

  2. H3C S5024P交换机 H3C AR28-31路由器命令

    H3C S5024P交换机 H3C AR28-31路由器命令 交换机命令 各个视图的切换: 注意命令要在相应的视图下执行 在用户视图下键入quit命令可以断开与交换机的连接.在其它视图中键入quit命 ...

  3. Solidity 智能合约开发

    需要专用浏览器或部署节点支持. Solidity (中文:固态,固体)是一种语法与Javascript相似的高级语言,它为Ethereum虚拟机(EVM)编译代码而设计. Solidity是静态类型的 ...

  4. DedeCMS文章标题长度最全修改方法

    有时候DedeCMS首页或者其他页面不能全部展示文章标题,造成读者阅读体验差.一般来说标题精简.概括性强.有本文关键词就是一个好标题.写软文不比写“作文”,也不是论坛的标题党,软文是用来做排名的,主要 ...

  5. Activiti6简明教程

    一.为什么选择Activiti 工作流引擎对比 二.核心7大接口.28张表 7大接口 (一)7大接口 RepositoryService:提供一系列管理流程部署和流程定义的API. RuntimeSe ...

  6. 0xC00000FD: Stack overflow (parameters: 0x00000000, 0x003E2000).错误

    这个错误是“栈溢出”,每个线程的栈空间默认是1MB,局部变量(非静态)都在栈中分配,当使用的局部变量所需空间过多时,就会溢出.你检查一下程序,看看哪些函数中定义了大数组,把大数组改成用new分配,函数 ...

  7. NOI2018_Day1_T1_归程

    题目描述 本题的故事发生在魔力之都,在这里我们将为你介绍一些必要的设定. 魔力之都可以抽象成一个 n 个节点.m 条边的无向连通图(节点的编号从 1 至 n). 我们依次用 l,a 描述一条边的长度. ...

  8. Redis主从配置与数据备份还原

    一.主从配置: 1.下载: wget http://download.redis.io/releases/redis-4.0.9.tar.gz tar xzf redis-4.0.9.tar.gz c ...

  9. 条款32:确定你的public继承塑模出is-a 关系(Make sure public inheritacne models "is-a")

    NOTE : 1."public继承"意味is-a.适用于base classes  身上的每一件事一定也适用于derived classes身上,因为每一个derived cla ...

  10. Fiddler使用配置遇到的问题

    针对Fiddler使用遇到的问题记录,方便后期再使用. 1.Chrome导入证书失败,提示"提示由于存储区只读的,存储区已满..." 方法:直接去控制台添加 详细参考:http:/ ...