COGS1532. [IOI2001]移动电话

1532. [IOI2001]移动电话

★☆   输入文件:mobilephones.in   输出文件:mobilephones.out   简单对比
时间限制:5 s   内存限制:256 MB

【题目描述】

假设Tampere地区的4G移动通信基站以如下方式运行。整个地区被划分成若干正方形格子。这些格子构成一个S*S的矩阵,它们的行,列编号都是从0到S-1.每一个格子中都有一个基站。每个格子中激活的手机数量可能改变,因为一部手机可能从一个格子移动到另一个格子,打开或者关闭。有时,某一座基站会向总站报告自己的行列坐标,以及该格中激活手机数目的变化。

【输入格式】

输入指令编码如下。

每个指令占一行,包含一个指令码和一些参数,见下表。

指令码 参数 意义
0 S 初始化一个S*S的全零矩阵。这个指令只会出现一次,即第一条指令。
1 X Y A 将格子(X,Y)中激活的手机数量增加A。A有可能是正数或负数。
2 L B R T 询问当前所有坐标(X,Y)满足:L<=X<=R,B<=Y<=T的格子中激活的手机数量之和。
3   结束程序。这个指令只会出现一次,即最后一条指令。

【输出格式】

你的程序不应该对指令2外的所有指令进行回答。对于每个指令2,你的程序需要输出一行一个正整数,即该指令的答案。

【样例输入】

0 4

1 1 2 3

2 0 0 2 2

1 1 1 2

1 1 2 -1

2 1 1 2 3

3

【样例

3

4

【提示】

矩阵大小:1<=S<=1024

任意时刻,每个格子中的激活手机数量V:0<=V<=32767

格子中激活手机数量的变化值:-32768<=A<=32767

输入的指令数目:3<=U<=60002

整个矩阵中的最大手机数量:M=2^30

【来源】

IOI 2001

二维BIT维护区间和

#include<cstdio>
const int N=3005;
int opt,n,c[N][N];
int read(){
    int x=0,f=1;char ch=getchar();
    while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)f=-1;ch=getchar();}
    while(ch>=‘0‘&&ch<=‘9‘){x=x*10+ch-‘0‘;ch=getchar();}
    return x*f;
}
int lowbit(int x){
    return x&-x;
}
void updata(int x,int y,int val){
    for(int i=x;i<=n;i+=lowbit(i)){
        for(int j=y;j<=n;j+=lowbit(j)){
            c[i][j]+=val;
        }
    }
}
int query(int x,int y){
    int res=0;
    for(int i=x;i>=1;i-=lowbit(i)){
        for(int j=y;j>=1;j-=lowbit(j)){
            res+=c[i][j];
        }
    }
    return res;
}
int main(){
    freopen("mobilephones.in","r",stdin);
    freopen("mobilephones.out","w",stdout);
    opt=read();n=read();
    for(int x1,x2,y1,y2,val;(opt=read())!=3;){
        if(opt==1){
            x1=read();y1=read();val=read();x1++;y1++;
            updata(x1,y1,val);
        }
        else{
            x1=read();y1=read();x1++;y1++;
            x2=read();y2=read();x2++;y2++;
            printf("%d\n",query(x2,y2)-query(x2,y1-1)-query(x1-1,y2)+query(x1-1,y1-1));
        }
    }
    return 0;
} 
时间: 2024-10-12 22:53:16

COGS1532. [IOI2001]移动电话的相关文章

IOI2001 - 移动电话

P1294 - [IOI 2001 ]移动电话 Description 假设Tampere地区的4G移动通信基站以如下方式运行.整个地区被划分成若干正方形格子.这些格子构成一个S * S的矩阵,它们的行,列编号都是从0到S-1.每一个格子中都有一个基站.每个格子中激活的手机数量可能改变,因为一部手机可能从一个格子移动到另一个格子,打开或者关闭.有时,某一座基站会向总站报告自己的行列坐标,以及该格中激活手机数目的变化. Input 输入指令编码如下. 每个指令占一行,包含一个指令码和一些参数,见下

intent对于电话和浏览器调用

1.创建xml文件及按钮 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android

打入电话时Fragment生命周期

Activity初次加载: MainActivity--->onCreate Mfragment---->onAttach Mfragment---->onCreate Mfragment---->onCreateView Mfragment---->onActivityCreated MainActivity--->onStart Mfragment---->onStart MainActivity--->onResume Mfragment---->

PHP使用正则表达式验证电话号码(手机和固定电话)

这个还不错,很有用. tel='验证的电话号码'; $isMob="/^1[3-8]{1}[0-9]{9}$/";  $isTel="/^([0-9]{3,4}-)?[0-9]{7,8}$/";  if(!preg_match($isMob,$tel) && !preg_match($isTel,$tel))  {   echo '<script>alert("手机或电话号码格式不正确.如果是固定电话,必须形如(xxxx-xxx

成都市政府公开电话

由于最近住处旁边经常有工地施工到凌晨一点左右,就经常去成都各政府部门投诉,有些投诉还是挺管用的. 劳保局 87706993 社保局 87706993 社保局 87706993 人事局 86639611 公安局 86407203 监察局 86638408 民政局 86641407 物价局 86638240 旅游局 86622065 文化局 87713933 教育局 86113589 卫生局 86644861 广电局 84315060 质监局 86645162 交  委 85581155 工商局 8

(一)陌生电话

“我要飞得更高, 飞得更高, 翅膀卷起风暴, 心生呼啸……” 杜康的神州手机铃声嘹亮的响了起来,而杜康显然还不太想飞,他只想睡觉——昨天晚上熬了一夜,他睡得正香.摸索着找到手机,努力的睁开眼睛,“嗯,陌生号码?座机……” 他一个激灵,立马就清醒了过来,翻身起床,把嘴巴赶紧的活动了一圈,才挤着笑容接了电话,拼尽全力让自己的声音听起来充满活力:“喂,您好!” 杜康今年刚满19岁.三年前也就是高中的时候迷上了网游,念不成书,无奈之下他爸只好让他退学,让他外出打工:可劲地折腾了几份工作之后,又和村里的一

android 电话监听和拦截

一.首先在manifest.xml文件中获取监听电话权限,注册监听电话的Activity <receiver android:name=".PhoneReceiver"> <intent-filter android:priority="1000"> <action android:name="android.intent.action.PHONE_STATE"/> <action android:nam

电话监听器案例

(1)先定义一个服务 服务用来监听电话状态 开启服务 (2)在服务的oncreate方法里面实例化TelephoneManager类的实例 (3)注册一个电话监听 (4)定义一个电话监听的类 (5) 实现录音的功能 public class PhoneService extends Service { private MediaRecorder recorder; @Override public IBinder onBind(Intent intent) { return null; } //

Android-使用AIDL挂断电话

1.AIDL简单操作 package org.zrf.demo; import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method; import android.app.Service;import android.content.Context;import android.content.Intent;import android.media.AudioManager;import andr