[程式設計|500分] 開關燈
時間限制:c/c++ 1秒,其他語言 2秒
空間限制:c/c++ 262144k,其他語言 524288k
64bit io format: %lld
美團的辦公室一共有n層,每層有m個會議室,可以看成是乙個n*m的網格圖。工程師們每天的工作需要協作的地方很多,經常要到會議室開會解決各種問題。公司是提倡勤儉節約的,因此每次會議室只在使用時才開燈。
當乙個工程師進入會議室時,假設沒有其他人,他會把燈開啟。
當乙個工程師離開會議室時,假設沒有其他人,他會把燈關掉。
現在給出一系列工程師進出會議室的記錄,請問在此過程中,最多有多少會議室的燈是亮著的?請輸出亮燈數最多時,每個會議室的明暗狀態。
第一行三個整數n,m,k,分別表示總行數、總列數、工程師的進出記錄數。接下來k行,每行三個整數和乙個字串x, y, z, t,表示t時間點有一條記錄,z=0表示x行y列的會議室有個工程師進入會議室了,z=1表示x行y列的房間有個工程師離開會議室了。
假設一開始所有會議室裡都是沒人的。
1 <= n, m <= 500
1 <= k <= 100,000
t是hh:mm:ss.sss的形式,其中hh表示小時,mm表示分鐘,ss.sss表示秒數。(因為工程師有非常強大的時間觀念,所以對於他們來說,時間是精確到0.001秒的)
資料保證t在18:00:00.000到23:59:59.999之間,且沒有兩條記錄的時間是完全一樣的。資料不保證記錄以t公升序的形式給出。
1 <= x <= n
1 <= y <= m
z∈資料保證沒有從空會議室離開的情況。
資料保證所有的時間格式合法。hh,mm均為長度為2的字串,ss.sss為長度為6的字串。
輸出n行每行m個整數,第i行第j列表示在亮燈數最多的時刻,第i行第j列的會議室的亮燈情況,1表示亮著,0表示沒亮。如果存在多次亮燈數最多的時刻,輸出最後一次時的情況。
示例1
2 2 41 1 0 18:00:00.000
1 1 1 20:00:00.000
1 1 0 18:00:01.000
1 2 0 18:00:02.000
1100
#include#include#define mod 1000000007
const int inf = 0x7f7f7f7f;
typedef long long ll;
const int maxn = 505;
using namespace std;
struct node;
int n,m,k;
int mp[maxn][maxn];
bool ans[maxn][maxn];
node his[100050];
bool cmp(node a, node b)
int main()
sort(his, his+k, cmp);
int cnt = 0;
int mx = 0;
for(int i = 0; i < k; i++)
}else
if(cnt >= mx)}}
}}
for(int i = 1; i <= n; i++)
printf("\n");
}return 0;
}
2018美團CodeM程式設計大賽初賽B輪 A題開關燈
美團的辦公室一共有n層,每層有m個會議室,可以看成是乙個n m的網格圖。工程師們每天的工作需要協作的地方很多,經常要到會議室開會解決各種問題。公司是提倡勤儉節約的,因此每次會議室只在使用時才開燈。當乙個工程師進入會議室時,假設沒有其他人,他會把燈開啟。當乙個工程師離開會議室時,假設沒有其他人,他會把...
CodeM初賽B輪 F 期望DP
題目大意 有n個景點,m條無向邊,經過每條邊的時間需要的時間是li,在第i個景點遊覽花費的時間是ti,遊覽完第i個景點可以獲得的滿意度是hi。你的總時間為k,起初你等概率的選擇遊覽乙個景點,然後每次等概率的前往乙個相鄰的景點遊覽,當你剩餘時間不夠遊覽乙個相鄰的景點時就結束遊覽。問所獲得的滿意度的期望...
codeM 美團b輪 E 子串
時間限制 1秒 空間限制 32768k 給出乙個正整數n,我們把1.n在k進製下的表示連起來記為s n,k 例如s 16,16 123456789abcdef10,s 5,2 11011100101。現在對於給定的n和字串t,我們想知道是否存在乙個k 2 k 16 使得t是s n,k 的子串。輸入描...