poj1484---判断保险丝是否烧断

题目输入要求:

2 2 10 //设备数n  接下来的操作数m   保险丝能承受最大电流c
5 //电器1的电流
7 //2的电流
1 //反转开关1
2 //反转开关2

思路:设置一个flag数组,记得每次进入一个数据集,重新设为0,flag从1开始,flag[1]...flag[n]模拟开关状态

将每个device的电流分别存到ci数组里,从1开始存ci[1],存到ci[n],不管ci[0],n<=20,随便给个 大于21的数

接着,再用一个for循环,读入device序号,如果flag[dev]==0,flag反转为开,ci_total加上对应序号设备的电流ci[dev]

设备序号dev                   1      2      3      4        5     6

ci[]设备对应电流     7      4      5      9        2     8

flag[]设备状态                 0      0      1      0        1     0

数组序号                  0     1      2      3      4        5      6

#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{
    int n,m,c,i,count=0;
    int flag[25],ci[1000];
    while(scanf("%d%d%d",&n,&m,&c)!=EOF)
    {
        int ci_total=0;
        if(n==0&&m==0&&c==0)
            break;
        memset(flag,0,sizeof(flag));
        for(i=1;i<n+1;i++)
        {
            scanf("%d",&ci[i]);
        }
        int max=0;
        for(i=1;i<m+1;i++)
        {
            int dev;
            scanf("%d",&dev);
            if(flag[dev]==0)
            {
                flag[dev]=1;//反转状态
                ci_total+=ci[dev];//
            }
            else
            {
                flag[dev]=0;
                ci_total-=ci[dev];
            }
            if(ci_total>max)//如果在过程中,出现了max>c情况接下来的数据输入只可能让他更高,不可能变小,所以,就算比当前大于大于max的数还大,循环出来也是会>c
                max=ci_total; //没有遇到max>c就没有呗
        }
        if(max>c)
        {
            printf("Sequence %d\n",++count);
            printf("Fuse was blown.\n");
            printf("\n");
        }
        else
        {
            printf("Sequence %d\n",++count);
            printf("Fuse was not blown.\n");
            printf("Maximal power consumption was %d amperes.\n",max);
            printf("\n");
        }
    }
    return 0;
}

  WA三次,原因memset函数没搞清楚

memset包含于头文件:#include <string.h>,属于字符串处理函数

memset(数组地址,所需要赋的值,所需赋的数组大小,通常是sizeof(数组名)或者sizeof(flag[0]*m))

sizeof(flag[0]*m)表示将数组从给的地址开始的m个元素赋值

时间: 2024-08-07 14:50:58

poj1484---判断保险丝是否烧断的相关文章

灵岳点钞机常见故障及解决方法

1.      开机后机器没有任何反应:检查是否停电,电源开关是否开启,插头是否插好,保险丝是否烧断. 2.    控制键盘灯不亮:内插线是否脱落 3.    进钞台不进钞:进钞传感器损坏 4.    大电机不转:保险丝烧坏. 5.    小电机不转:小电机损坏 6.    接钞叶不转:皮带断 7.      接钞轮不转:电机皮带断 8.      不计数:计数传感器坏 9.      不清零:清零传感器坏 10.   外显数字缺边:数码管坏 11.   出现重张:间隙是否过大,调节进钞台后面的

STA之RC Corner再论

Q:RC-Corner跟PVT怎么组合? A:通常的组合:   Q:通常说的ttcorner指的是啥? A:@孟时光 ttcorner是指管子在tt+RCtyp吧. Typesof corners When working in the schematic domain, weusually only work with frontend of line (FEOL) process corners as these corners willaffect the performance of d

words2

餐具:coffee pot 咖啡壶coffee cup 咖啡杯paper towel 纸巾napkin 餐巾table cloth 桌布tea -pot 茶壶tea set 茶具tea tray 茶盘caddy 茶罐dish 碟plate 盘saucer 小碟子rice bowl 饭碗chopsticks 筷子soup spoon 汤匙knife 餐刀cup 杯子glass 玻璃杯mug 马克杯picnic lunch 便当fruit plate 水果盘toothpick 牙签中餐:bear's

