1. 首页
  2. 公告
  1. 登录
  2. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文

2022tysc1016

UID: 9135, 注册于 2022-6-20 17:20:42, 最后登录于 2025-9-1 12:49:02, 最后活动于 2025-8-29 20:43:37.

解决了 508 道题目,RP: 256.98 (No. 139)

♀
  • 个人简介

    #include <bits/stdc++.h>
    using namespace std;
    using ll = long long;
    using ull = unsigned long long;
    const int N = 114514;
    #define inl inline __attribute__((always_inline,hot))
    namespace ioops {
    //    #define pc(x) putchar(x)
        const int S=1145141;char buf[S];inl char gc(){static char*p1,*p2;return
        p1==p2?p2=(p1=buf)+fread(buf,1,S,stdin),(p1==p2?-1:*p1++):*p1++;}
        // inl void pc(char c){_ibuf[0]=c;fwrite(_ibuf,1,1,stdout);}
        inl string rds(ll s=-1){string r;char c;do c=gc();while(!(c^32&&c^10)&&~c);if(~s){
        while(s--&&~c){r+=c;c=gc();}}else while(c^32&&c^10&&~c){r+=c;c=gc();}return r;}
    //    inl ll rdn(){char C=gc();ll X=0,F=1;while(!isdigit(C)){if(!(C^'-'))F*=-1;
    //    C=gc();}while(isdigit(C)){X=(X<<1)+(X<<3)+(C^48),C=gc();}return F*X;}
    //    void put(string s){fwrite(s.c_str(),s.size(),1,stdout);}
    };
    using namespace ioops;
    
    int main()
    {
        freopen("text.in", "r", stdin);
    //    freopen("text.out", "r", stdin);
    //    int xx = 0;
    //    string a, b;
    //    while (++xx <= 999998) {
    //        a = rds();
    //        if (a == "#") break;
    //        b = rds();
    //        cout << a << ' ' << b << endl; 
    //    }
        // cout << "1\n2\n3\n4\n5\n6\n7\n8";
        cout << fread(buf,1,S,stdin);
    }
    
    class KMP
    {
    
    private:
        const string _s;
        const char* _cs;
        size_t _n;
        size_t* _nxt;
        const bool _prd;
        const bool _c;
    
    public:
        static const size_t npos = -1;
    
        void initnxt()
        {
            for (size_t i = 2, j = 0; i <= _n; i++) {
                if (_c) {
                    while (j && _cs[i - 1] != _cs[j]) j = _nxt[j];
                    if (_cs[i - 1] == _cs[j]) j++;
                } else {
                    while (j && _s[i - 1] != _s[j]) j = _nxt[j];
                    if (_s[i - 1] == _s[j]) j++;
                }
                _nxt[i] = j;
            }
        }
    
        KMP(const string& s)
        : _s(s), _cs(), _n(s.size()), _nxt(new size_t[_n + 2]), _prd(0), _c(0)
        { initnxt(); }
    
        KMP(const char* s, size_t n)
        : _s(), _cs(s), _n(n), _nxt(new size_t[n + 2]), _prd(0), _c(1)
        { initnxt(); }
    
        KMP(const string& s, size_t* space)
        : _s(s), _cs(), _n(s.size()), _nxt(space), _prd(1), _c(0)
        { initnxt(); }
    
        KMP(const char* s, size_t n, size_t* space)
        : _s(), _cs(s), _n(n), _nxt(space), _prd(1), _c(1)
        { initnxt(); }
    
        ~KMP() { if (!_prd) delete[] _nxt; }
    
        size_t find(const string& s, size_t st=0, size_t end=npos) const
        {
            if (end == npos) end = s.size() - 1;
            for (size_t i = st, j = 0; i <= end; i++) {
                if (_c) {
                    while (j && s[i] != _cs[j]) j = _nxt[j];
                    if (s[i] == _cs[j]) j++;
                } else {
                    while (j && s[i] != _s[j]) j = _nxt[j];
                    if (s[i] == _s[j]) j++;
                }
                if (j == _n) return i;
            }
            return npos;
        }
    
        size_t find(const char* s, size_t st=0, size_t end=npos) const
        {
            for (size_t i = st, j = 0; i <= end; i++) {
                if (end == npos && !s[i]) break;
                if (_c) {
                    while (j && s[i] != _cs[j]) j = _nxt[j];
                    if (s[i] == _cs[j]) j++;
                } else {
                    while (j && s[i] != _s[j]) j = _nxt[j];
                    if (s[i] == _s[j]) j++;
                }
                if (j == _n) return i;
            }
            return npos;
        }
    
        size_t count(const string& s, size_t st=0, size_t end=npos, bool cov=0) const
        {
            if (end == npos) end = s.size() - 1;
            size_t res = 0;
            for (size_t i = st, j = 0; i <= end; i++) {
                if (_c) {
                    while (j && s[i] != _cs[j]) j = _nxt[j];
                    if (s[i] == _cs[j]) j++;
                } else {
                    while (j && s[i] != _s[j]) j = _nxt[j];
                    if (s[i] == _s[j]) j++;
                }
                if (j == _n) res++, j = cov ? _nxt[j] : 0;
            }
            return res;
        }
    
        size_t count(const char* s, size_t st=0, size_t end=npos, bool cov=0) const
        {
            size_t res = 0;
            for (size_t i = st, j = 0; i <= end; i++) {
                if (end == npos && !s[i]) break;
                if (_c) {
                    while (j && s[i] != _cs[j]) j = _nxt[j];
                    if (s[i] == _cs[j]) j++;
                } else {
                    while (j && s[i] != _s[j]) j = _nxt[j];
                    if (s[i] == _s[j]) j++;
                }
                if (j == _n) res++, j = cov ? _nxt[j] : 0;
            }
            return res;
        }
    
        string delfront(const string& s, size_t st=0, 
        size_t end=npos, size_t cnt=-1) const
        {
            if (end == npos) end = s.size() - 1;
            string res;
            size_t l = 0;
            for (size_t i = st, j = 0; i <= end; i++) {
                while (j && s[i] != _s[j]) j = _nxt[j];
                if (s[i] == _s[j]) j++;
                if (j == _n) {
                    for (size_t k = l; k <= i - j; k++) res += s[k];
                    l = i + 1;
                    if (!--cnt) break;
                }
            }
            for (size_t i = l; i <= end; i++) res += s[i];
            return res;
        }
    
        string delfront(const char* s, size_t st=0, 
        size_t end=npos, size_t cnt=-1) const
        {
            string res;
            size_t l = 0;
            for (size_t i = st, j = 0; i <= end; i++) {
                if (end == npos && !s[i]) break;
                while (j && s[i] != _s[j]) j = _nxt[j];
                if (s[i] == _s[j]) j++;
                if (j == _n) {
                    for (size_t k = l; k <= i - j; k++) res += s[k];
                    l = i + 1;
                    if (!--cnt) break;
                }
            }
            for (size_t i = l; i <= end; i++) res += s[i];
            return res;
        }
    
        string delrept(const string& s, size_t st=0, size_t end=npos,
        size_t* sp1=nullptr, size_t* sp2=nullptr) const
        {
            if (end == npos) end = s.size() - 1;
            string res;
            size_t cnt = 0;
            if (sp1 == nullptr) sp1 = new size_t[s.size() + 2];
            if (sp2 == nullptr) sp2 = new size_t[s.size() + 2];
            for (size_t i = st, j = 0; i <= end; i++) {
                while (j && s[i] != _s[j]) j = _nxt[j];
                if (s[i] == _s[j]) j++;
                sp1[i] = j, sp2[++cnt] = i;
                if (j == _n) cnt -= _n, j = sp1[sp2[cnt]];
            }
            for (size_t i = 1; i <= cnt; i++) res += s[sp2[i]];
            return res;
        }
    
        // string delrept(const char* s, size_t st=0, size_t end=npos,
        // size_t* sp1=nullptr, size_t* sp2=nullptr) const
        // {
        //     string res;
        //     size_t cnt = 0;
        //     if (sp1 == nullptr) sp1 = new size_t[s.size() + 2];
        //     if (sp2 == nullptr) sp2 = new size_t[s.size() + 2];
        //     for (size_t i = st, j = 0; i <= end; i++) {
        //         if (end == npos && !s[i]) break;
        //         while (j && s[i] != _s[j]) j = _nxt[j];
        //         if (s[i] == _s[j]) j++;
        //         sp1[i] = j, sp2[++cnt] = i;
        //         if (j == _n) cnt -= _n, j = sp1[sp2[cnt]];
        //     }
        //     for (size_t i = 1; i <= cnt; i++) res += s[sp2[i]];
        //     return res;
        // }
    
    };
    
    
    // size_t a[N];
    
    #include <bits/stdc++.h>
    using namespace std;
    using ll = long long;
    using ull = unsigned long long;
    const int N = 1145141;
    #define inl inline __attribute__((always_inline,hot))
    namespace ioops {
        #define pc(x) putchar(x)
        #define open(x) do(void)!freopen(x".in","r",stdin),(void)!freopen(x".out","w",stdout);while(0)
        #define fcio() do{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);}while(0)
        #define isnum(t,x) typename enable_if<(!x)^(is_arithmetic<t>::value&&\
        !is_same<t,char>::value||is_same<t,ll>::value),bool>::type=true
        const int S=1145141;using ll=long long;
        char b[S],ob[S];inl void pc(char c){static char*p;
        if(p-b==S-1){fwrite(b,1,S,stdout);p=b;}*p++=c;}
        inl char gc(){static char*p,*q;if(p==q){p=b;q=b+
        fread(b,1,S,stdin);if(p==q)return-1;}return*p++;}
    //    return p==q?q=(p=b)+fread(b,1,S,stdin),(p==q?-1:*p++):*p++;}
        inl string rds(ll s=-1){string r;char c;do c=gc();while(!(c^32&&c^10)&&c!=-1);if(s!=-1){
        while(s--&&c!=-1){r+=c;c=gc();}}else while(c^32&&c^10&&c^-1){r+=c;c=gc();}return r;}
        ll rdn(){char C=gc();ll X=0,F=1;while(!isdigit(C)){if(!(C^'-'))F*=-1;
        C=gc();}while(isdigit(C)){X=(X<<1)+(X<<3)+(C^48),C=gc();}return F*X;}
        template<class T,isnum(T,1)>void put(T x){if(x<0){pc('-');x=-x;};if(x>9)put(x/10);pc(x%10^48);}
        template<class T,isnum(T,0)>void put(T x){cout<<x;}template<class T>void pt(T x){put(x);pc('\n');}
        void rd(){}template<class T,isnum(T,1),class...A>void rd(T&x,A&...a){x=rdn();rd(a...);}
        template<class T,isnum(T,0),class...A>void rd(T&x,A&...a){cin>>x;rd(a...);}
        void pt(){pc('\n');}template<class T,class...A>void pt(T x,A...a){put(x);pc(' ');pt(a...);}
    };
    using namespace ioops;
    
    string s[N];
    
    int main()
    {
    ////    fcio();
    //    freopen("test.in", "r", stdin);
    //    for (int i = 1; i <= 1000000; i++) {
    ////        cin >> s[i];
    //        s[i] = rds();
    //    }
    //    cout << s[1000000];
        put(rdn());
    }
    
  • 最近活动

    • 验题 IOI
    • 第五届oiClass信息学夏令营day21作业-二维数组和二维字符数组 作业
    • 第五届oiClass信息学夏令营day17作业-数组标记的应用 作业
    • 2024春季班class8-多维&差值DP 课后作业 作业
    • 【oiClass公益赛】2024CSP-J模拟赛#18「WZA Round #2」 OI
    • 2024春季班class8-多维&差值DP 随堂练习 作业
    • 2024春季班class7-倍增-ST算法 课后作业 作业
    • 2024春季班class7-倍增-ST算法 随堂练习 作业
    • 2024春季班class6-区间型动态规划2-区间合并 课后作业 作业
    • 2024春季班class6-区间型动态规划2-区间合并 随堂练习 作业
    • 2024春季班class5-区间分割型动态规划 课后作业 作业
    • 2024春季班class5-区间分割型动态规划 随堂练习 作业
    • 【oiClass公益赛】2024CSP-J模拟赛#08 || For Riddles, For Wonders OI
    • 2024春季班class4-背包型动态规划2课后作业 作业
    • 2024春季班class4-背包型动态规划2随堂练习 作业
    • 【oiClass公益赛】2024CSP-J模拟赛#20 OI
    • 2024春季班class3-背包型动态规划1课后作业 作业
    • 2024春季班class3-背包型动态规划1随堂练习 作业
    • 【oiClass公益赛】2024CSP-J模拟赛#15 OI
    • 2024春季班class2-二维动规&最长公共子序列课后作业 作业
    • 2024春季班class2-二维动规&最长公共子序列随堂练习 作业
    • 【oiClass公益赛】2024CSP-J模拟赛#06 || LSZOI #01 OI
    • 【oiClass公益赛】2024CSP-J模拟赛#17 OI
    • 2024春季班class1-一维动规&最长不下降子序列课后作业 作业
    • 2024春季班class1-一维动规&最长不下降子序列随堂练习 作业
    • 【oiClass 公益赛】2024 CSP-J 模拟赛 #13 & XYZ Round 1 OI
    • 【oiClass公益赛】2024CSP-J模拟赛#10 OI
    • 【oiClass公益赛】2024CSP-J模拟赛#19 OI
    • 【oiClass公益赛】2024CSP-J模拟赛#14 OI
    • 【oiClass公益赛】2024CSP-J模拟赛#09 OI
    • 【oiClass公益赛】2024CSP-J模拟赛#07 OI
    • 【oiClass公益赛】2024CSP-J模拟赛#16 OI
    • 【oiClass公益赛】2024 CSP-J 模拟赛 #04 OI
    • 【oiClass公益赛】2024CSP-J模拟赛#03 OI
    • 【oiClass公益赛】2024CSP-J模拟赛 #05 OI
    • 2023-2024学年冬令营Class6-双指针 作业
    • 2023-2024学年冬令营Class4-二分搜索2 作业
    • 2023-2024学年冬令营Class3-二分搜索1 作业
    • 2023-2024学年冬令营Class1-广搜2 作业
    • 2023-2024学年冬令营Class1-广搜1 作业
    • 张晋嘉、倪穗霆杂题 作业
    • 2023学年秋季班_模拟测试11 OI
    • 2023学年秋季班_模拟测试10 OI
    • 2023学年秋季班_模拟测试09 OI
    • 2023学年秋季班_模拟测试08 OI
    • 2023学年秋季班_模拟测试07 OI
    • 2023学年秋季班_模拟测试06 OI
    • 2023学年秋季班_模拟测试05 OI
    • 2023学年秋季班_模拟测试04 OI
    • 第五届oiClass信息学夏令营day22作业-结构体和函数 作业
    • 2023新初一字符串小测 IOI
    • 2023学年秋季班_模拟测试02 OI
    • 2023年秋季营lesson2作业-字符数组&字符串 作业
    • 2023学年秋季班_模拟测试01 OI
    • 2023年秋季营lesson1作业-二维数组 作业
    • 新初一暑期培训测试选拔 OI
    • 新初一夏令营day12作业-一维数组3 作业
    • 新初一夏令营day11作业-一维数组2 作业
    • 新初一夏令营day10作业-一维数组1 作业
    • 新初一夏令营day9作业-多重循环 作业
    • 新初一夏令营day8作业-while语句2 作业
    • 新初一夏令营day7作业-while语句1 作业
    • 新初一夏令营第一周模拟测试 OI
    • 新初一夏令营day6作业-for语句3 作业
    • 新初一夏令营day5作业-for语句2 作业
    • 新初一夏令营day4作业-for语句1 作业
    • 新初一夏令营day3作业-if语句 作业
    • 新初一夏令营day2作业-表达式 作业
    • 新初一夏令营day1作业-C++程序结构 作业
    • 第五届oiClass信息学夏令营day6作业-for语句3 作业
    • 夏令营day1作业-C++程序结构 作业
    • TYSC秋季营综合练习5 ACM/ICPC
    • TYSC秋季营综合练习4 ACM/ICPC
    • TYSC秋季营结营测试1 作业
    • TYSC秋季营结营测试2 ACM/ICPC
    • TYSC秋季营结营测试1 ACM/ICPC
    • TYSC秋季营综合练习3 ACM/ICPC
    • TYSC秋季营综合练习2 ACM/ICPC
    • TYSC秋季营综合练习1 ACM/ICPC
    • TYSC深搜广搜练习 IOI
    • 2022TYSC秋季班作业11 作业
    • 2022TYSC秋季班作业10 作业
    • 2022TYSC秋季班作业9 作业
    • 2022TYSC秋季班作业8 作业
    • 2022TYSC秋季班作业7 作业
    • 2022TYSC秋季班作业6 作业
    • 2022TYSC秋季班作业5 作业
    • 2022TYSC秋季班作业4 作业
    • CSPJ-国庆集训day3 IOI
    • CSPJ-国庆集训day2 OI
    • 2022TYSC秋季班作业3 作业
    • 2022TYSC秋季班作业2 作业
    • 2022TYSC秋季班作业1 作业
    • 2022TYSC线下选拔赛 IOI
    • 2022TYSC线上选拔赛 OI
    • 2022TYSC模拟测试04 OI
    • 2022TYSC模拟测试03 OI
    • 2022TYSC模拟测试02 IOI
    • 2022TYSC模拟测试01 IOI
  • Stat

  • Rating

645
已递交
508
已通过
0
题解被赞

状态

  • 评测队列
  • 服务状态

开发

  • 开源

支持

  • 帮助
  • 联系我们

关于

  • 关于
  • 隐私
  • 服务条款
  • 版权申诉
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. 兼容模式
  3. 主题
    1. 亮色
    2. 暗色
  1. 粤ICP备2024335011号
  2. Worker 0, 35ms
  3. Powered by Hydro v5.0.0-beta.8 Community
关闭

登录

使用您的 oiClass 通用账户

忘记密码或者用户名?