嗯這道辣雞題,當時我隊友寫了錯誤的**,我稍微改動了,思路基本上是對了,但是就是超時,我第一直覺是我這個演算法思路是沒有任何問題的,但是就是tle,我感覺這個演算法已經優化的不能再優化了啊。。。後面就懷疑我們自己的演算法有問題,於是改演算法,想很多莫名奇妙的,卻無法實現的東西,最後導致我另外乙個隊友那邊卡題無法進行,最後三題滾粗,這道題我從來沒有想到過,會因為map超時,因為這是從來沒有出現過的事情。。。後來確實是map超時,賽後補題二維map依舊超記憶體,後來看網上的**,的確用vis標記出現次數,如果某個語執行次數超過256,我們知道這個語句一定有值的重複,因為乙個語句最多對應256個數字,這樣不需要用二維map,只需要vis就行
#include#include#include
#include
#include
using
namespace
std;
struct
node
a[10005
];int vis[10005
];int
main()
else
}int time=n*255
;
int f=0
;
int ip=1
;
intr;
r=0;
while(time>=0 && ip<=n)
vis[ip]++;
if (a[ip].word[0]=='
a' && a[ip].word[1]=='d'
)
else
if (a[ip].word[0]=='
b' && a[ip].word[1]=='e'
)
else
}else
if (a[ip].word[0]=='
b' && a[ip].word[1]=='n'
)
else
}else
if (a[ip].word[0]=='
b' && a[ip].word[1]=='l'
)
else
}else
if (a[ip].word[0]=='
b' && a[ip].word[1]=='g'
)
else
}time--;
}if (ip>n)printf("
yes\n");
else printf("
no\n");
}return0;
}
2016ICPC青島網路賽 1011
先用bfs過濾出最短路中的路徑,然後最小割最大流定理。include include include include include include include define pii pairusing namespace std const int maxn 1200 struct edge ...
2018 ICPC 青島網路賽 Couleur
題意 給出乙個長度為n的序列,每次將某個子串行分成兩段,輸出所有段中逆序對最大的數目。題解 假設從x位置斷開,找到x最左邊的斷點l,和最右邊的斷點r,那麼就是把區間 l,r 分解為 l,x 和 x,r 如何維護兩段的逆序對個數呢?啟發式分解 假設斷點更靠近r,我們暴力求解出 x,r 的逆序對個數,再...
JSK 107305丨ICPC焦作站網賽 B丨dp
題意 給出n個數字,順次取出m個數,按照給出的m個運算子,依次去運算於k。保證m個運算子都用掉,求算計算結果的最大值。思路 觀察到m很小只有5,5x1000的複雜度是夠用的,所以可以找找狀態轉移方程,推導關係。我們記dp i j 取到第i個數,用掉第j個運算子的最大值。容易想到兩種結果,一種是 dp...