codeM2018 B輪 A 開關燈

2021-08-20 22:14:48 字數 1753 閱讀 8841

[程式設計|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 4

1 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

11

00

#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 的子串。輸入描...