ray又在npc問題了:這裡有乙個箱子,還有若干個玩具。
我們可以假設玩具的數量是沒有上限的。我們還知道這個箱子是不規則的,或者可以說,他的外形比較像乙個矩形,但是內部卻有很多突起,這些突起很可惡,他可以一直突到玩具的頂蓋部。為了簡化這個npc問題,ray只保留了一種形狀的玩具。
ps:玩具為「十」字形
ray想知道對於乙個給定的箱子,最多可以放下多少個這樣的玩具。
第一行兩個用空格隔開的整數n 和m表示玩具箱的長度和寬度
第二行到第n+1行,每行m個用空格隔開的字元「#」「.」;「#」表示這裡是乙個障礙物。「.」表示這裡可以放東西。
一行乙個整數表示最多的玩具個數
5 4
#.#.
...#
#..#
#...
##.#
20<=n<=100
0<=m<=10
發現這道題和炮兵陣地很像,而且一開始我又陷入了類似炮兵陣地的誤區(只開兩維,詳見炮兵大坑),和炮兵不同的是,迷之突起會相互影響無法相容,因此我們記下每個凸起位置= =,dp的時候判斷一下就可以了。
#includeusing namespace std;
#define inc(i,l,r) for(register int i=(l);i<=(r);++i)
int n,m;
int cannot[110];
int cnts,p[30],st[30],num[30];
inline bool ok(int s)
if(cnt%3)return 0;
return 1;
}inline void cull(int idx,int s)
st[idx]=tmps,num[idx]=cnt/3;
}int ans,f[110][30][30];
inline void init()
inc(i,1,cnts)if(!(st[i]&cannot[2])&&!(p[i]&cannot[1])&&!(p[i]&cannot[3]))
inc(j,1,cnts)if(!(st[j]&cannot[1])&&!(p[j]&cannot[2])&&!(p[j]&st[i]))f[2][i][j]=num[i];
}inline void solv()
} }inc(i,2,n-1)inc(j,1,cnts)inc(k,1,cnts)ans=max(ans,f[i][j][k]);//在下懶得判了
cout<}int main()
/*6 5
##.##
#...#
##..#
#....
....#
#.###
37 7
.......
.......
.......
.......
.......
.......
.......
6*/
模擬訊號 模擬訊號與模擬電路
訊號 用來攜帶資訊的物理量。電訊號 隨著時間變化的電壓或電流,在數學上,我們可以通過函式來表達這種變化情況,因此我們可以畫出波形。電子電路中的訊號分類 數碼訊號和模擬訊號。模擬訊號的特點 連續性,無論是在時間上還是在數值上。大多數的物理量均為模擬量,如溫度 壓力 流量.非電的物理量可以通過感測器變換...
CG物理模擬 風箏模擬
放風箏是一項起源於中國的傳統娛樂專案,隨後推廣到世界各地。按作用可以分成節日慶典祝福風箏,體育競技類,單純的娛樂向風箏等。要想用計算機較為真實的模擬風箏運動,首先我們先得搞清楚風箏的受力情況。飛行原理 如圖 b 所示,風箏在天空中飛翔時所受的力為 風箏線的張力,尾巴的張力,自身的重力,以及風的作用力...
AcWing 模擬棧 棧 模擬
時 空限制 1s 64mb 實現乙個棧,棧初始為空,支援四種操作 1 push x 向棧頂插入乙個數x 2 pop 從棧頂彈出乙個數 3 empty 判斷棧是否為空 4 query 查詢棧頂元素。現在要對棧進行m個操作,其中的每個操作3和操作4都要輸出相應的結果。第一行包含整數m,表示操作次數。接下...