COJ 1156 Switching bulbs

一道模拟题目

对于所有0 还是 1 我们都可以想象做均为 0 的状态

v[i]表示原来的值

但是对于原来为1的要加上其所在的值作为初始值

然后转化后 a[i] = -v[i]  , 如果原来为0 , 那就直接赋值

我们总是希望将尽可能大的值先加 ,所以将a由大到小排个序 ,  一直加到负数的时候需要考虑这个负数取不取,其实我们最多取一个负数,因为当加了

第一个负数若后面还为负数,那么我们可以将那个负数倒转又加回来即可

但第一个负数取不取也要看它的绝对值是不是比前一个数大,如果大,说明宁可将前一个数再变一次颜色后舍去也不需要加后一个负数

最后我们就确定实际上使用的数了,如果操作数大于这个数,说明超过范围只是不断的将最小的数不断改变颜色

 1 #include <cstdio>
 2 #include <algorithm>
 3 using namespace std;
 4
 5 const int N = 100005;
 6 int col[N] , v[N] , a[N];
 7
 8 bool cmp(int a , int b)
 9 {
10     return a>b;
11 }
12
13 int main()
14 {
15    // freopen("a.in" , "r" , stdin);
16     int n , m;
17     while(scanf("%d%d" , &n , &m) == 2)
18     {
19         for(int i = 0 ; i<n ; i++)
20             scanf("%d" , col+i);
21         for(int i = 0 ; i<n ; i++)
22             scanf("%d" , v+i);
23
24         int val = 0;
25         for(int i=0 ; i<n ; i++)
26             if(col[i]){
27                 val += v[i];
28                 a[i] = -v[i];
29             }
30             else{
31                 a[i] = v[i];
32             }
33         sort(a , a+n , cmp);
34         for(int i = 0 ; i<n ; i++){
35             if(a[i] < 0){
36                 if(i == 0){
37                     n = 1;
38                     break;
39                 }
40                 if(-a[i] > a[i-1]) n = i;
41                 else n = i+1;
42                 break;
43             }
44         }
45         if(m<=n){
46             for(int i = 0 ; i<m ; i++)
47                 val += a[i];
48         }
49         else{
50             for(int i = 0 ; i<n ; i++){
51                 val += a[i];
52             }
53             if((m-n)&1) val -= a[n-1];
54         }
55         printf("%d\n" , val);
56     }
57     return 0;
58 }
时间: 2024-09-30 18:30:45

COJ 1156 Switching bulbs的相关文章

LED Bulbs Turn Signal manufacture

Products > LED Car -Truck bulbs Lights > LED Bulbs Turn Signal light .1156 bulbs-18SMD-LED Bulbs .1156 bulbs-13HP3-LED Bulbs .1156 bulbs-3UHP+LENS-LED Bulbs1156-3UHP-B+LENS1156-3UHP-G+LENS1156-3UHP-R+LENS1156-3UHP-W+LENS1156-3UHP-Y+LENS .1156 bulbs-

Turn Signal Lights LED Manufacture

Products > LED Car -Truck bulbs Lights > LED Bulbs Turn Signal light .1156 bulbs-18SMD-LED Bulbs .1156 bulbs-13HP3-LED Bulbs .1156 bulbs-3UHP+LENS-LED Bulbs1156-3UHP-B+LENS1156-3UHP-G+LENS1156-3UHP-R+LENS1156-3UHP-W+LENS1156-3UHP-Y+LENS .1156 bulbs-

LED Turn signal bulbs

Products > chiming new product .T17 bulb power LED .Festoon bulb XPE LED .T10 LED Wedge lamp power 1 LED .T10 LED Wedge bulb power 1 LED .S25 1156 power 28 LED .1156_1157_TH3_LED-Fluorescent_Pink .1156 1157 TH3 LED-Fluorescent Yellow .HB3 HB4 10W FOG

LED Automotive Bulbs Light

Products > chiming new product .T17 bulb power LED .Festoon bulb XPE LED .T10 LED Wedge lamp power 1 LED .T10 LED Wedge bulb power 1 LED .S25 1156 power 28 LED .1156_1157_TH3_LED-Fluorescent_Pink .1156 1157 TH3 LED-Fluorescent Yellow .HB3 HB4 10W FOG

Linux Context , Interrupts 和 Context Switching 说明【转】

转自:http://blog.csdn.net/tianlesoftware/article/details/6461207 一. 进程Context 定义 当一个进程在执行时, CPU的所有寄存器中的值.进程的状态以及堆栈中的内容,比如各个变量和数据,包括所有的寄存器变量.进程打开的文件.内存信息等.这些信息被称为该进程的上下文(Context). 一个进程的Context可以分为三个部分:用户级上下文.寄存器上下文以及系统级上下文: (1)用户级上下文: 正文.数据.用户堆栈以及共享存储区:

哈理工2015 暑假训练赛 zoj 2976 Light Bulbs

Light BulbsTime Limit:2000MS    Memory Limit:65536KB    64bit IO Format:%lld & %llu SubmitStatusPracticeZOJ 2976 Description Wildleopard had fallen in love with his girlfriend for 20 years. He wanted to end the long match for their love and get marri

Context Switching on the Cortex-M3

http://coactionos.com/embedded%20design%20tips/2013/10/09/Tips-Context-Switching-on-the-Cortex-M3/ The ARM Cortex-M3 architecture is designed with special features to facilitate implementing a pre-emptive RTOS. The system code takes advantage of thes

翻译经典之《Cisco Lan Switching》(零):前言

[版权声明:原创翻译文章,翻译水平有限,错误在所难免,翻译作者对文章中存在的错误或遗漏所造成后果不承担任何责任,请谨慎转载.转载请保留本声明及出处:blog.csdn.net/shallnet ,下载该书英文版] 一直不知为何<Cisco Lan Switching>如此经典的一本讲交换技术的书没有中文版,甚至此书在各大网店上连英文原版书籍都没有现货.此书也是我在做交换机开发过程中发现,并对其中一些内容仔细阅读,发现该书讲解甚是详细,对做交换机开发的工程师非常有益,我也只能说对其是相见恨晚.

中南大学COJ 1216: 异或最大值(数据结构)

中南大学COJ 1216: 异或最大值(数据结构) ACM 题目地址:COJ 1216 题意: 中文题,注意是多组样例. 分析: 用01Trie做的. 代码: /* * Author: illuz <iilluzen[at]gmail.com> * File: coj1216.cpp * Create Date: 2014-07-27 14:18:44 * Descripton: trie */ #include <cstdio> #include <cstring>