博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【UOJ244】 【UER #7】短路(贪心)
阅读量:6700 次
发布时间:2019-06-25

本文共 1184 字,大约阅读时间需要 3 分钟。

传送门

Solution

简单题?

考虑一条路径长什么样子,一定是经过某一个字母环的左上角,那么答案就很简单了。
我们记一个前缀最小值,这样子让他一路走下去一定是最优!
然后扫一遍就好了。

代码实现

/*  mail: mleautomaton@foxmail.com  author: MLEAutoMaton  This Code is made by MLEAutoMaton*/#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define ll long long#define re register#define file(a) freopen(a".in","r",stdin);freopen(a".out","w",stdout)inline int gi(){ int f=1,sum=0;char ch=getchar(); while(ch>'9' || ch<'0'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0' && ch<='9'){sum=(sum<<3)+(sum<<1)+ch-'0';ch=getchar();} return f*sum;}inline ll gl(){ ll f=1,sum=0;char ch=getchar(); while(ch>'9' || ch<'0'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0' && ch<='9'){sum=(sum<<3)+(sum<<1)+ch-'0';ch=getchar();} return f*sum;}ll ans=1e18+10,Min=1e18+10;ll a[400010],sum,n;int main(){ n=gl()+1; for(int i=1;i<=n;i++)a[i]=gl();reverse(a+1,a+n+1); for(int i=1;i<=n;i++) { Min=min(Min,a[i]); ans=min(ans,a[i]*(4*(n-i)+1)+sum*2); sum+=a[i]+Min; } printf("%lld\n",ans); return 0;}

转载于:https://www.cnblogs.com/mle-world/p/10569266.html

你可能感兴趣的文章
BZOJ2425:[HAOI2010]计数——题解
查看>>
spring集成多个rabbitMQ
查看>>
Hibernate 中配置属性详解(hibernate.properties)
查看>>
使用面向对象技术创建高级 Web 应用程序
查看>>
ubuntu命令收集
查看>>
Django templates 和 urls 拆分
查看>>
VBS使文本框的光标位于所有字符后
查看>>
Spring boot 配置tomcat后 控制台不打印SQL日志
查看>>
shell比较运算符
查看>>
Screen Painter 程序设计
查看>>
Python--day48--ORM框架SQLAlchemy操作表
查看>>
[转] 一文弄懂神经网络中的反向传播法——BackPropagation
查看>>
jQuery---过滤选择器
查看>>
VS2017 启动调试报错无法启动程序 当前状态中非法
查看>>
DevExpress Chart空间Y轴归一化(线性归一化函数)
查看>>
【Foreign】采蘑菇 [点分治]
查看>>
运用java 多线程模拟火车售票。。。。
查看>>
iOS开发之普通网络异步请求与文件下载方法
查看>>
添加文字和水印
查看>>
LUA ipairs遍历的问题
查看>>