http://codeforces.com/contest/987/problem/C

题意:给你两个n的序列要你根据第一个序列(严格单调递增的方式)在第二个序列里找3个数加起来,输出最小的一个。

思路:先从前往后枚举两个最小的。在从后往前找一个加上使其最小,最后遍历剩下的三元组。

AC代码:

#include<bits/stdc++.h>
#define ll long long using namespace std;
const int maxn=;
const int INF=*1e9;
struct node{
int num,id;
};
struct node1{
ll h,Sum;
};
node a[maxn];
node1 sum[maxn];
int main(){
int n;
cin>>n;
for(int i=;i<=n;i++){
sum[i].Sum=INF;
}
for(int i=;i<=n;i++){
cin>>a[i].id;
}
for(int i=;i<=n;i++){
cin>>a[i].num;
}
ll Min=*1e9;
for(int i=;i<=n-;i++){
Min=*1e9;
for(int j=i+;j<=n;j++){
if(a[i].id<a[j].id){
if(a[i].num+a[j].num<Min)
{
Min=a[i].num+a[j].num;
}
}
}
sum[i].Sum=Min;
sum[i].h=;
}
//cout<<sum[2].Sum<<endl; for(int i=n-;i>=;i--){
Min=*1e9;
for(int j=i-;j>=;j--){
if(a[i].id>a[j].id){
if(sum[i].Sum+a[j].num<Min){
Min=sum[i].Sum+a[j].num;
}
}
}
sum[i].Sum=Min;
sum[i].h=;
}
Min=*1e9;
int i,k;
for( i=;i<=n;i++){
if(Min>sum[i].Sum&&sum[i].h==){
Min=sum[i].Sum;
k=i;
}
}
if(Min<INF){
cout<<Min<<endl;
}
else
cout<<"-1"<<endl;
return ; }

大神:

#include <bits/stdc++.h>
using namespace std;
const int maxn=,inf=0x3f3f3f3f;
int s[maxn],c[maxn],f[maxn],dp[maxn];
int n,ans;
int main(){
scanf("%d",&n);
for (int i=;i<=n;i++) scanf("%d",&s[i]);
for (int i=;i<=n;i++) scanf("%d",&c[i]);
dp[]=inf;
for (int i=;i<=n;i++){
dp[i]=inf;
for (int j=i-;j>=;j--){
if(s[i]>s[j])
dp[i]=min(dp[i],c[i]+c[j]);
}
// printf("%d ",dp[i]);
}
// printf("\n");
ans=inf;
for (int i=;i<=n;i++){
f[i]=inf;
for (int j=i-;j>=;j--){
if(s[j]<s[i]) f[i]=min(f[i],c[i]+dp[j]);
}
// printf("%d ",f[i]);
ans=min(ans,f[i]);
}
// printf("\n");
if(ans==inf) puts("-1");
else printf("%d\n",ans);
return ;
}

CF C. Three displays(DP+思维)的更多相关文章

  1. CF 987C Three displays DP或暴力 第十一题

    Three displays time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  2. cf1153D 树形dp+思维

    一千八的题也不会做了呜呜呜 size[u]表示结点u下的叶子结点, 思维:可以想到一个子树对其父亲会有一个消耗值 考虑一个点如果是max,那么其最大值可以是size[u]-p,p是消耗值最小的子树 一 ...

  3. E. The Contest ( 简单DP || 思维 + 贪心)

    传送门 题意: 有 n 个数 (1 ~ n) 分给了三个人 a, b, c: 其中 a 有 k1 个, b 有 k2 个, c 有 k3 个. 现在问最少需要多少操作,使得 a 中所有数 是 1 ~ ...

  4. 7月15日考试 题解(链表+状压DP+思维题)

    前言:蒟蒻太弱了,全打的暴力QAQ. --------------------- T1 小Z的求和 题目大意:求$\sum\limits_{i=1}^n \sum\limits_{j=i}^n kth ...

  5. CF 256D. Good Sequences(DP)

    题目链接 主要是标记前面素数的最大的DP值,要认真一些.没想到居然写了一个很难发现的错误. #include <cstdio> #include <cstring> #incl ...

  6. CF 335B - Palindrome 区间DP

    335B - Palindrome 题目: 给出一个字符串(均有小写字母组成),如果有长度为100的回文子串,输出该子串.否则输出最长的回文子串. 分析: 虽然输入串的长度比较长,但是如果存在单个字母 ...

  7. CF(435D - Special Grid)dp

    题目链接:http://codeforces.com/problemset/problem/435/D 题意:求三角形个数,三个点必须的白点上,而且三条边必须是横线,竖线或对角线,三条边上不同意出现黑 ...

  8. CF 518D(概率dp)

    传送门:Ilya and Escalator 题意:有n个人排队进车厢,每秒只能进一个人,而且第1个人进了后面的人才能进,第一个人每秒进入车厢的概率为p,不进的概率为1-p,求t秒后进入车厢总人数的数 ...

  9. codeforces 1140D(区间dp/思维题)

    D. Minimum Triangulation time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

随机推荐

  1. Hive UDF开发 第一个例子

    package udf; import org.apache.hadoop.hive.ql.exec.UDF; public class helloudf extends UDF{ public St ...

  2. Android键盘属性

    在主xml中android:windowSoftInputMode的属性"stateUnspecified"软键盘的状态(是否它是隐藏或可见)没有被指定.系统将选择一个合适的状态或 ...

  3. [poj1410]Intersection

    题目大意:求线段与实心矩形是否相交. 解题关键:转化为线段与线段相交的判断. #include<cstdio> #include<cstring> #include<al ...

  4. PCL—点云分割(超体聚类) 低层次点云处理

    博客转载自:http://www.cnblogs.com/ironstark/p/5013968.html 1.超体聚类——一种来自图像的分割方法 超体(supervoxel)是一种集合,集合的元素是 ...

  5. Python pika, TypeError: exchange_declare() got an unexpected keyword argument 'type' 问题修复

    网上很多写法都是 type='fanout' 这样的.(这里是基于python=3.6版本, pika=0.13.0 版本) credentials = pika.PlainCredentials(' ...

  6. DingTalk代码库机器人尝试

    今日室友询问相关机器人的事情,本来对于机器人还是有一些了解的,至少是明白一些简单的原理,包括微信公众号,qq群的只能机器人,以及钉钉的机器人. 首先是说那个关于微信公众号的那个自动回复便可以使用一些机 ...

  7. 树莓派(Raspberry Pi 3) centos7使用yum命令报错File "/usr/bin/yum", line 30 except KeyboardInterrupt, e:

    使用yum命令报错 File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: ^SyntaxError: invalid ...

  8. Python3中的Json与Pickle

    用于将数据存取到文件中: 1:Json的存数据到文件: import json info = { "name":"hjc", "age":2 ...

  9. [Windows] 程序生成出现语法错误: 意外的令牌“标识符”,预期的令牌为“类型说明符”

    程序生成出现语法错误: 意外的令牌“标识符”,预期的令牌为“类型说明符” 将平台工具集改为VS 2015 (v140) ,重新编译即可

  10. html颜色设定 - 网址不见了看这里