问题描述
  在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一种蔬菜。
  第一天,每个商店都自己定了一个正整数的价格。店主们希望自己的菜价和其他商店的一致,第二天,每一家商店都会根据他自己和相邻商店的价格调整自己的价格。具体的,每家商店都会将第二天的菜价设置为自己和相邻商店第一天菜价的平均值(用去尾法取整)。
  注意,编号为1的商店只有一个相邻的商店2,编号为n的商店只有一个相邻的商店n-1,其他编号为i的商店有两个相邻的商店i-1和i+1。
  给定第二天各个商店的菜价,可能存在不同的符合要求的第一天的菜价,请找到符合要求的第一天菜价中字典序最小的一种。
  字典序大小的定义:对于两个不同的价格序列(a1, a2, …, an)和(b1, b2, b3, …, bn),若存在i (i>=1), 使得ai<bi,且对于所有j<i,aj=bj,则认为第一个序列的字典序小于第二个序列。
输入格式
  输入的第一行包含一个整数n,表示商店的数量。
  第二行包含n个正整数,依次表示每个商店第二天的菜价。
输出格式
  输出一行,包含n个正整数,依次表示每个商店第一天的菜价。
样例输入
8
2 2 1 3 4 9 10 13
样例输出
2 2 2 1 6 5 16 10
数据规模和约定
  对于30%的评测用例,2<=n<=5,第二天每个商店的菜价为不超过10的正整数;
  对于60%的评测用例,2<=n<=20,第二天每个商店的菜价为不超过100的正整数;
  对于所有评测用例,2<=n<=300,第二天每个商店的菜价为不超过100的正整数。
  请注意,以上都是给的第二天菜价的范围,第一天菜价可能会超过此范围。
  差分约束+spfa 关于差分约束详解:Layout POJ 3169
  提交后得100分的C++程序如下:

#include<iostream>
using namespace std;
#include<queue>
#include<vector>
const int inf = 0x3f3f3f3f;
struct edge
{int v, len;edge(int v1, int len1){v = v1;len = len1;}
};
vector<edge> g[305];
int dist[305], n, visit[305];
void spfa()
{queue<int> q;for (int i = 0; i <= n; i++){dist[i] = 0;visit[i] = 0;}visit[0] = 0, q.push(0);while (!q.empty()){int front = q.front();q.pop();visit[front] = 0;for (int i = 0; i <(int)g[front].size(); i++){int dest = g[front][i].v;if (dist[front] + g[front][i].len > dist[dest]){dist[dest] = dist[front] + g[front][i].len;if (!visit[dest]){visit[dest] = 1;q.push(dest);}}}}
}
int main()
{int n, a[305];cin >> n;for (int i = 1; i <= n; i++){cin >> a[i];}for (int i = 0; i <= n-3; i++){g[i + 3].push_back(edge(i, -(a[i + 2] * 3+2)));g[i].push_back(edge(i + 3, a[i + 2] * 3));}g[2].push_back(edge(0, -(2 * a[1]+1)));g[0].push_back(edge(2, 2 * a[1]));g[n].push_back(edge(n-2, -(2 * a[n]+1)));g[n - 2].push_back(edge(n, 2 * a[n]));for (int i = 1; i <= n; i++){g[i - 1].push_back(edge(i, 1));}spfa();for (int i = 1; i <= n; i++){cout << dist[i]-dist[i-1]<< " ";}cout << endl;return 0;
}