电工知识:3种方法测电容的好坏,万用表三个档位的巧妙应用

电工知识:3种方法测电容的好坏,万用表三个档位的巧妙应用 2018-01-23 00:23 我是大俵哥 话不多说直接干货 三种测量方法,分别用万用表的电容档,电阻档,二极管蜂鸣档(大多是合体的一个档位) 电容单位法拉,千进制毫微纳皮 1,电容档 首先电容放电,小容量耐压低的电容简单正负极短接几秒就行,大电容的话就接了电阻接个其他负载都可以,简单放电以后,把万用表打到合适的量程,参考电容上的容量. 红黑笔接触电容的两级,如果是电解电容就红笔接正黑笔接负极. 10微法的电容,我们可以选择200微法量

检查主板故障的常用方法

主板故障往往表现为系统启动失败.屏幕无显示等难以直观判断的故障现象.下面列举的维修方法各有优势和局限性,往往结合使用. 1.清洁法 可用毛刷轻轻刷去主板上的灰尘,另外,主板上一些插卡.芯片采用插脚形式,常会因为引脚氧化而接触不良.可用橡皮擦去表面氧化层,重新插接. 2.观察法 反复查看待修的板子,看各插头.插座是否歪斜,电阻.电容引脚是否相碰,表面是否烧焦,芯片表面是否开裂,主板上的铜箔是否烧断.还要查看是否有异物掉进主板的元器件之间.遇到有疑问的地方,可以借助万用表量一下.触摸一些芯片的表面,

如何避免故障?

对每一个程序员而言,故障都是悬在头上的达摩克利斯之剑,都唯恐避之不及,如何避免故障是每一个程序员都在苦苦追寻希望解决的问题.对于这一问题,大家都可以从需求分析.架构设计 .代码编写.测试.code review.上线.线上服务运维等各个视角给出自己的答案.本人结合自己两年有限的互联网后端工作经验,从某几个视角谈谈自己对这一问题的理解,不足之处,望大家多多指出. 我们大部分服务都是如下的结构,既要给使用方使用,又依赖于他人提供的第三方服务,中间又穿插了各种业务.算法.数据等逻辑,这里面每一块都可能

计算机原理学习(2)-- 存储器和I/O设备和总线

前言 前一篇文章介绍了冯诺依曼体系结构的计算机的基本工作原理,其中主要介绍了CPU的结构和工作原理.这一篇主要来介绍存储区,总线,以及IO设备等其他几大组件,来了解整个计算机是如何工作的. 这些东西都是看得见摸得着的硬件,平时我们买电脑时最关注的就是CPU的速度,内存的大小,主板芯片等等的参数. 1. 存储器 前面我们以一个简单通用的计算机模型来介绍了CPU的工作方式,CPU执行指令,而存储器为CPU提供指令和数据. 在这个简单的模型中,存储器是一个线性的字节数组.CPU可以在一个常数的时间内访

滚蛋吧

很多事情不要想的太理所当然.就像爱别人这件事情,我们自以为是会的,其实很多时候都不是.我们天生爱一个人的本能少的可怜,爱也是需要学习,否则其实你那天发现你会爱人的那一点点本领都消失殆尽. 我从小到大经常幻想要是我是捡来的该多好.我一点都不想跟这个家有半点血缘关系.我每天都在幻想电视剧上的那种剧情在我身上发生.要是这件是真的,那真的是太爽了.我肯定也会笑的合不拢嘴.我终于可以不背负跟这个家有半点血缘关系的责任,我的血至少是干净的.我从小生物就出奇的好,因为我在推算我不是这个家的成员的概率是多少.我

计算机组装与维修

转载请注明出处: http://www.cnblogs.com/wanghui626/p/6051326.html 第一章 计算机的基本构成和组装 1,内存的组成? (1)  RAM(随机存取存储器) (2)  ROM(只读存储器) (3)  Cache(高速缓存) 2,SIMM 和 DIMM的区别? 答:SIMM:单列直插内存条, DIMM:双列直插内存条 SIMM内存条分30线和72线,必须成对使用,而DIMM内存条只有168线,可单条使用,不同容量也可混合使用.   3,内存的主要性能指标