玲珑杯 Round15 A Reverse the light

题目链接:http://www.ifrog.cc/acm/problem/1121

官方题解:

对于每一次的操作,显然其周围的2k个灯不会有状态翻转,否则这次就是无效的,于是转换为简单的动态规划问题.
令dp(i)表示将前i+k个灯全部点亮的最小花费,直接转移即可.
复杂度为O(n)。

恩,然后就是dp一下。然而看了题解之后WA了n次,原因何在?

  for(int i = n - k; i <= n; i++)  ans = min(ans, dp[i]);

实际上不能这样, n < k的时候就会出错而不一定是RE。。。。

代码:

 1 #define maxn 10010
 2 int n, k;
 3 long long dp[maxn], c[maxn];
 4
 5 int main() {
 6     scanf("%d %d", &n, &k);
 7     for(int i = 1; i <= n; i++)
 8         scanf("%lld", &c[i]);
 9     for(int i = 0; i <= n; i++)
10         dp[i] = inf;
11     long long ans = inf;
12     for(int i = 1; i <= 1 + k; i++){
13         if(i > n) break;
14         dp[i] = c[i];
15         if(i + k >= n) ans = min(ans, dp[i]);
16     }
17     for(int i = 2 * k + 2; i <= n; i++){
18         dp[i] = min(dp[i], dp[i - k - k - 1] + c[i]);
19         if(i + k >= n)
20             ans = min(ans, dp[i]);
21     }
22     cout << ans << endl;
23 }

题目:

1121 - Reverse the lights

Time Limit:2s Memory Limit:256MByte

Submissions:293Solved:86

DESCRIPTION

有nn个灯,初始时都是不亮的状态,每次你可以选择一个某一个灯,不妨记为xx,所有满足和xx距离不超过kk的灯的状态都将被翻转,选择第ii个灯的代价记为cici,问最终所有灯都是亮的状态的最小花费.

INPUT

输入有两行,第一行包含两个正整数n(1≤n≤10000)和k(0≤k≤1000)n(1≤n≤10000)和k(0≤k≤1000) 第二行包含nn个整数,分别表示ci(0≤ci≤109)ci(0≤ci≤109)

OUTPUT

输出一行表示答案

SAMPLE INPUT

3 1 1 1 1

SAMPLE OUTPUT

1

时间: 2024-10-02 20:09:11

玲珑杯 Round15 A Reverse the light的相关文章

玲珑杯 Round15 E咸鱼旅行 最小生成树+BFS

题目链接:http://www.ifrog.cc/acm/problem/1126 maxn = 500005. 不然RE..... 思路:跑一遍最小生成树然后bfs找一下即可. wa了N次,发现自己并没有真正理解并查集的合并:x = find(u), y = find(v), p[x] = y,等价于先find(u) find(v)之后(需要路径压缩)p[p[u]] = p[v] 或者p[p[v]] = p[u] 不过纯粹自己写kruskal + bfs + 并查 AC的感觉还是很爽的. 代码

SGU 179.Brackets light

时间限制:0.25s 空间限制:12M 题意       给定一个合法的仅由'(',')'组成的括号序列,求它的下一个合法排列.假定'('<')'. Solution:               先来回顾求下一个排列的算法:                       对于一个排列 1 2 4 5 3                       它的下一个排列将从后往前找到相邻的两个数是顺序的(即前面的数小于后面的数),将这两个数交换 得到 1 2 5 4 3                

Django url 标签和reverse()函数的使用(转)

原文:http://www.yihaomen.com/article/python/355.htm 使用url标签和reverse()函数,可以避免在模板和view中对url进行硬编码,这样即使url改变了,对模板和view也没有影响 起初用django 开发应用的时候,完全是在urls.py 中硬编码配置地址,在views.py中HttpResponseRedirect()也是硬编码转向地址,当然在template 中也是一样了,这样带来一个问题,如果在urls.py 中修改了某个页面的地址,

186. Reverse Words in a String II

https://leetcode.com/problems/reverse-words-in-a-string-ii/#/description Given an input string, reverse the string word by word. A word is defined as a sequence of non-space characters. The input string does not contain leading or trailing spaces and

codeforces 414C C. Mashmokh and Reverse Operation(归并排序求逆序对)

题目链接: C. Mashmokh and Reverse Operation time limit per test 4 seconds memory limit per test 512 megabytes input standard input output standard output Mashmokh's boss, Bimokh, didn't like Mashmokh. So he fired him. Mashmokh decided to go to university

Forward Proxy &amp; Reverse Proxy | 正向代理 和 反向代理

对请求和响应内容不做修改的转发的服务器,被称为代理服务器.代理服务器分为两种类型:正向代理 和 反向代理. 正向代理:面向互联网,从更广范围获取信息的代理. 反向代理:面向内部,一般用于某企业的网站的前端的代理.反向代理能承担负载均衡,身份认证,内容缓存的任务.这些功能在反向代理上面实现会显得很自然. 正向代理: 如果使用过 vpn 或者 shadowsocks 等FQ工具访问 Google,那么就是在使用正向代理服务器. 下面的图例解释了正向代理的使用.正向代理服务器在互联网中扮演用户的角色,

Reverse Linked List

题目: Reverse a singly linked list. cpp: class Solution { public: ListNode* reverseList(ListNode* head) { if(!head || !head->next) return head; ListNode *p1 = head; ListNode *p2 = head->next; ListNode *p3 = head->next->next; p1->next = nullpt

Reverse Integer - 反转一个int,溢出时返回0

Reverse Integer Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 若反转的数溢出,直接返回0 可以用计算结果来判断溢出,也可以用因数来判断 Java代码实现: 1 public class ReverseInteger { 2 public static int reverseInt(int x){ 3 if (x == 0) { 4 return

Reverse Integer

Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 click to show spoilers. Have you thought about this? Here are some good questions to ask before coding. Bonus points for you if you have already thought throug