201809-4 再卖菜(100分)相关推荐

  1. CCF201809-4 再卖菜(100分)【DFS】

    试题编号: 201809-4 试题名称: 再卖菜 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一种蔬菜. 第 ...

  2. CCF201809-4 再卖菜

    问题描述: 试题编号: 201809-4 试题名称: 再卖菜 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一 ...

  3. [差分约束] AcWing-393 雇佣收银员 AcWing-2128 狡猾的商人 AcWing-3265 再卖菜

    差分约束的大概样子 (大概) 差分约束一般是由特殊的n元一次不等式组组成的,它包含N个变量X1-Xn和M个约束条件,而且每个约束条件都是由两个变量做差组成的,形如,其中的ck是常数,它需要我们找到一组 ...

  4. CCF 差分约束--201809再卖菜

    问题描述 在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一种蔬菜. 第一天,每个商店都自己定了一个正整数的价格.店主们希望自己的菜价和其他商店的一致,第二天,每一家商店都会根据他自己 ...

  5. 180904 再卖菜 ccf

    思路 dfs+去重 关键 满分的关键在于不同的前缀可能会遇到相同的情况,要直接排除这些情况,避免重复计算(单纯dfs只有80分) 实现 这里采用数组f来记录各种情况,通过traceback函数回溯 1 ...

  6. CCF201809-4 再卖菜

    问题描述: AC代码: 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include ...

  7. [csp-201809-4]再卖菜 差分约束or记忆化搜索

    先更新第一个做法:差分约束 转化成最长路,求出的每一个解是满足差分方程的最小值 spfa求最短路 对于边(x->y) 有: 1 if(dis[y] > dis[x] + a[i].d) d ...

  8. CSP认证201809-4 再卖菜[C++题解]:差分约束、前缀和

    文章目录 题目解答 题目链接 题目解答 来源:acwing 分析: 对于a0,a1,...,ana_0, a_1,...,a_na0​,a1​,...,an​,经过计算相邻的数的平均值得到b0,b1, ...

  9. 用计算机写试卷反思,100分试卷反思怎么写

    当我们考得了100分或者达不到100分,就会反思这次我们到底是怎么才考得了100分或者因为因为考不到100分,下次我还能不能再继续考100分,为此学习啦小编为大家整理了几篇考了100分试卷的反思范文, ...

  10. ## CSP认证 201809-1 卖菜(C语言)(100分)

    试题编号: 201809-1 试题名称: 卖菜 时间限制: 1.0s 内存限制: 256.0MB 问题描述 在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一种蔬菜. 第一天,每个商店 ...

最新文章

  1. matlab生成m序列的方法
  2. 信令风暴研究现状总结
  3. 在WPF中实现平滑滚动
  4. Hello,SDK!数据采集黑客松大赛重磅开启,Mac投影仪任你拿!
  5. 【含内推码】字节跳动智能创作2022秋招提前批全面开启!
  6. 个性化不和谐帐户的8种方法
  7. 融云亮相GTC全球流量大会 荣膺鲸鸣奖2019年度优秀出海服务商
  8. Best practices for a new Go developer
  9. javascript中mouseover和mouseout事件详解
  10. 前端学习——HTML初学__6 HTML常用标签(3)
  11. Android开发 屏幕截图
  12. 【jprofiler】jprofiler安装使用教程
  13. 浙江省2021高考成绩查询时间6,2021浙江高考成绩查询时间公布:6月26日
  14. 慕课网视频中的代码---3-4 Minst手写体识别
  15. Spring Boot中Configuration problem: Cannot locate BeanDefinitionParser for element 的问题分析
  16. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第十讲:深入理解盒子模型
  17. 采用UWB定位技术开发的室内定位系统源码
  18. 服务器是不是信息点,机房综合布线信息点安装模式有哪些
  19. redux异步之redux-thunk
  20. 三星折叠屏这下彻底杯具了

热门文章

  1. python极简讲义(张玉宏著)的几处补充说明
  2. itunes没法ipa_上传了ipa但iTunes Connect没有构建版本问题
  3. 农行网银登录无法显示该网页_登录网银无法显示网页
  4. 用Python做九宫格照片
  5. web3.0 兴起之际,元宇宙不属于任何一家科技巨头
  6. 离散数学 - 逻辑与推理
  7. 上市公司环境投资数据(2009-2020年 )
  8. MBTI职业性格测试完整版(静态题库)
  9. cartographer 代码思想解读(9)- 激光雷达畸变矫正
  10. 自定义微信小程序顶部导航栏(自适应微信胶囊按钮,flex布局)