hdu1543 大範圍重新整理區間顏色)

2021-08-04 09:04:14 字數 2312 閱讀 3524

題意是給乙個給定乙個範圍刷顏色,然後又一範圍刷另一種顏色(可能會覆蓋之前的color),問最後有幾種顏色和分別的面積

肯定立刻會想到二維區間跟新,然而這道題總範圍10000*10000,記憶體超限

所以換一種記錄方式,將每乙個範圍起末座標記錄下來並放到兩個陣列中(橫座標縱座標分開),排序

然後遍歷每乙個範圍,對於這個範圍的起末橫縱座標找到在xy中對應的標號,然後

for(

inty=x1;y

for(int

k=y1;k

etc[y][k]=

a[i].c;

這樣賦值的就只是標號了,有什麼好處呢。。省記憶體啊,例如給乙個範圍的橫座標分別是3,300,若中間沒有其他範圍覆蓋的話,那這個範圍就是用標號1,2替代了

之後把標號遍歷賦值color

for(

inti=0;i

for(intj=0

;j if(

etc[i][j])

color

[etc

[i][j]]+=(

x[i+1]-

x[i])*(

y[j+1]-

y[j]);

**://

//  main.cpp

//  paint //

//  created by mr.xue on 17/7/25. 年

//#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define ull unsigned __int64

#define ll __int64

//#define ull unsigned long long

//#define ll long long

#define lson l,mid,rt<<1

#define rson mid+

1,r,rt<<1|

1 #define middle (l+r)>>1

#define mod

1000000007

#define esp (

1e-4)

const

intinf=

0x3f3f3f3f;

using

namespace

std;

intcolor[

105],x[

202],y[

202],etc[

202][

202];

struct

node

}a[202];

intbs(

intkey,

intn,

intt)

return-1

; }

intmain()

sort(x

,x+m);

sort(y

,y+m);

cx=1;

cy=1;

for(inti=1

;i for

(inti=0

;i for

(inti=0

;i for(

intj=0;j

if(etc

[i][j])

color

[etc

[i][j]]+=(

x[i+1]-

x[i])*(

y[j+1]-

y[j]); if

(num!=1)

printf

("\n");

printf

("case %d:\n"

,num);

for(inti=1

;i<

102;i++)

} if

(sum==1)

printf

("there is %d color left on the wall.\n"

,sum);

else

printf

("there are %d colors left on the wall.\n"

,sum);

num++; }

return0;

}

MySQL屬於第幾正規化 mysql 之 三大正規化

前言 在使用mysql中對錶的設計,我們需要遵循三大正規化。設計關係型資料庫時,遵從不同的規範和要求,設計出合理的關係型資料庫,這些不同的規範和要求稱為不同的正規化。各種正規化呈遞次規範,越高的正規化資料庫冗餘越小。若要遵循後面的正規化必須遵循之前的正規化。1nf 2nf 3nf 正規化分類 目前關...

hdu 大菲波數

大菲波數 problem description fibonacci數列,定義如下 f 1 f 2 1 f n f n 1 f n 2 n 3。計算第n項fibonacci數值。input 輸入第一行為乙個整數n,接下來n行為整數pi 1 pi 1000 output 輸出為n行,每行為對應的f p...

hdu 勝利大逃亡

problem description ignatius被魔王抓走了,有一天魔王出差去了,這可是ignatius逃亡的好機會.魔王住在乙個城堡裡,城堡是乙個a b c的立方體,可以被表示成a個b c的矩陣,剛開始ignatius被關在 0,0,0 的位置,離開城堡的門在 a 1,b 1,c 1 的位...