programming-challenges Chopsticks (111107) 题解
来源:互联网 发布:js 数组 empty 编辑:程序博客网 时间:2024/05/16 12:26
正如提示中所说的,先想明白怎样求没有第三支筷子限制时的解答方式,仍然是递推的思路,利用已经求出的在某支筷子前匹配出多少双筷子的最小代价计算下一支筷子的结果。然后考虑从长的筷子往短的筷子计算,这实在是意外的技巧。
#include <iostream>#include <sstream>#include <fstream>#include <string>#include <vector>#include <list>#include <queue>#include <map>#include <set>#include <stack>#include <assert.h>#include <algorithm>#include <math.h>#include <ctime>#include <functional>#include <string.h>#include <stdio.h>#include <numeric>#include <float.h>using namespace std;const int K = 1500; const int N = 5100; const int INF = 12000000;int dp[K][N]; int bad[N]; int main() {int TC = 0; cin >> TC; for (int tc = 0; tc < TC; tc++) {int k, n; cin >> k >> n; k += 8;vector<int> len(n); for (int i = 0; i < n; i++) {cin >> len[i]; }for (int i = n - 2; i >= 0; i--) {bad[i] = (len[i] - len[i + 1]) * (len[i] - len[i + 1]);}memset(dp, 0, sizeof(dp));for (int i = 1; i < K; i++) {for (int j = 0; j < N; j++) {dp[i][j] = INF; }}for (int i = n - 2; i >= 0; i--) {for (int j = 1; j <= k; j++) {if (n - i < j * 3) break;dp[j][i] = min(dp[j][i+1], dp[j-1][i+2] + bad[i]);}}cout << dp[k][0] << endl; }return 0; }
0 0
- programming-challenges Chopsticks (111107) 题解
- programming-challenges WERTYU (110301) 题解
- programming-challenges ShellSort (110407) 题解
- programming-challenges Ones (110504) 题解
- programming-challenges Bicoloring (110901) 题解
- programming-challenges Crypt Kicker (110204) 题解
- programming-challenges Stack 'em Up (110205) 题解
- programming-challenges Poker Hands (110202) 题解
- programming-challenges Contest Scoreboard (110207) 题解
- programming-challenges Where's Waldorf? (110302) 题解
- programming-challenges Common Permutation (110303) 题解
- programming-challenges Crypt Kicker II (110304) 题解
- programming-challenges Automated Judge Script (110305) 题解
- programming-challenges File Fragmentation (110306) 题解
- programming-challenges Vito's Family (110401) 题解
- programming-challenges Stacks of Flapjacks (110402) 题解
- programming-challenges Longest Nap (110404) 题解
- programming-challenges Shoemaker's Problem (110405) 题解
- SpringMVC前端控制器-----DispatcherServlet
- PAT1030 Travel Plan
- Loadrunner 录制的脚本保存不了
- c语言之字符串处理函数(三)
- 步进电机
- programming-challenges Chopsticks (111107) 题解
- Step7中有关时间和定时器的使用和例程1
- Google将Material Design带到CSS、HTML与JavaScript上
- noip
- Ubuntu下,查看以及修改PATH的方法
- 月薪3万的程序员都避开了哪些坑?
- java ==,hashCode(),equals(),
- SpringMVC访问资源文件
- 【bzoj2072】 POI2004MOS dp+贪心