NOIP 2017 時間複雜度

2022-07-15 18:45:12 字數 1391 閱讀 8950

題目鏈結

去年考試這道題貌似20分

今天又寫,怒幹1個半小時,一次ac

重點是靜下心來,理清思路,知道要幹什麼

然後慢慢地查錯

之後自己造一些比較難的資料來測

這種細節巨多的題就要靜下來,就好了

#include#define rep(i, a, b) for(register int i = (a); i < (b); i++)

#define _for(i, a, b) for(register int i = (a); i <= (b); i++)

using

namespace

std;

intmain()

if(!ok) num = 0

;

int vis[30

]; memset(vis,

0, sizeof

(vis));

stack

st;int op = 0

, cnt;

int ans = 0, sum = 0

;

gets(s);

_for(r,

1, l)

vis[st.top()] = 0

; st.pop();

sum =max(sum, ans);

if(ans) ans--;

}else

int id = s1[0] - 'a'

;

if(vis[id])

else vis[id] = 1

; st.push(id);

if(op == 1) //

不執行

if(s2[0] == '

n' && s3[0] == '

n') continue;//

n nif(s2[0] != '

n' && s3[0] == '

n') //

1 nif(s2[0] == '

n') //

n 1bool ok = 0; //

常數 if(cnt1 != cnt2) ok = cnt1 >cnt2;

else

}if(ok) op = cnt = 1

; }

}if(sum == -1 || !st.empty()) puts("

err"

);

else printf("

%s\n

", sum == num ? "

yes" : "no"

); }

return0;

}

NOIP2017 時間複雜度

最近做的最簡單的一道模擬題orz 終於把noip2017的都搞完了。這道理有幾個需要注意的小細節 1.注意 f i n n的情況,相當與常數。2.在不迴圈的部分也要記得判斷是否重複變數 3.兩個常數的時候記得比大小 其他也就沒啥了。考noip2017的時候棧是什麼都不知道,只知道zz模擬,也不知道怎...

NOIP2017 時間複雜度

傳送門 這道題我去年做到 最後還是爆零了,現在我還是特別慢才寫完 唯一不同就是現在思路比較清晰,但是我的做法比較複雜,很長。我們要處理以下事情 1.讀入程式行數,得到該程式時間複雜度。這個很簡單,我的方法是寫乙個函式判斷一下,然後返回當前時間,如果是常數級就是0.2.讀入程式,判斷是否合法。這一步判...

NOIP2017 時間複雜度

堪稱史上最噁心的模擬題!花了我幾乎一天時間才調出來。思路沒啥好說的,開棧模擬即可,細節說一說。1 每次處理乙個新的程式時,將所有該初始化的都初始化,這點估計都能想到。2 關於讀入語句,可以一次讀一行,也可以分開讀,建議分成三個變數讀,我用的一次讀一行,坑死了!不過趁機學了一下c 關於讀入行的知識,c...