codevs 3235 战争

本文介绍了一个名为“3235战争”的算法题目,该题要求设计一个战地统计系统来处理两类操作:一是外星人增援部队,二是人类使用超级武器打击外星人,并统计消灭的外星人数目。文章提供了问题描述、输入输出示例及一个简单的枚举解决方案。
 时间限制: 2 s
 空间限制: 128000 KB
 
题目描述  Description
2050年,人类与外星人之间的战争已趋于白热化。就在这时,人类发明出
一种超级武器,这种武器能够同时对相邻的多个目标进行攻击。凡是防御力小于或
等于这种武器攻击力的外星人遭到它的攻击,就会被消灭。然而,拥有超级武器是
远远不够的,人们还需要一个战地统计系统时刻反馈外星人部队的信息。这个艰巨
的任务落在你的身上。请你尽快设计出这样一套系统。

这套系统需要具备能够处理如下2类信息的能力:

  1.外星人向[x1,x2]内的每个位置增援一支防御力为v的部队。
  2.人类使用超级武器对[x1,x2]内的所有位置进行一次攻击力为v的打击。系统需
要返回在这次攻击中被消灭的外星人个数。

注:防御力为i的外星人部队由i个外星人组成,其中第j个外星人的防御力为j。
输入描述  Input Description
    第一行读入n,m。其中n表示有n个位置,m表示有m条信息。
    以下有m行,每行有4个整数k,x1,x2,v用来描述一条信息 。k表示这条信息属
于第k类。x1,x2,v为相应信息的参数。k=1 or 2。
    注:你可以认为最初的所有位置都没有外星人存在。
    规模:0<n<=1000;0<x1<=x2<=n;0<v<=1000;0<m<=2000
输出描述  Output Description
结果输出。按顺序输出需要返回的信息。
样例输入  Sample Input
3 5             
1 1 3 4         
2 1 2 3         
1 1 2 2         
1 2 3 1         
2 2 3 5         
样例输出  Sample Output

6

9

挂着钻石招摇撞骗

其实暴力枚举就能A

#include<cstdio>
using namespace std;
int n,m;
int s[1001][1001];
int main()
{
    scanf("%d%d",&n,&m);
    int a,b,c,d;
    int ans;
    while(m--)
    {
        scanf("%d%d%d%d",&a,&b,&c,&d);
        if(a==1)
        {
            for(int i=b;i<=c;i++)
             for(int j=1;j<=d;j++)
              s[i][j]++;
        }
        else
        {
            ans=0;//ans一定要在循环外面定义,不然会T 
            for(int i=b;i<=c;i++)
             for(int j=1;j<=d;j++)
              {
                   ans+=s[i][j];
                   s[i][j]=0;
              }
            printf("%d\n",ans);
        }
    }
}

 

转载于:https://www.cnblogs.com/TheRoadToTheGold/p/6512198.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值