201809-1 卖菜 Java】的更多相关文章

思路: 需要两个数组,一个保存原始数据 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int shop[] = new int[n];//保存原始数据 int store[] = new int[n]; for(int i=0;i<n;i++) { sh…
题目链接:http://118.190.20.162/view.page?gpid=T79 问题描述 试题编号: 201809-1 试题名称: 卖菜 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一种蔬菜. 第一天,每个商店都自己定了一个价格.店主们希望自己的菜价和其他商店的一致,第二天,每一家商店都会根据他自己和相邻商店的价格调整自己的价格.具体的,每家商店都会将第二天的菜价设置为自己和相邻商店第一天菜价…
天朝屁民每天做T跟菜贩一样,进菜-卖菜,为伟大的菜贩精神点赞…
问题描述 在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一种蔬菜. 第一天,每个商店都自己定了一个价格.店主们希望自己的菜价和其他商店的一致,第二天,每一家商店都会根据他自己和相邻商店的价格调整自己的价格.具体的,每家商店都会将第二天的菜价设置为自己和相邻商店第一天菜价的平均值(用去尾法取整). 注意,编号为1的商店只有一个相邻的商店2,编号为n的商店只有一个相邻的商店n-1,其他编号为i的商店有两个相邻的商店i-1和i+1. 给定第一天各个商店的菜价,请计算第二天每个商店的菜…
题目: 问题描述 在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一种蔬菜. 第一天,每个商店都自己定了一个价格.店主们希望自己的菜价和其他商店的一致,第二天,每一家商店都会根据他自己和相邻商店的价格调整自己的价格.具体的,每家商店都会将第二天的菜价设置为自己和相邻商店第一天菜价的平均值(用去尾法取整). 注意,编号为1的商店只有一个相邻的商店2,编号为n的商店只有一个相邻的商店n-1,其他编号为i的商店有两个相邻的商店i-1和i+1. 给定第一天各个商店的菜价,请计算第二天每个…
201809-4 再卖菜 我使用的是爆搜解决,只得了60分. 记忆化搜索 差分约束 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<string> using namespace std; int n; int a[303]; int b[303]; bool flag=false; void dfs(int k,int now,…
思路: 顺序读入,例如:小H装车的时间段为[1,3],小W装车的时间段为[2,4],重叠部分为[2,3],记在数组times[2]中.最后输出时判断数组times中值大于1的(其实就是2),即为重叠部分 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); in…
可以说这道题出的不错,我是用动态规划做的 ( 严谨点说应该是记忆化搜索,我是递归版本,非递归我不会啊... 题意分析: x1  x2  x3 已知 x1+x2=t1或t1+1 x1+x2+x3=t2 | t2+1 | t2+2 x2+x3=t3 |  t3+1 如果我们从x1=1 开始搜索, 那么组成了一颗搜索树 每次有三次分叉, 一共有100层  3^100 太吓人了 还好的是 t1,t2,t3 数据规模不大 我们可以合并很多重复的状态,经行记忆化搜索 那么这道题核心就在于对状态的定义了: 我…
先更新第一个做法:差分约束 转化成最长路,求出的每一个解是满足差分方程的最小值 spfa求最短路 对于边(x->y) 有: if(dis[y] > dis[x] + a[i].d) dis[y]=dis[x]+a[i].d; dis[y]的初始值为INF,dis[y]会是满足所有约束条件之中所有可能的值之中最大的(更新到最大的就不会再更新了). 贴一个简略的证明: 同理,最长路求出来的是所有可能解之中最大的. 这题是字典序最小,那么我们要转化成最长路来求,求到的每个s[i]都是可能的值中最小的…
这题一开始不知道剪枝这种操作,只会傻傻地dfs. 然后dfs递归写80分超时,非递归写70分超时(纳尼?我一直以为非递归算法在时间上会更优秀一些,为什么会这样?!!) 剪一下枝就都能过了 #include<cstdio> #include<iostream> #include<algorithm> using namespace std; typedef long long ll; ],b[]; ][][]; int n; bool dfs(int step) { ]=…