提交记录 15565


用户 题目 状态 得分 用时 内存 语言 代码长度
Alphagocc 1006. 【模板题】后缀排序 Accepted 100 71.561 ms 3336 KB C++11 5.76 KB
提交时间 评测时间
2021-01-01 20:59:16 2021-01-01 20:59:21
/*学习古代文章,诗词
醉翁亭记 北宋·欧阳修

环滁皆山也。其西南诸峰,林壑尤美。望之蔚然而深秀者,琅琊也。山行六七里,渐闻水声潺潺,而泻出于两峰之间者,让泉也。峰回路转,有亭翼然临于泉上者,醉翁亭也。作亭者谁?山之僧曰智仙也。名之者谁?太守自谓也。太守与客来饮于此,饮少辄醉,而年又最高,故自号曰醉翁也。醉翁之意不在酒,在乎山水之间也。山水之乐,得之心而寓之酒也。

若夫日出而林霏开,云归而岩穴暝,晦明变化者,山间之朝暮也。野芳发而幽香,佳木秀而繁阴,风霜高洁,水落而石出者,山间之四时也。朝而往,暮而归,四时之景不同,而乐亦无穷也。

至于负者歌于途,行者休于树,前者呼,后者应,伛偻提携,往来而不绝者,滁人游也。临谿而渔,谿深而鱼肥;酿泉为酒,泉香而酒洌;山肴野蔌,杂然而前陈者,太守宴也。宴酣之乐,非丝非竹,射者中,弈者胜,觥筹交错,起坐而喧哗者,众宾欢也;苍颜白发,颓然乎其间者,太守醉也。

已而夕阳在山,人影散乱,太守归而宾客从也。树林阴翳,鸣声上下,游人去而禽鸟乐也。然而禽鸟知山林之乐,而不知人之乐;人知从太守游而乐,而不知太守之乐其乐也。醉能同其乐,醒能述以文者,太守也。太守谓谁?庐陵欧阳修也。

岳阳楼记 北宋·范仲淹

庆历四年春,滕子京谪守巴陵郡。越明年,政通人和,百废具兴,乃重修岳阳楼,增其旧制,刻唐贤今人诗赋于其上;属予作文以记之。

予观夫巴陵胜状,在洞庭一湖。衔远山,吞长江,浩浩汤汤,横无际涯;朝晖夕阴,气象万千;此则岳阳楼之大观也,前人之述备矣。然则北通巫峡,南极潇湘,迁客骚人,多会于此,览物之情,得无异乎?

若夫霪雨霏霏,连月不开;阴风怒号,浊浪排空;日星隐曜,山岳潜形;商旅不行,樯倾楫摧;薄暮冥冥,虎啸猿啼。登斯楼也,则有去国怀乡,忧谗畏讥,满目萧然,感极而悲者矣。

至若春和景明,波澜不惊,上下天光,一碧万顷;沙鸥翔集,锦鳞游泳,岸芷汀兰,郁郁青青。而或长烟一空,皓月千里,浮光跃金,静影沉璧,渔歌互答,此乐何极。登斯楼也,则有心旷神怡,宠辱皆忘,把酒临风,其喜洋洋者矣。

嗟夫!予尝求古仁人之心,或异二者之为,何哉?不以物喜,不以己悲。居庙堂之高,则忧其民;处江湖之远,则忧其君。是进亦忧,退亦忧;然则何时而乐耶?其必曰:“先天下之忧而忧,后天下之乐而乐”欤!噫!微斯人,吾谁与归?

马说 唐·韩愈

世有伯乐,然后有千里马。千里马常有,而伯乐不常有。故虽有名马,祗辱于奴隶人之手,骈死于槽枥之间,不以千里称也。

马之千里者,一食或尽粟一石。食马者不知其能千里而食也。是马也,虽有千里之能,食不饱,力不足,才美不外见,且欲与常马等不可得,安求其能千里也?

策之不以其道,食之不能尽其材,鸣之而不能通其意,执策而临之,曰:“天下无马!”呜呼!其真无马邪?其真不知马也!
*/
//Generated at 2021-01-01 20:58:11 UTC+8
//Created by Alphagocc
#include<bits/stdc++.h>
#ifdef USE_PBDS
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/priority_queue.hpp>
#endif
using namespace std;
#define FI __inline__ __attribute__((always_inline))
#define TN typename
#define TP template
#define S *this
#define C const
class IO{static C int bufSize=1<<18;char inBuf[bufSize],outBuf[bufSize];char*ip1=inBuf,*ip2=inBuf;int ok=1,op1=-1,op2=bufSize-1;
TP<TN T>FI void __RI(T&x){int ch=gc(),neg=1;x=0;for(;!(ch==EOF||isdigit(ch)||ch=='-');ch=gc());if(ch==EOF){ok=0;return;}if(ch=='-')neg=-1,ch=gc();for(;isdigit(ch);ch=gc())x=x*10+(ch-48)*neg;}
TP<TN T>FI void __RC(T&x){unsigned char ch;while(isspace(ch=gc()));if(ch==EOF){ok=0;return;}x=ch;}FI void __RS(string&x){char ch;x.clear();for(ch=gc();isspace(ch);ch=gc());if(ch==EOF){ok=0;return;}for(;!isspace(ch);ch=gc())x.push_back(ch);}
public:
FI int gc(){return ip1==ip2 &&(ip2 =(ip1=inBuf)+fread(inBuf,1,bufSize,stdin),ip1==ip2)?EOF:*ip1++;}
FI IO&R(char&x){__RC(x);return S;}FI IO& R(unsigned char&x){__RC(x);return S;}FI IO&R(string&x){__RS(x);return S;}TP<TN T1,TN T2>FI IO&R(pair<T1,T2>&x){R(x.first),R(x.second);return S;}TP<TN T>FI IO&R(vector<T>&x){for(auto &i:x)R(i);return S;}
TP<TN T,TN...Args>FI IO&RA(T*a,int n){for(int i=0;i<n;++i)R(a[i]);return S;}TP<TN T,TN...Args>FI IO&R(T&x,Args&...args){R(x),R(args...);return S;}
TP<TN T,TN...Args>FI IO&RA(T*a,int n,Args...args){for(int i=0;i<n;++i)RA(a[i],args...);return S;}TP<TN T>FI IO&R(T&x){static_assert(is_integral<T>::value,"Unsupported types");if(is_integral<T>::value)__RI(x);return S;}
private:
char space=' ';TP<TN T>FI void __WI(T x){static char buf[64];static int len=-1;if(x>=0){do{buf[++len]=x%10+48,x/=10;}while(x);}else{pc('-');do{buf[++len]=-(x%10)+48,x/=10;}while(x);}while(len>=0){pc(buf[len]),--len;}}
public:
FI void pc(C char&x){if(op1==op2)flush();outBuf[++op1]=x;}
FI void flush(){fwrite(outBuf,1,op1+1,stdout),op1=-1;}FI IO&W(C char&x){pc(x);return S;}FI IO&W(C char*x){while(*x!='\0')pc(*(x++));return S;}FI IO&W(C string&x){W(x.c_str());return S;}
TP<TN T>FI IO&W(C vector<T>&x){for(auto&i:x)WS(i);WL();return S;}FI IO&WL(){W('\n');return S;}TP<TN T1,TN T2>FI IO&W(C pair<T1,T2>&x){WS(x.first),W(x.second);return S;}
TP<TN T>FI IO&WL(C T&x){W(x),W('\n');return S;}FI IO&WS(){W(space);return S;}TP<TN T>FI IO&WS(C T&x){W(x),W(space);return S;}
TP<TN T>FI IO&WA(T* a,int n){for(int i=0;i<n;i++)WS(a[i]);WL();return S;}TP<TN T,TN...Args>FI IO&W(C T&x,C Args&...args){W(x),W(space),W(args...);return S;}TP<TN...Args>FI IO&WS(C Args&...args){W(args...),W(space);return S;}
TP<TN...Args>FI IO&WL(C Args&...args){W(args...),W('\n');return S;}TP<TN T,TN...Args>FI IO&WA(T* a,int n,Args...args){for(int i=0;i<n;i++)WA(a[i],args...);return S;}
TP<TN T>FI IO&W(C T&x){static_assert(is_integral<T>::value,"Unsupported types");if(is_integral<T>::value)__WI(x);return S;}
TP<TN T>FI IO&operator>>(T&x){R(x);return S;}TP<TN T>FI IO&operator<<(C T&x){W(x);return S;}bool good(){return ok;}IO(){}~IO(){flush();}}io;
#undef TN 
#undef TP
#undef FI
#undef S
#undef C
#define REP(i,x,y)for(int i=x;i<y;i++)
#define ALL(x)x.begin(),x.end()
const int32_t INF=0x3f3f3f3f;
const int64_t INFL=0x3f3f3f3f3f3f3f3fLL;

