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

2022tysc0122

UID: 8241, 注册于 2022-6-20 17:18:15, 最后登录于 2025-5-11 17:54:32, 最后活动于 2025-5-11 21:30:49.

解决了 586 道题目,RP: 261.8 (No. 113)

♂
  • 个人简介

    你是我的第 位访客

    TYOI+=∑i=2022∞mei\Huge {\rm{TYOI+=}}\sum_{i=2022}^{\infty}{me_i} TYOI+=i=2022∑∞​mei​

    好康的

    经典永流传

    image

    聪明的 GPT

    image

    数据结构蹲坑速记表

    数据结构 最大值 最小值 memset(*, 127, *); 值 memset(*, 63, *); 值
    short 327673276732767 −32768-32768−32768 326393263932639 161911619116191
    unsigned short 655356553565535 000
    int 214748364721474836472147483647 −2147483648-2147483648−2147483648 213906214321390621432139062143 106110956710611095671061109567
    unsigned int 429496729542949672954294967295 000
    long long 922337203685477580792233720368547758079223372036854775807 −9223372036854775808-9223372036854775808−9223372036854775808 918720195043573747191872019504357374719187201950435737471 455743088879883039945574308887988303994557430888798830399
    unsigned long long 184467440737095516151844674407370955161518446744073709551615 000
    float 3.40282e383.40282e383.40282e38 −1.17549e38-1.17549e38−1.17549e38 3.39615e383.39615e383.39615e38
    double 1.79769e3081.79769e3081.79769e308 −2.22507e308-2.22507e308−2.22507e308 1.38242e3061.38242e3061.38242e306
    long double 1.18973e49321.18973e49321.18973e4932 −3.3621e4932-3.3621e4932−3.3621e4932 3.4826e48933.4826e48933.4826e4893

    我的联系方式

    微信号:CodingcowLee

    QQ 号:778217810

    邮箱:codingcow@163.com

    常用网站

    我的博客:https://lixuannan.github.io/

    NOI 大纲:NOI 大纲(PDF)

    ChatGPT 镜像:https://chat19.aichatos.xyz/

    人教教材电子版:https://jc.pep.com.cn/

    Dev-C++:https://gitee.com/royqh1979/Dev-CPP/releases/download/v6.7.5/Dev-Cpp.6.7.5.MinGW-w64.GCC.10.3.Setup.exe

    小熊猫 C++:http://royqh.net/redpandacpp/download/

    Dev-Sidecar:https://ghproxy.com/https://github.com/docmirror/dev-sidecar/releases/download/v1.7.3/DevSidecar-1.7.3.exe

    Motrix:https://motrix.app/zh-CN/

    二次元:https://www.luogu.com.cn/paste/3gnvo2jv

    FunOI:http://8.138.87.252/

    MATLAB:https://matlab.mathworks.com/

    GeoGebra:https://geogebra.org/classic

    Evolve:https://g8hh.github.io/evolve/

    软仓:https://ruancang.net/

    AdBlocker Plus:https://adblockplus.org/download

    扫雷:http://www.minesweeper.cn/

    小恐龙:https://dinoswords.gg/

    冲浪:edge://surf (仅 edge 浏览器)

    FlorrIO:https://florr.io/

    压行机:https://mivik.gitee.io/compress

    文本对比:https://csacademy.com/app/diffing_tool/

    图论编辑器: https://csacademy.com/app/graph_editor/

    Typora:https://pan.huang1111.cn/s/58W3tl (装后在安装的文件夹中加入合适的 patch 即可)

    洛谷: https://www.luogu.com.cn/user/765847#main

    恶臭数字论证器: https://lab.magiconch.com/homo/

    CF : https://codeforces.com/profile/Coding-Cow

    GitHub: https://github.com/lixuannan

    OI-Wiki: https://oi-wiki.org || https://oi.wiki || http://oi-wiki.com

    MyFreeMP3:https://tools.liumingye.cn/music/#/

    质数验证器:https://zh.numberempire.com/primenumbers.php

    搞笑

    image

    算法模板

    树状数组

    void add(int x, int v) {
    	while (x <= n) {
    		c[x] += v;
    		x += lowbit(x);
    	}
    }
    
    int query(int x) {
    	int res = 0;
    	while (x > 0) {
    		res += c[x];
    		x -= lowbit(x);
    	}
    	return res;
    }
    

    线段树(有 Lazy-Tag)

    void push_up(int node) {
    	tree[node] = tree[node << 1] + tree[(node << 1) + 1];
    }
    
    void push_down(int node, int l, int r) {
    	int mid = (l + r) >> 1;
    	tag[node << 1] += tag[node];
    	tag[(node << 1) + 1] += tag[node];
    	tree[node << 1] += (mid - l + 1) * tag[node];
    	tree[(node << 1) + 1] += (r - mid) * tag[node];
    	tag[node] = 0;
    }
    
    void build(int node, int l, int r) {
    	if (l == r) {
    		tree[node] = a[l];
    		return;
    	}
    	int mid = (l + r) >> 1;
    	build(node << 1, l, mid);
    	build((node << 1) + 1, mid + 1, r);
    	push_up(node);
    }
    
    void updateRange(int node, int l, int r, int L, int R, int x) {
    	if (L <= l && R >= r) {
    		tag[node] += x;
    		tree[node] += (r - l + 1) * x;
    		return;
    	}
    	push_down(node, l, r);
    	int mid = (l + r) >> 1;
    	if (L <= mid) {
    		updateRange(node << 1, l, mid, L, R, x);
    	}
    	if (R > mid) {
    		updateRange((node << 1) + 1, mid + 1, r, L, R, x);
    	}
    	push_up(node);
    }
    
    void updateSingle(int node, int l, int r, int id, int x) {
        if (l == r) {
            tree[node] = x;
            return;
        }
        int mid = (l + r) >> 1;
        if (id <= mid) {
            updateSingle(node << 1, l, mid, id, x);
        } else {
            updateSingle((node << 1) + 1, mid + 1, r, id, x);
        }
    	push_up(node);
    }
    
    int query(int node, int l, int r, int L, int R) {
    	if (L <= l && R >= r) {
    		return tree[node];
    	}
    	push_down(node, l, r);
    	int ans = 0, mid = (l + r) >> 1;
    	if (L <= mid) {
    		ans += query(node << 1, l, mid, L, R);
    	}
    	if (R > mid) { 
    		ans += query((node << 1) + 1, mid + 1, r, L, R);
    	}
    	return ans;
    }
    

    Tarjan 强连通分量

    void tarjan(int u) {
    	dfn[u] = low[u] = ++dfncnt;
    	st.push(u);
    	ins[u] = true;
    	for (int i = 0; i < g[u].size(); i++) {
    		int v = g[u][i];
    		if (!dfn[v]) {
    			tarjan(v);
    			low[u] = min(low[u], low[v]);
    		} else {
    			if (ins[v]) {
    				low[u] = min(low[u], dfn[v]);
    			}
    		}
    	}
    	if (dfn[u] == low[u]) {
    		int v;
    		scccnt += 1;
    		do { 
    			v = st.top();
    			st.pop();
    			scc[v] = scccnt;
    			ins[v] = false;
    		} while (u != v);
    	}
    }
    

    Tarjan 求割点

    void tarjan(int u, int fa) {
    	vis[u] = true;
    	low[u] = dfn[u] = ++dfncnt;
    	int childcnt = 0;
    	for (int i = 0; i < g[u].size(); i++) {
    		if (!vis[g[u][i]]) {
    			childcnt += 1;
    			tarjan(g[u][i], u);
    			low[u] = min(low[u], low[g[u][i]]);
    			if (fa != u && low[g[u][i]] >= dfn[u] && !ans[u]) {
    				cpcnt += 1;
    				ans[u] = true;
    			}
    		} else {
    			if (g[u][i] != fa) {
    				low[u] = min(low[u], dfn[g[u][i]]);
    			}
    		}
    	}
    	if (fa == u && childcnt >= 2 && !ans[u]) {
    		cpcnt += 1;
    		ans[u] = true;
    	}
    }
    

    缩图(强连通分量)

    for (int i = 1; i <= n; i++) {
    	for (int j = 0; j < g[i].size(); j++) {
    		if (scc[g[i][j]] != scc[i]) {
    			g2[scc[i]].push_back(scc[g[i][j]]);
    		}
    	}
    }
    

    高精度模板(可用 cin & cout)

    #include <iostream>
    #include <vector>
    #include <cstring>
    #include <cassert>
    
    #define int long long
    
    using namespace std;
    
    struct BigInteger {
     
        static const int BASE = 100000000;
        static const int WIDTH = 8;
        vector<int> s;
     
        BigInteger& clean() {
    		while(!s.back()&&s.size()>1) {
    			s.pop_back();
    		} 
    		return *this;
    	}
    	
        BigInteger(int num = 0) {
    		*this = num;
    	}
    	
        BigInteger(string s) {
    		*this = s;
    	}
    	
        BigInteger& operator = (long long num) {
            s.clear();
            do {
                s.push_back(num % BASE);
                num /= BASE;
            } while (num > 0);
            return *this;
        }
        
        BigInteger& operator = (const string& str) {
            s.clear();
            int x, len = (str.length() - 1) / WIDTH + 1;
            for (int i = 0; i < len; i++) {
                int end = str.length() - i*WIDTH;
                int start = max(0ll, end - WIDTH);
                sscanf(str.substr(start, end - start).c_str(), "%lld", &x);
                s.push_back(x);
            }
            return (*this).clean();
        }
     
        BigInteger operator + (const BigInteger& b) const {
            BigInteger c; c.s.clear();
            for (int i = 0, g = 0; ; i++) {
                if (g == 0 && i >= s.size() && i >= b.s.size()) {
                	break;
    			}
                int x = g;
                if (i < s.size()) {
                	x += s[i];
    			}
                if (i < b.s.size()) {
                	x += b.s[i];
    			}
                c.s.push_back(x % BASE);
                g = x / BASE;
            }
            return c;
        }
        
        BigInteger operator - (const BigInteger& b) const {
            assert(b <= *this);
            BigInteger c; c.s.clear();
            for (int i = 0, g = 0; ; i++) {
                if (g == 0 && i >= s.size() && i >= b.s.size()) {
                	break;
    			}
                int x = s[i] + g;
                if (i < b.s.size()) {
                	x -= b.s[i];
    			}
                if (x < 0) {
    				g = -1; x += BASE;
    			} else {
    				g = 0;
    			}
                c.s.push_back(x);
            }
            return c.clean();
        }
        
        BigInteger operator * (const BigInteger& b) const {
            int g;
            vector<int> v(s.size()+b.s.size(), 0);
            BigInteger c; c.s.clear();
            for (int i = 0; i < s.size(); i++) {
            	for (int j = 0; j < b.s.size(); j++) {
            		v[i + j] += (int) (s[i]) * b.s[j];
    			}
    		}
            for (int i = 0, g = 0; ; i++) {
                if (g == 0 && i >= v.size()) {
                	break;
    			}
                int x = v[i] + g;
                c.s.push_back(x % BASE);
                g = x / BASE;
            }
            return c.clean();
        }
        
        BigInteger operator / (const BigInteger& b) const {
            assert(b > 0);  
            BigInteger c = *this;       
            BigInteger m;               
            for (int i = s.size()-1; i >= 0; i--) {
                m = m * BASE + s[i];
                c.s[i] = bsearch(b, m);
                m -= b*c.s[i];
            }
            return c.clean();
        }
        
        BigInteger operator % (const BigInteger& b) const {
            BigInteger c = *this;
            BigInteger m;
            for (int i = s.size() - 1; i >= 0; i--) {
                m = m * BASE + s[i];
                c.s[i] = bsearch(b, m);
                m -= b * c.s[i];
            }
            return m;
        }
        
        int bsearch(const BigInteger& b, const BigInteger& m) const{
            int L = 0, R = BASE - 1, x;
            while (1) {
                x = (L + R) >> 1;
                if (b * x <= m) {
    				if (b * (x + 1) > m) {
    					return x; 
    				} else {
    					L = x;
    				}
    			} else {
    				R = x;
    			}
            }
        }
        
        BigInteger& operator += (const BigInteger& b) {
    		*this = *this + b; return *this;
    	}
    	
        BigInteger& operator -= (const BigInteger& b) {
    		*this = *this - b; return *this;
    	}
    	
        BigInteger& operator *= (const BigInteger& b) {
    		*this = *this * b; return *this;
    	}
    	
        BigInteger& operator /= (const BigInteger& b) {
    		*this = *this / b; return *this;
    	}
    	
        BigInteger& operator %= (const BigInteger& b) {
    		*this = *this % b; return *this;
    	}
    	
        bool operator < (const BigInteger& b) const {
            if (s.size() != b.s.size()) {
            	return s.size() < b.s.size();
    		}
            for (int i = s.size() - 1; i >= 0; i--){
            	if (s[i] != b.s[i]) {
                	return s[i] < b.s[i];
    			}
    		}
            return false;
        }
        
        bool operator >(const BigInteger& b) const {
    		return b < *this;
    	}
    	
        bool operator<=(const BigInteger& b) const {
    		return !(b < *this);
    	}
    	
        bool operator>=(const BigInteger& b) const {
    		return !(*this < b);
    	}
    	
        bool operator!=(const BigInteger& b) const {
    		return b < *this || *this < b;
    	}
    	
        bool operator==(const BigInteger& b) const {
    		return !(b < *this) && !(b > *this);
    	}
    };
     
    ostream& operator << (ostream& out, const BigInteger& x) {
        out << x.s.back();
        for (int i = x.s.size()-2; i >= 0; i--) {
            char buf[20];
            sprintf(buf, "%08d", x.s[i]);
            for (int j = 0; j < strlen(buf); j++) {
            	out << buf[j];
    		}
        }
        return out;
    }
     
    istream& operator >> (istream& in, BigInteger& x) {
        string s;
        if (!(in >> s)) {
        	return in;
    	}
        x = s;
        return in;
    }
    

    ExGCD

    int extendedGCD(int a, int b, int &x, int &y) {
        if (b == 0) {
            x = 1;
            y = 0;
            return a;
        }
        int x1, y1;
        int gcd = extendedGCD(b, a % b, x1, y1);
        x = y1;
        y = x1 - (a / b) * y1;
        return gcd;
    }
    int modInverse(int a, int m) {
        int x, y;
        int gcd = extendedGCD(a, m, x, y);
        if (gcd != 1) {
            std::cout << "乘法逆元不存在" << std::endl;
            return -1;
        }
        return (x % m + m) % m;
    }
    

    LaTeX\LaTeXLATE​X 对照表

    你的信息

    毁坏电脑的教程

    首先,打开 Dev-C++ ,然后创建一个文件,然后输入以下代码:

    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    
    struct node {
    	int x, y;
    } a[100009];
    
    int main() {
    	sort(a, a + 100007);
    }
    

    然后编译运行,在自动打开的文件里删除所有东西,然后保存,恭喜你,编译器废了!!!

    一张重要的思维导图

  • 最近活动

    • 【oiClass公益赛】2025CSP-J模拟赛#02 OI
    • 2024oiClass入门组周赛计划#02 IOI
    • 2024CSP加码班摸底测试(补题) 作业
    • 铁外初级组作业20240418更新 作业
    • 【oiClass公益赛】2024CSP-J模拟赛#06 || LSZOI #01 OI
    • 【oiClass 公益赛】2024 CSP-J 模拟赛 #13 & XYZ Round 1 OI
    • 【oiClass公益赛】2024CSP-J模拟赛#10 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
    • 【oiClass公益赛】2023CSPJ模拟赛#07 OI
    • 【oiClass公益赛】2023CSPJ模拟赛#06 OI
    • 【oiClass公益赛】2023CSPJ模拟赛#05 OI
    • 【oiClass公益赛】2023CSPJ模拟赛#04 OI
    • 【oiClass公益赛】2023CSPJ模拟赛#03 OI
    • 【oiClass公益赛】2023CSPJ模拟赛#01 OI
    • 开学DP测试 IOI
    • 倍增算法 作业
    • 预备班寒假集训结营赛 OI
    • 7番预——区间DP2 作业
    • 6番预——区间DP1 作业
    • 5番预——背包DP2 作业
    • 4番预——背包DP1 作业
    • 3番预——二维数组+LCS 作业
    • 2番预——LIS+二维动规 作业
    • 1番预——一维动规 作业
    • 番预——期末测试(下午场) OI
    • 番预——期末测试(上午场) OI
    • 番预——二分搜索2 作业
    • 番预——第二名有学习分享solo的锻炼赛 OI
    • 2022TYSC秋季班作业11 作业
    • 番预——二分搜索1 作业
    • 番预前三名有汉堡包吃的认真赛 OI
    • 番预——广搜加强题 作业
    • 番预——广搜基础题 作业
    • 2022TYSC秋季班作业8 作业
    • 番预——深搜加强题 作业
    • 番预——深搜基础题 作业
    • 第十一周训练题 作业
    • 2022TYSC秋季班作业7 作业
    • 番预第十周训练题 作业
    • 番预--阶段测试2(线上) OI
    • 番预前?名有糖吃的比赛 OI
    • 番禺预备班作业——队列 作业
    • 番禺预备班作业——递归+ 作业
    • 2022TYSC秋季班作业4 作业
    • 番禺预备班作业——二叉树与递归 作业
    • 番预第一名有奶茶喝的快乐赛 OI
    • 番禺预备班作业——差分前缀和 作业
    • CSPJ-国庆集训day3 IOI
    • CSPJ-国庆集训day2 OI
    • 番禺三校区第7周训练题 作业
    • 番禺预备班作业——递推 作业
    • 番禺预备班作业——排序 作业
    • 番禺预备班阶段测试1 OI
    • 番禺三校区第5周训练题 作业
    • 番禺预备班作业——栈+递归初步 作业
    • 番禺三校区第4周训练题 作业
    • 番禺预备班作业——贪心 作业
    • 番禺三校区第3周训练题 作业
    • 番禺预备班作业--模拟+枚举 作业
    • 番禺三校区开学热身赛 OI
    • Selection test 2-2 IOI
    • Selection test 2-1 IOI
    • 番禺第二期作业7 作业
    • 番禺第二期作业6 作业
    • 番禺第二期阶段测试二 IOI
    • 番禺第二期阶段测试一 OI
    • 番禺第二期作业4 作业
    • 番禺第二期作业3 作业
    • 番禺第二期作业1 作业
    • 番禺第二期作业2 作业
    • 2022预备班暑假作业三 作业
    • 2022预备班暑假作业二 作业
    • 2022预备班暑假作业一 作业
    • selection test IOI
    • 作业11 一维数组2——标记 作业
    • 第10课 一维数组 作业
    • 第9课 多重循环 作业
    • 2022-1中段测试 IOI
    • 第8课 while语句2 作业
    • 第7课 while语句1 作业
    • TYOI2022新生练习一 IOI
    • 第6节 for语句3——多数据处理 作业
    • 第5节 for语句2——枚举+筛选 作业
    • 第4节 学习C++ for循环语句 作业
    • 第3课 if语句 作业
    • 第2课 认识 C++ 表达式 作业
  • Stat

  • Rating

646
已递交
586
已通过
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, 93ms
  3. Powered by Hydro v4.19.1 Community
关闭

登录

使用您的 oiClass 通用账户

忘记密码或者用户名?