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

2022tysc1016

UID: 9135, 注册于 2022-6-20 17:20:42, 最后登录于 2025-6-4 12:48:18, 最后活动于 2025-6-7 16:59:11.

解决了 498 道题目,RP: 261.27 (No. 119)

♀
  • 个人简介

    #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

779
已递交
498
已通过
0
题解被赞

状态

  • 评测队列
  • 服务状态

开发

  • 开源
  • API

支持

  • 帮助
  • QQ 群
  1. 关于
  2. 联系我们
  3. 隐私
  4. 服务条款
  5. 版权申诉
  6. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  7. 兼容模式
  8. 主题
    1. 亮色
    2. 暗色
  1. 粤ICP备2024335011号
  2. Worker 0, 78ms
  3. Powered by Hydro v4.19.1 Community
关闭

登录

使用您的 oiClass 通用账户

忘记密码或者用户名?