LOJ P10149 凸多边形的划分 题解
Analysis
区间dp+压位高精
dp五分钟,高精两小时
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 110
#define INF 2147483647
using namespace std;
typedef long long ll;
ll dp[maxn][maxn][maxn],a[maxn];
ll s1[maxn],s2[maxn],s3[maxn];
int n;
inline void mark(ll c[])
{
for(int i=;i<=c[];i++)
{
c[i+]+=c[i]/;
c[i]%=;
}
while(c[c[]+])
{
c[]++;
c[c[]+]+=c[c[]]/;
c[c[]]%=;
}
}
inline void mul(ll a1,ll a2,ll a3,ll c[])
{
c[]=;
c[]=;
for(int i=;i<=c[];i++) c[i]*=a1;
mark(c);
for(int i=;i<=c[];i++) c[i]*=a2;
mark(c);
for(int i=;i<=c[];i++) c[i]*=a3;
mark(c);
}
inline void add(ll a[],ll b[],ll c[])
{
c[]=max(a[],b[]);
for(int i=;i<=c[];i++) c[i]=a[i]+b[i];
mark(c);
}
inline bool compare(ll a[],ll b[])
{
if(a[]>b[]) return ;
else if(a[]<b[]) return ;
for(int i=a[];i>=;i--)
{
if(a[i]>b[i]) return ;
else if(a[i]<b[i]) return ;
}
return ;
}
inline void print()
{
printf("%lld",dp[][n][dp[][n][]]);
for(int i=dp[][n][]-;i>;i--)
{
printf("%lld",dp[][n][i]/);
printf("%lld",dp[][n][i]/%);
printf("%lld",dp[][n][i]/%);
printf("%lld",dp[][n][i]%);
}
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++) scanf("%lld",&a[i]);
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
dp[i][j][]=;
for(int l=;l<=n-;l++)
for(int i=;i<=n;i++)
{
int j=i+l;
if(j>n) break;
dp[i][j][]=INF;
for(int k=i+;k<j;k++)
{
memset(s1,,sizeof(s1));
memset(s2,,sizeof(s2));
memset(s3,,sizeof(s3));
mul(a[i],a[j],a[k],s1);
add(dp[i][k],dp[k][j],s2);
add(s1,s2,s3);
if(compare(dp[i][j],s3))
memcpy(dp[i][j],s3,sizeof(s3));
}
}
print();
return ;
}
请各位大佬斧正(反正我不认识斧正是什么意思)
LOJ P10149 凸多边形的划分 题解的更多相关文章
- LOJ P10018 数的划分 题解
每日一题 day52 打卡 Analysis 这道题直接搜索会TLE到**,但我们发现有很多没有用的状态可以删去,比如 1,1,5; 1,5,1; 5,1,1; 所以很容易想到一个优化:按不下降的顺序 ...
- 洛谷P4047 [JSOI2010]部落划分题解
洛谷P4047 [JSOI2010]部落划分题解 题目描述 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落 ...
- 洛谷 P4774 / loj 2721 [NOI2018] 屠龙勇士 题解【同余】【exgcd】【CRT】
推导过程存在漏洞+exCRT板子没打熟于是期望得分÷实际得分=∞? 题目描述 小 D 最近在网上发现了一款小游戏.游戏的规则如下: 游戏的目标是按照编号 \(1\sim n\) 顺序杀掉 \(n\ ...
- [LOJ#2340] [WC2018] 州区划分
题目链接 洛谷题面. LOJ题面.还是LOJ机子比较快 Solution 设\(f(s)\)表示选\(s\)这些城市的总代价,那么我们可以得到一个比较显然的\(dp\): \[ f(s)=\frac{ ...
- 洛谷 P3239 / loj 2112 [HNOI2015] 亚瑟王 题解【期望】【DP】
???看不懂的期望DP 题目描述 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂亮.众所周知,亚 ...
- 洛谷 P4108 / loj 2119 [HEOI2015] 公约数数列 题解【分块】
看样子分块题应该做的还不够. 题目描述 设计一个数据结构. 给定一个正整数数列 \(a_0, a_1, \ldots , a_{n-1}\),你需要支持以下两种操作: MODIFY id x: 将 \ ...
- 洛谷 P4269 / loj 2041 [SHOI2015] 聚变反应炉 题解【贪心】【DP】
树上游戏..二合一? 题目描述 曾经发明了零件组装机的发明家 SHTSC 又公开了他的新发明:聚变反应炉--一种可以产生大量清洁能量的神秘装置. 众所周知,利用核聚变产生的能量有两个难点:一是控制核聚 ...
- LOJ P10004 智力大冲浪 题解
每日一题 day37 打卡 Analysis 经典的带限期和罚款的单位时间任务调度问题 将 val 从大到小排序,优先处理罚款多的,将任务尽量安排在期限之前,并且靠后,如果找不到,则放在最后面 #in ...
- LOJ P10011 愤怒的牛 题解
每日一题 day36 打卡 Analysis 非常水的二分模板,就直接二分答案,用贪心策略check就好了 #include<iostream> #include<cstdio> ...
随机推荐
- C++Primer 5th Chap10 Generic Algorithms(未完)
大多数算法定义在头文件algorithm中,在头文件numeric中定义了数值泛型算法. 以find算法为例:在容器的两个迭代器指定的范围内遍历,查找特定值. auto result= cout< ...
- 从零开始学Flask框架-004
Flask-Moment pip install flask-moment 除了moment.js,Flask-Moment 还依赖jquery.js.但是Bootstrap 已经引入了jquery. ...
- 数据库中间件之mycat读写分离
mycat核心概念 逻辑库 mycat中定义.管理的数据库 逻辑表 逻辑库中包含的需分库分表存储的表 datanode 数据节点(分片节点),逻辑表分片的存放节点 datahost 数据主机(节点主机 ...
- Mybatis之日志工厂
思考:我们在测试SQL的时候,要是能够在控制台输出 SQL 的话,是不是就能够有更快的排错效率? 如果一个 数据库相关的操作出现了问题,我们可以根据输出的SQL语句快速排查问题. 对于以往的开发过程, ...
- Chrome安装crx文件的插件时出现“程序包无效”
有趣的事,Python永远不会缺席! 如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/11043453.html 链接:https: ...
- WebService 规范
详见:https://blog.csdn.net/u011165335/article/details/51345224 JAVA 中共有三种WebService 规范,分别是JAX-WS(JAX-R ...
- linux uniq命令用法
uniq命令: 对指定的ASCII文件或标准输入进行唯一性检查,以判断文本文件中重复出现的行,常用于分析日志:查看tcp各个状态连接数,ip或域名连接数排名等等场景,一般与 sort 命令结合使用. ...
- Mysql 中完善的帮助命令
Mysql 中完善的帮助命令 Mysql 中的帮助系统很完善,很多操作都可以通过命令行直接获得帮助,如下示例: Mysql 命令行帮助 [root@mysql1 mydata1]# mysql -S ...
- SQL SERVER-Extendevent
事件类介绍 https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008/ms188275(v=sql.100)
- JavaScript中对数组的排序
将下列对象数组,通过工资属性,由高到低排序 var BaiduUsers = [], WechatUsers = []; var User = function(id, name, phone, ge ...