~~这程序给我压行,只要2行~~
by REFLAME_ASH @ 2018-11-06 16:16:27
![Pic](https://www.superbed.cn/pic/5be14dd19dc6d6b928f19e07)
by Sue_Shallow @ 2018-11-06 16:16:56
把最后一个大括号压进去就进30了。
# 真好。
Giao。
by Sue_Shallow @ 2018-11-06 16:18:12
如果你真想压可以压到三行。
```
从前,压行是为了简明扼要地表示逻辑关系。
现在,压行是为了。。我TM也不知道你们这样有什么意义。
```
by Nero_Claudius @ 2018-11-06 16:18:52
@[Yeasion_Nein](/space/show?uid=60528) %%%%%
by 皎月半洒花 @ 2018-11-06 16:21:53
我发现我真是闲啊。
我竟然则这儿卡了十来分钟的常。(笑哭
by Sue_Shallow @ 2018-11-06 16:23:45
@[Yeasion_Nein](/space/show?uid=60528) 哦
# 可这跟LZR宇宙第一有什么关系
by 皎月半洒花 @ 2018-11-06 16:26:03
要我压就这样
`#include <cstdio>`
`#include <algorithm>`
`using namespace std ;
inline int Read() { register int X = 0 ; register char ch = getchar() ;
while(ch < '0' || ch > '9') ch = getchar() ;
while(ch <= '9' && ch >= '0') X = (X << 1) + (X << 3) + (ch ^ 48), ch = getchar() ; return X ; }
const int MAXN = 500010, MAXM = 2000010 ; struct Node{ int From, To, Next ;} Edge[MAXM] ;
int Head[MAXN], Total, Dfn[MAXN], Low[MAXN], Deep, Cnt, Flag[MAXN], N, M, K, Stack[MAXN] ;
int Insta[MAXN], Top, Belong[MAXN], Est[MAXN], MIN[MAXN], Finally[MAXN], All, Data[MAXN], Ans ;
inline void Tarjan(register int Now) {
Dfn[Now] = Low[Now] = ++ Deep ; Stack[++ Top] = Now ; Insta[Now] = 1 ;
for(register int i = Head[Now]; i; i = Edge[i].Next)
if (! Dfn[Edge[i].To]) Tarjan(Edge[i].To), Low[Now] = min(Low[Now], Low[Edge[i].To]) ;
else if (Insta[Edge[i].To]) Low[Now] = min(Low[Now], Dfn[Edge[i].To]) ;
if(Low[Now] == Dfn[Now]) { Cnt ++ ; register int Pass ; do {
Pass = Stack[Top --] ; Belong[Pass] = Cnt ; Insta[Pass] = 0 ;
if (Est[Cnt] > Data[Pass]) MIN[Cnt] = Pass, Est[Cnt] = Data[Pass] ;
}while (Now != Pass) ; } }
int main() { N = Read(), M = Read(), K = Read() ; for (int i = 1 ; i <= N ; i ++) Est[i] = 0x7fffffff ;
for(register int i = 1; i <= N; ++ i) Data[i] = Read() ;
for(register int i = 1; i <= M; ++ i) { register int F = Read(), T = Read() ; Total ++ ;
Edge[Total].From = F, Edge[Total].To = T, Edge[Total].Next = Head[F], Head[F] = Total ; }
for(register int i = 1; i <= N; ++ i) if(! Dfn[i]) Tarjan(i) ;
for(register int i = 1; i <= M; ++ i)
if(Belong[Edge[i].From] != Belong[Edge[i].To]) Flag[Belong[Edge[i].To]] = 1 ;
for(register int i = 1; i <= Cnt; ++ i) if(! Flag[i]) Data[MIN[i]] = - 1 ;
for(register int i = 1; i <= N; ++ i) if(Data[i] != -1) Finally[++ All] = - Data[i] ;
nth_element(Finally + 1, Finally + K + 1, Finally + All + 1) ;
for(register int i = 1; i <= K; ++ i) Ans -= Finally[i] ; printf("%lld", Ans) ; return 0 ;
}`
by NoBDKnowsBeterThanME @ 2018-11-06 16:34:50
`#include <bits/stdc++.h>`
`using namespace std ; inline int Read() { register int X = 0 ; register char ch = getchar() ; while(ch < '0' || ch > '9') ch = getchar() ; while(ch <= '9' && ch >= '0') X = (X << 1) + (X << 3) + (ch ^ 48), ch = getchar() ; return X ; } const int MAXN = 500010, MAXM = 2000010 ; struct Node{ int From, To, Next ;} Edge[MAXM] ; int Head[MAXN], Total, Dfn[MAXN], Low[MAXN], Deep, Cnt, Flag[MAXN], N, M, K, Stack[MAXN] ; int Insta[MAXN], Top, Belong[MAXN], Est[MAXN], MIN[MAXN], Finally[MAXN], All, Data[MAXN], Ans ; inline void Tarjan(register int Now) { Dfn[Now] = Low[Now] = ++ Deep ; Stack[++ Top] = Now ; Insta[Now] = 1 ; for(register int i = Head[Now]; i; i = Edge[i].Next) if (! Dfn[Edge[i].To]) Tarjan(Edge[i].To), Low[Now] = min(Low[Now], Low[Edge[i].To]) ; else if (Insta[Edge[i].To]) Low[Now] = min(Low[Now], Dfn[Edge[i].To]) ; if(Low[Now] == Dfn[Now]) { Cnt ++ ; register int Pass ; do { Pass = Stack[Top --] ; Belong[Pass] = Cnt ; Insta[Pass] = 0 ; if (Est[Cnt] > Data[Pass]) MIN[Cnt] = Pass, Est[Cnt] = Data[Pass] ; }while (Now != Pass) ; } } int main() { N = Read(), M = Read(), K = Read() ; for (int i = 1 ; i <= N ; i ++) Est[i] = 0x7fffffff ; for(register int i = 1; i <= N; ++ i) Data[i] = Read() ; for(register int i = 1; i <= M; ++ i) { register int F = Read(), T = Read() ; Total ++ ; Edge[Total].From = F, Edge[Total].To = T, Edge[Total].Next = Head[F], Head[F] = Total ; } for(register int i = 1; i <= N; ++ i) if(! Dfn[i]) Tarjan(i) ; for(register int i = 1; i <= M; ++ i) if(Belong[Edge[i].From] != Belong[Edge[i].To]) Flag[Belong[Edge[i].To]] = 1 ; for(register int i = 1; i <= Cnt; ++ i) if(! Flag[i]) Data[MIN[i]] = - 1 ; for(register int i = 1; i <= N; ++ i) if(Data[i] != -1) Finally[++ All] = - Data[i] ; nth_element(Finally + 1, Finally + K + 1, Finally + All + 1) ; for(register int i = 1; i <= K; ++ i) Ans -= Finally[i] ; printf("%lld", Ans) ; return 0 ; }`
by NoBDKnowsBeterThanME @ 2018-11-06 16:36:44
# FAKE !! QAQ~
花姐姐定理:在任何维度,都存在花姐姐使得花姐姐比LZR强。
LZR定理:在任何维度,存在LZR的宇宙级别,都相当于存在花姐姐宇宙的夸克级别或者更小。
花姐姐定律:在任何维度,都存在花姐姐最强。
LZR定律:在任何维度,都存在LZR最弱。
by Sue_Shallow @ 2018-11-06 16:37:39