VJP1218数字游戏(环形DP)
数据比较小 直接爆了 5重
枚举断开的琏 dp[i][j][k] (i-j)区间为第k段 dp[i][j][k] = min(dp[i][j][k],dp[g][i-1][k-1]*s[i][j])(g<=i-1) s[i][j]为i-j的和
最大值类似 不知道为嘛要加50W 很纳闷 加小了就WA
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
#define INF 100000
using namespace std;
int a[],dp1[][][],dp2[][][],s[][];
int main()
{
int i,j,k,n,g,o,e,aa,b,c;
while(scanf("%d%d",&n,&k)!=EOF)
{
for(i = ; i <= n ; i++)
scanf("%d",&a[i]);
for(i = ; i <= n ; i++)
a[n+i] = a[i];
for(i = ; i <= *n ; i++)
{
s[i][i] = (a[i]+)%;
for(j = i+ ; j <= *n ; j++)
s[i][j] = (s[i][j-]+a[j]+)%;
}
int minz = INF,maxz=;
for(i = ; i < n ; i++)
{
for(aa = ; aa <= k ; aa++)
for(c = ; c <= *n ; c++)
for(b = ; b <= *n ; b++)
{
dp1[c][b][aa] = INF;
dp2[c][b][aa] = ;
}
for(j = i+ ; j <= i+n-(k-) ; j++)
{
dp1[i+][j][] = s[i+][j];
dp2[i+][j][] = s[i+][j];
}
for(j = ; j <= k ; j++)
{
for(g = i+j ; g <= i+n-(k-j) ; g++)
{
for(e = g ; e <= i+n-(k-j) ; e++)
{
dp1[g][e][j] = INF;
for(o = i+j- ; o < g ; o++)
{
dp1[g][e][j] = min(dp1[g][e][j],dp1[o][g-][j-]*s[g][e]);
dp2[g][e][j] = max(dp2[g][e][j],dp2[o][g-][j-]*s[g][e]);
}
}
}
}
for(j = i+ ; j <= i+n ; j++)
{
maxz = max(maxz,dp2[j][i+n][k]);
minz = min(minz,dp1[j][i+n][k]);
}
}
printf("%d\n%d\n",minz,maxz);
}
return ;
}
VJP1218数字游戏(环形DP)的更多相关文章
- NOIP2003pj数字游戏[环形DP]
题目描述 丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易.游戏是这样的,在你面前有一圈整数(一共n个),你要按顺序将其分 ...
- 洛谷 P1043 数字游戏 区间DP
题目描述 丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易.游戏是这样的,在你面前有一圈整数(一共n个),你要按顺序将其分 ...
- NOIP2009pj道路游戏[环形DP 转移优化 二维信息]
题目描述 小新正在玩一个简单的电脑游戏. 游戏中有一条环形马路,马路上有 n 个机器人工厂,两个相邻机器人工厂之间由一小段马路连接.小新以某个机器人工厂为起点,按顺时针顺序依次将这 n 个机器人工厂编 ...
- [luoguP1043] 数字游戏(DP)
传送门 搞个前缀和随便DP一下 代码 #include <cstdio> #include <cstring> #include <iostream> #defin ...
- codevs1085数字游戏(环形DP+划分DP )
1085 数字游戏 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单, ...
- codevs 1085 数字游戏 dp或者暴搜
1085 数字游戏 2003年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目描述 Description 丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单 ...
- 【dp】数字游戏&寒假祭
区间DP 题目描述 丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易.游戏是这样的,在你面前有一圈整数(一共n个),你要按 ...
- [区间+线性dp]数字游戏
题目描述 丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易.游戏是这样的,在你面前有一圈整数(一共\(n\)个),你要按顺 ...
- 「区间DP」「洛谷P1043」数字游戏
「洛谷P1043」数字游戏 日后再写 代码 /*#!/bin/sh dir=$GEDIT_CURRENT_DOCUMENT_DIR name=$GEDIT_CURRENT_DOCUMENT_NAME ...
随机推荐
- 回溯算法之n皇后问题
今天在看深度优先算法的时候,联想到DFS本质不就是一个递归回溯算法问题,只不过它是应用在图论上的.OK,写下这篇博文也是为了回顾一下回溯算法设计吧. 学习回溯算法问题,最为经典的问题我想应该就是八皇后 ...
- C++ 代码性能优化 -- 循环分割提高并行性
对于一个可结合和可交换的合并操作来说,比如整数的加法或乘法, 我们可以通过将一组合并操作分割成 2 个或更多的部分,并在最后合并结果来提高性能. 原理: 普通代码只能利用 CPU 的一个寄存器,分割后 ...
- OpenJudge 2737 大整数除法
链接地址:http://bailian.openjudge.cn/practice/2737/ 题目: 总时间限制: 1000ms 内存限制: 65536kB 描述 求2个大的正整数相除的商 输入 第 ...
- Json操作
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- Javascript 计算分页
var getPageData = function (last_page, current_page) { var numberLinks = []; var i = 0; for (i; i &l ...
- C#运算符之与,或,异或及移位运算
C#运算符之与,或,异或及移位运算 1.剖析异或运算(^) 二元 ^ 运算符是为整型和 bool 类型预定义的.对于整型,^ 将计算操作数的按位“异或”.对于 bool 操作数,^ 将计算操作数的逻辑 ...
- CODEVS 3657 括号序列
[问题描述] 我们用以下规则定义一个合法的括号序列: (1)空序列是合法的 (2)假如S是一个合法的序列,则 (S) 和[S]都是合法的 (3)假如A 和 B 都是合法的,那么AB和BA也是合法的 例 ...
- ios7 sdk 新特性
iOS 7 is a major update with compelling features for developers to incorporate into their apps. The ...
- java.io.IOException: Cannot run program "bash": error=12, Cannot allocate memory
java.io.IOException: Cannot run program , Cannot allocate memory 云服务器运行nutch报出的异常: 解决方案: http://daim ...
- [转载]C#多线程学习(一) 多线程的相关概念
原文地址:http://www.cnblogs.com/xugang/archive/2008/04/06/1138856.html 什么是进程?当一个程序开始运行时,它就是一个进程,进程包括运行中的 ...