void genSA(string s, vector<int> &sa, vector<int> &rank)
{
    int n = s.size();
    sa.resize(n + 1);
    iota(ALL(sa), 0);
    rank.assign(ALL(s));
    rank.emplace_back(-1);
    vector<int> tmp(n + 1);
    for (int k = 1; k <= n; k <<= 1) {
        auto cmpSA = [&](const int &i, const int &j) {
            return rank[i] != rank[j] ? rank[i] < rank[j]
                                      : ((i + k <= n ? rank[i + k] : -1)
                                          < (j + k <= n ? rank[j + k] : -1));
            ;
        };
        sort(ALL(sa), cmpSA);
        tmp[sa[0]] = 0;
        for (int i = 0; i < n; i++) {
            tmp[sa[i + 1]] = tmp[sa[i]] + (cmpSA(sa[i], sa[i + 1]) ? 1 : 0);
        }
        rank = tmp;
    }
}
void genLCP(string s, const vector<int> &sa, vector<int> &lcp)
{
    int n = s.size();
    vector<int> rank(n + 1);
    for (int i = 0; i <= n; i++) rank[sa[i]] = i;

    int h = 0;
    lcp.resize(n + 1);
    lcp[0] = 0;
    for (int i = 0; i < n; i++) {
        int j = sa[rank[i] - 1];
        h > 0 && h--;
        for (; j + h < n && i + h < n; h++) {
            if (s[j + h] != s[i + h]) break;
        }
        lcp[rank[i] - 1] = h;
    }
}
int main()
{
    string s;
    io >> s;
    vector<int> sa, rank, lcp;
    genSA(s, sa, rank);
    genLCP(s, sa, lcp);
    int n = s.size();
    for (int i = 0; i < n; i++) { io.WS(sa[i + 1] + 1); }
    io.WL();
    for (int i = 0; i < n - 1; i++) { io.WS(lcp[i + 1]); }
    io.WL();
    return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #137.83 us44 KBAcceptedScore: 0

Subtask #1 Testcase #237.9 us44 KBAcceptedScore: 100

Subtask #1 Testcase #336.46 us44 KBAcceptedScore: 0

Subtask #1 Testcase #439.83 us44 KBAcceptedScore: 0

Subtask #1 Testcase #537.8 us44 KBAcceptedScore: 0

Subtask #1 Testcase #639.52 us44 KBAcceptedScore: 0

Subtask #1 Testcase #757.653 ms2 MB + 904 KBAcceptedScore: 0

Subtask #1 Testcase #871.561 ms3 MB + 68 KBAcceptedScore: 0

Subtask #1 Testcase #960.463 ms2 MB + 960 KBAcceptedScore: 0

Subtask #1 Testcase #1035.121 ms2 MB + 52 KBAcceptedScore: 0

Subtask #1 Testcase #1135.321 ms2 MB + 92 KBAcceptedScore: 0

Subtask #1 Testcase #1263.176 ms3 MB + 260 KBAcceptedScore: 0

Subtask #1 Testcase #1360.783 ms3 MB + 232 KBAcceptedScore: 0

Subtask #1 Testcase #1459.644 ms2 MB + 988 KBAcceptedScore: 0

Subtask #1 Testcase #1560.92 ms2 MB + 1004 KBAcceptedScore: 0

Subtask #1 Testcase #1662.358 ms3 MB + 264 KBAcceptedScore: 0

Subtask #1 Testcase #1764.131 ms3 MB + 264 KBAcceptedScore: 0

Subtask #1 Testcase #1863.327 ms3 MB + 264 KBAcceptedScore: 0


Judge Duck Online | 评测鸭在线
Server Time: 2026-03-20 15:29:31 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