国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

毀滅者問題

2019-11-14 22:24:32
字體:
來源:轉載
供稿:網友
毀滅者問題毀滅者問題時間限制:10000ms單點時限:1000ms內存限制:256MB描述

在 Warcraft III 之冰封王座中,毀滅者是不死族打三本后期時的一個魔法飛行單位。

毀滅者的核心技能之一,叫做魔法吸收(Absorb Mana):

14054064004625.png

現在讓我們來考慮下面的問題:

假設你擁有n個魔法單位,他們從左到有站在一行,編號從 1 到n。 每個單位擁有三項屬性:

  • si: 初始法力。

  • mi: 最大法力上限。

  • ri: 每秒中法力回復速度。

現在你操縱一個毀滅者,有m個操作,tlr,表示時刻 t,毀滅者對所有編號從lr的單位,使用了魔法吸收。操作按照時間順序給出,計算毀滅者一共吸收了多少法力。

輸入

輸入數據的第一行有一個整數n(1 ≤  n≤105) — 你的魔法單位的數目。

接下來的n行,每行有三個整數si, mi, ri(0 ≤ si ≤ mi ≤ 105,0 ≤ ri ≤ 105) 描述一個魔法單位。

接下來一行又一個整數m(1 ≤ m ≤ 105), — 操作的數目。

接下來的m行,每行描述一個操作t, l, r(0 ≤ t ≤ 109,1 ≤ l ≤ r ≤ n),t非降。

輸出

輸出一行一個整數表示毀滅者一共吸收了多少法力。

樣例輸入
50 10 10 12 10 20 10 12 10 10 125 1 519 1 5代碼:
 1 import java.util.Scanner; 2  3  4 public class Destroyer { 5      6      7      8     public static void main(String argv[]){ 9         10         Scanner br=new Scanner(System.in);11         // 獲取魔法單位數據12         int n=Integer.parseInt(br.nextLine());    13         int energy=0;14         String[] N=new String[n];15         for(int i=0;i<n;i++){16             17             N[i]=br.nextLine();18             19         }20         21         //獲取操作組22         int m=Integer.parseInt(br.nextLine());23         String[] M=new String[m];24         for(int i=0;i<m;i++){25             26             M[i]=br.nextLine();27             28         }29         br.close();30         31         //數據轉化為魔法單位對象組32         Mor[] Mer=new Mor[n];33         for(int i=0;i<n;i++){34             String[] List=N[i].split(" ");35             Mer[i]=new Mor(Integer.parseInt(List[0]),Integer.parseInt(List[1]),Integer.parseInt(List[2]));36             //System.out.PRintln(Mer[i].s+Mer[i].speed+Mer[i].max);37         }38         39         //數據轉化為操作對象組40         Mov[] Mver=new Mov[m];41         for(int i=0;i<m;i++){42             String[] List_v=M[i].split(" ");43             Mver[i]=new Mov(Integer.parseInt(List_v[0]),Integer.parseInt(List_v[1]),Integer.parseInt(List_v[2]));44             //System.out.println(Mver[i].time+Mver[i].first+Mver[i].end);45         }46         47         //時間修為時間段48         for(int i=m-1; i>=1;i--){49             50             Mver[i].time=Mver[i].time-Mver[i-1].time;51             52         }53         54         //計算吸取魔法55         for (int i=0;i<m;i++){       56             //計算每個操作的吸取魔法數57             for(int j=0;j<n;j++){58                 Mer[j].s=Mer[j].s+Mer[j].speed*Mver[i].time;59                 if(Mer[j].s>=Mer[j].max)60                     Mer[j].s=Mer[j].max;     //魔法數不可超過最大值61                 if(j+1<=Mver[i].end && j+1>=Mver[i].first){62                     energy=energy+Mer[j].s;    //魔法被吸取干凈63                     Mer[j].s=0;64                     //System.out.println(energy);65                 }66                     67             }68         }69         System.out.println(energy); //輸出吸取的魔法值70         71     }72 73 }74 75 //定義魔法單位對象76 class Mor{77     78     int s;79     int speed;80     int max;81     Mor(int a,int b,int c){82         this.s=a;83         this.speed=c;84         this.max=b;85     }86 }87 //定義操作對象88 class Mov{89     90     int time;91     int first;92     int end;93     Mov(int a,int b,int c){94         this.time=a;95         this.first=b;96         this.end=c;97     }98 }

運行效果:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 淅川县| 万山特区| 土默特右旗| 木兰县| 台湾省| 巢湖市| 南川市| 遂溪县| 赫章县| 分宜县| 平武县| 华宁县| 琼结县| 礼泉县| 得荣县| 丹凤县| 清丰县| 盱眙县| 新竹市| 泽库县| 富宁县| 阿拉善盟| 荆门市| 澳门| 静乐县| 临夏县| 团风县| 新龙县| 宝坻区| 太白县| 凯里市| 遂川县| 大余县| 明水县| 洞口县| 仪征市| 仪征市| 荥阳市| 措勤县| 金川县| 金川县|