nefu 三國之戰

2021-06-08 09:22:35 字數 1793 閱讀 4984

三國之戰

time limit 1000 memory limit 65536

description

在三國某某戰爭中,魏軍要圍攻蜀國. ,諸葛亮親自指揮戰爭,對抗曹操。現假設諸葛亮有n個大炮,每個大炮都有乙個攻擊值ai(ai>=0 &&ai<=100) ,  而且他有乙個神奇的技能,就是他能指定任意區間的大炮,使他們的攻擊值都乘以x(x.>=0 && x<=10),同時他也會詢問某段區間的大炮的總攻擊值。(資料保證答案不會超過long long)

input

第一行輸入n(n<=100000),接下一行n個數ai,代表第i個大炮的攻擊值

接著輸入q,代表q次操作,格式:

attack  l  r  x  代表把第l到 第r個大炮的攻擊值都乘以x

query  l  r   查詢l到r大炮攻擊和值

output

輸出每次查詢結果

sample_input

4 1 1 1 1

3attack 1 2 2

query  1 4

query  2 2

3100 100 100

3query 1 3

attack  1 3 0

query 1 3

sample_output

case 1: 62

case 2:

3000

hint

source

這一題我a了很久才搞定,主要時間就花在除錯上面

因為乙個漏洞。

61 1 1 1 1 1

6attack 1 4 4

attack 3 6 2

attack 1 1 3

attack 1 5 3

attack 1 4 0

query 3 6

#include

#include

#include

#include

#define n 100030

using namespace std;

class node

root[4*n];

int shu[n];

void build(int t,int l,int r)

build(t<<1,l,(l+r)/2);build(t<<1|1,(l+r)/2+1,r);

root[t].sum=root[t<<1].sum+root[t<<1|1].sum;

}void up(int t)

void update(int t,int l,int r,int date)

else

if(root[t<<1].r>=r)update(t<<1,l,r,date);

else if(root[t<<1|1].l<=l)update(t<<1|1,l,r,date);

else

root[t].sum=root[t<<1].sum+root[t<<1|1].sum;}}

int query(int t,int l,int r)

if(root[t<<1].r>=r)s=query(t<<1,l,r);

else if(root[t<<1|1].l<=l)

s=query(t<<1|1,l,r);

else s=query(t<<1,l,root[t<<1].r)+query(t<<1|1,root[t<<1|1].l,r);

root[t].sum=root[t<<1].sum+root[t<<1|1].sum;

}return s;

}int main()

else

新三國爭霸

descrption input output sample input 3 3 5 10 30 1 2 1 2 3 2 1 3 4 11 3 2 5sample output 180hint 分析 顯然現在問題如何知道 w j 1 i n le 300 範圍比較小,我們可以 n 2 預處理出區間內...

寫個三國殺

自己老早以前就想寫個區域網的三國殺,以前思考過其遊戲邏輯的實現,覺得有點複雜,一直也沒有真正動手,上個週末,真正動手做了起來,2天裡寫了大約2000來行 算是把整個框架有了個大致的實現。下面把整個思路整理一下。既然是輕量級的區域網版本,就沒必要把伺服器和客戶端分開來做,就讓程式自帶服務端和客戶端,類...

《三國演義》簡介

三國演義 是我國最早的一部長篇 章回體歷史 描寫了 三國時期的歷史故事,集體表現了統治者之間政治和軍事鬥爭。該書最早的 版本是明 嘉靖元年刊印的 三國志通俗演義 分24卷,240則,每則乙個七言標題。此後新的刊本迭出,卷數 回目 引用詩詞等均有改動。清康熙時,毛綸 毛宗崗父子對 三國志演義 進行了修...