CSP-201809-4-再卖菜 问题描述在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一种蔬菜。 第一天,每个商店都自己定了一个正整数的价格。店主们希望自己的菜价和其他商店的一致,第二天,每一家商店都会根据他自己和相邻商店的价格调整自己的价格。具体的,每家商店都会将第二天的菜价设置为自己和相...
菜的价格在1~100之间,直接dfs枚举菜的价格即可。300^n复杂度?其实减枝能剪掉很多。 #include<bits/stdc++.h>usingnamespacestd;constintMAXN =310;intn, a[MAXN], b[MAXN];boolflag =false;voiddfs(intstep){inti =0;if(flag) {return; }if(step == n +1) {boolok =true;if((b[1] + b[...
在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一种蔬菜。 第一天,每个商店都自己定了一个正整数的价格。店主们希望自己的菜价和其他商店的一致,第二天,每一家商店都会根据他自己和相邻商店的价格调整自己的价格。具体的,每家商店都会将第二天的菜价设置为自己和相邻商店第一天菜价的平均值(用...
origin[x+1] = average[x] *3+1- origin[x] - origin[x-1];if(origin[x+1] >=1&& !vis[x+1][origin[x]][origin[x+1]] &&dfs(x +1))returntrue; origin[x+1] = average[x] *3+2- origin[x] - origin[x-1];returnorigin[x+1] >=1&& !vis[x+1][origin[x]][origin[x+1]...
CCF CSP 201809-4 再卖菜 思路: 1.设ai是第一天第i家店的菜价,bi是第二天第i家店的菜价; 2.根据题意有: a2=2b1-a1+k (k=0,1) ai+1=3bi-ai-1-ai+k (k=0,1,2;1<i<n) an=2bn-an-1+k (k=0,1) 3.我们知道a1是小于等于2b1且大于零的,所以我们可以让a1从1开始dfs到2b1,确定了a1...
[csp-201809-4]再卖菜 差分约束or记忆化搜索 先更新第一个做法:差分约束 转化成最长路,求出的每一个解是满足差分方程的最小值 spfa求最短路 对于边(x->y) 有: 1if(dis[y] > dis[x] + a[i].d) dis[y]=dis[x]+a[i].d; dis[y]的初始值为INF,dis[y]会是满足所有约束条件之中所有可能的...