C++
iCrEjfuhhChXjVz
You got a dream, you gotta protect it. People can’t do something themselves, they wanna tell you you can’t do it. If you want something, go get it. Period.
爱学习
展开
-
Solution for LuoguP4246
Code原创 2022-07-21 10:34:13 · 219 阅读 · 0 评论 -
树上最长链
https://www.luogu.com.cn/problem/U182917#include <bits/stdc++.h>using namespace std;const int N = 3000010;bool vis[N];int to[N];int nxt[N];int head[N];int E;void init(){ E = 0; memset(head, -1, sizeof head);}void add_edge(int a, int原创 2021-10-06 18:55:16 · 182 阅读 · 0 评论 -
C/C++常用关键字
c语言中常见关键字:char : =>声明字符型变量或函数double :=>声明双精度变量或函数enum : =>声明枚举类型float: =>声明浮点型变量或函数int: =>声明整型变量或函数long : =>声明长整型变量或函数short : =>声明短整型变量或函数signed: =>声明有符号类型变量或函数struct: =>声明结构体变量或函数union: =>声明联合数据类型unsigne原创 2021-09-18 12:01:21 · 258 阅读 · 0 评论 -
【OI算法课】1哈罗,大家好,认识一下这几个新同学吧
小茗:爱学习但是比较反感长代码的小同学小Z:忠实的游戏爱好者,喜欢自己编游戏玩小X:喜欢思考,班里的佼佼者小喵:小X的宠物猫,喜欢跟小X闹着玩,但小X经常因为他打扰自己的思路,出现一些奇怪的错误。小哲校长:自称校长,班里最调皮的同学,但是成绩优异,智商超过150...原创 2021-09-10 10:43:04 · 93 阅读 · 0 评论 -
【OI】归并排序算法
归并排序#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N = 1000010;int a[N];int b[N];void copy(int * a, int * b, int lp, int rp){ for(int i = lp; i <= rp; i ++) a[i] = b[i];}void原创 2021-09-09 10:56:56 · 101 阅读 · 0 评论 -
空格和ends的区别
空格和ends的区别实际上, ends是’\0’符号原创 2021-09-07 08:40:51 · 241 阅读 · 0 评论 -
5个最牛的C++恶搞
各种奇葩的C++语言#include <iostream>#include <cstdio>#include <cstdlib>using namespace std;int f();int main(){ printf("bid.cpp!"); f(); return 0;}int f(){ return main();}2:#include <iostream>#include <cstdio>原创 2021-09-06 17:01:04 · 5716 阅读 · 3 评论 -
hello,world! java语言
hello, world!(java)Hello World 实例让我们使用 Spring 框架开始实际的编程。在你开始使用 Spring 框架编写第一个例子之前,你必须确保已经正确地设置了 Spring 环境,正如在 Spring——环境设置 教程中如所说的。假设你有了解一些有关 Eclipse IDE 工作的知识。因此,让我们继续编写一个简单的 Spring 应用程序,它将根据在 Spring Beans 配置文件中配置的信息输出 “Hello World!” 或其他信息。第 1 步:创建 Ja原创 2021-09-06 16:51:05 · 93 阅读 · 0 评论 -
终极孪生素数
// 大家好——我现在正在测试第1000000000000000000000000000000000000个孪生素数,看看是多少哈哈#include <iostream>#include <cstdio>#include <cstdlib>using namespace std;typedef __int128 il;int list[] = {2, 3, 5, 7, 19, 37, 53, 89, 113, 9973, 1000000007, 1000原创 2021-09-06 16:37:42 · 252 阅读 · 0 评论 -
01背包问题
01背包问题滚动数组优化#include <bits/stdc++.h>using namespace std;int a[100010];int b[100010];int dp[100010];int main(){ int m, n; cin >> m >> n; for(int i = 1; i <= n; i ++) { scanf("%d%d", &a[i], &b[i原创 2021-09-04 15:24:43 · 80 阅读 · 0 评论 -
猜数字小游戏升级
#include <iostream>#include <ctime>#include <unistd.h>#include <cstdio>#include <cstdlib>using namespace std;inline int read(){ int s=0,w=1; char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch原创 2021-09-01 17:36:53 · 99 阅读 · 0 评论 -
头文件的格式
头文件的格式#ifndef ASDFGH#define ASDFGHyujv......#endif原创 2021-08-07 15:25:44 · 171 阅读 · 0 评论 -
LCA
33.2 求LCA例题【33.4】 LCA问题给你一棵树,有n个节点1≤n≤1051\le n\le 10^51≤n≤105,然后有k个询问1≤k≤1051 \le k \le 10^51≤k≤105,每个询问有两个点a和b,求a和b的LCA。LCA就是最近公共祖先问题。求LCA的办法有很多:\qquad暴力的办法:首先设A是深度大的点,B是深度小的点,然后A一步一步的往上跳,一直到和B跳到同一个深度,然后A和B一起一步一步的跳,一直到A=B,那么这个点就是答案。\qquad但是O(n×k原创 2021-08-07 10:04:50 · 68 阅读 · 0 评论 -
CF888E - 最大余数[适合难度:普及+,提高-],知识点:折半枚举,二分查找
CF888E - 最大余数[适合难度:普及+,提高-],知识点:折半枚举,二分查找子集就是某一个组合暴力枚举所有组合的复杂度为2352^{35}235,不可接受所以用上了折半枚举。。。。。。折半枚举 + 二分查找,时间复杂度不超过2182^{18}218 。折半枚举:吧所有的数字拆成两半,暴力前一半数的所有组合,最多为 2182^{18}218,保存到 数组里进行排序。(预处理)暴力枚举另外一半的所有组合。对于某一个组合的数,到 数组里面去配对,去二分查找一个数,跟X加起来 MODMMOD原创 2021-07-28 10:50:47 · 106 阅读 · 0 评论 -
Atcoder - 4142 尺取法,位运算(适合难度:普及+/提高-)
Atcoder - 4142 尺取法,位运算(适合难度:普及+/提高-)异或不懂的参考位运算if a ^ b ^ c < a + b + c说明a ^ b <= a + b\qquad枚举一个左端点,然后利用双指针计俩来滑动右端点来找到最大的满足条件的右端点。解法和UVA1121是很相似的,都是尺取法。#include <iostream>#include <cstdio>using namespace std;const int N = 100原创 2021-07-28 10:01:51 · 216 阅读 · 0 评论 -
UVA1121, 尺取法,二分,暴力
UVA1121, 尺取法,二分,暴力UVA−1121UVA - 1121UVA−1121给定一个长度为N的整数序列以及整数S。求最短的连续子序列的长度使得这个连续子序列的和大于等于S。如果找不着,输出0。暴力暴力枚举所有的区间,求和,判断,O(n4)O(n^4)O(n4),哈哈二分先预处理前缀和sumisum_isumi表示前iii个数的和,然后去枚举区间的左端点,此时发现愈往右和越大,所以满足单调性,可以用二分找到满足条件的最小的右端点,更新答案,时间复杂度 O(nlog原创 2021-07-28 09:49:18 · 144 阅读 · 0 评论 -
poj1753,暴力,二进制优化
poj1753Language:DefaultFlip GameTime Limit: 1000MSMemory Limit: 65536KTotal Submissions: 65784Accepted: 26965DescriptionFlip game is played on a rectangular 4x4 field with two-sided pieces placed on each of its 16 squares. One side of each piece is white原创 2021-07-28 08:56:35 · 110 阅读 · 0 评论 -
推荐题目
推荐题目ybt上的图论,1419~1421如果没有教师资格证加入学生用户名rmsd电话13583159422名字 任敏原创 2021-07-19 10:29:57 · 88 阅读 · 0 评论 -
hackertyper
struct group_info init_groups = { .usage = ATOMIC_INIT(2) };struct group_info *groups_alloc(int gidsetsize){struct group_info *group_info;int nblocks;int i;nblocks = (gidsetsize + NGROUPS_PER_BLOCK - 1) / NGROUPS_PER_BLOCK;/* Make sure we alway原创 2021-07-12 10:27:22 · 1082 阅读 · 0 评论 -
五子棋小游戏
#include <stdio.h>#include <stdlib.h>#include <unistd.h>int n;bool isokw(char mp[21][21]){ for(int i=1;i<=19;i++){ for(int j=1;j<=19;j++){ if(mp[i][j]=='W'){ int cnt=1; for(int c=j+1;c<=19;c++){ if(mp[i][c]原创 2021-07-12 09:02:36 · 78 阅读 · 0 评论 -
qwqwq
求一元二次方程式ax2+bx+c=0的根。a,b,c的值在运行时由键盘输入,它们的值满足b2-4ac≥0。根据求x1,x2的算法。它可以编写出以下C++程序:#include <iostream>#include <cmath> //由于程序要用到数学函数sqrt,故应包含头文件cmathusing namespace std;int main( ){ float a,b,c,x1,x2; cin>>a>>b>>c; .原创 2021-07-10 09:20:44 · 158 阅读 · 0 评论 -
STL
STL- 1(STL是什么)STL - 模板库 免费编辑 修改义项名STL是Standard Template Library的简称,中文名标准模板库,惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。从根本上说,STL是一些"容器"的集合,这些"容器"有list,vector,set,map等,STL也是算法和其他一些组件的集合。这里的"容器"和算法的集合指的是世界上很多聪明人很多年的杰作。STL原创 2021-07-09 09:51:29 · 141 阅读 · 0 评论 -
信息奥赛题解目录T(部分答案)
信息奥赛题解目录T(部分答案)1.3.4 图论T1341 - 一笔画问题#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <cstdio>using namespace std;bool g[1010][1010];int c[1000010];int n, m;int pos = 0;int a[1000010];void dfs(int x){ for(int i = 1; i原创 2021-07-09 09:37:58 · 130 阅读 · 0 评论 -
floyd
void floyd(){ memset(d, 0x3f, sizeof d); for(int i =1;i<=n;i ++) { d[i][i] =0; } for(int k = 1; k <= n ; k ++) { for(int i = 1; i <= n; i ++) { for(int j = 1; j <= n; j ++) { if(d[i] [k]+ d[k][j] < d[i][j]) {原创 2021-07-07 09:46:01 · 56 阅读 · 0 评论 -
CF 2B
#include <iostream>#include <cstdio>#include <string>using namespace std;int dp[1010][1010][2];int mp[1010][1010];int main(){ int n, x; scanf("%d", &n); int pos = -1; for(int i = 1; i <= n; i ++) {原创 2021-07-02 09:02:55 · 99 阅读 · 0 评论 -
dijkstra算法
运算符名字+加法-减法*乘法/除法^亦或&&而且||或者~取反!非? :三目运算符>大于<小鱼>=大于等于<=小于等于==等于!=不等于=赋值&位与|位或>>右移<<左移., ->, ::间接访问元素,逗号++, –递增递减运算...原创 2021-06-20 11:44:58 · 106 阅读 · 0 评论 -
Floyed算法练习题
**例题:**顶点个数n<=100, m条边, 两点之间的距离w<=1000,求给定两点p、 q之间的最短距离。 输入数据, 第一行4个整数n m p q, 接下来有m行, 每行三个数依次描述了一条边的起点、 终点和权值。#include <iostream>#include <cstring>#include <cstdio> // 孙艺轩是周雨涵的同学兼好朋友(我该死) // 周雨涵经常对任老师说:妈妈,老师有批评我了 // 所以周雨涵情商低原创 2021-06-20 11:19:25 · 159 阅读 · 0 评论 -
Floyd算法
Floyd算法求任意一对顶点之间的最短路径。 时间复杂度为O(n3)O(n^3)O(n3), 适用于负边权的情况。原理: 如果我们已经知道了图中任意两点间只允许以编号≥\ge≥k-1的点作为中转时的最短路, 能不能以此推出任意两点间只允许以编号<=k的点作为中转时的最短路呢?if (d[i][k]+d[k][j]<d[i][j]) d[i][j]=d[i][k]算法实现:for (int k=1;k<=n;k++)for (int i=1;i<=n;i++)for原创 2021-06-20 10:56:02 · 79 阅读 · 0 评论 -
ybt1351(拓扑排序)
#include<iostream>#include<cstdio>using namespace std;int a[101][101],c[101],r[101],ans[101];int i,j,tot,temp,num,n,m;int main() { cin >> n; for (i = 1; i <= n; i++) { do { cin >> j; if (j !=0 ) { c[i]++; a原创 2021-06-20 09:51:47 · 72 阅读 · 0 评论 -
又是一个疯狂的程序
// 这个程序路径:D:\fc.cpp#include <iostream>#include <cstdio>#include <cstdlib>using namespace std;int main(){ int x; scanf("%d", &x); while(x --) { system("start D:\\fc.cpp"); system("D:\\fc.cpp start原创 2021-06-19 18:59:40 · 81 阅读 · 0 评论 -
欧拉回路 - 杂录
杂谈笔记欧拉回路18世纪初普鲁士的哥尼斯堡,有一条河穿过,河上有两个小岛,有七座桥把两个岛与河岸联系起来(如概述图)。有个人提出一个问题:一个步行者怎样才能不重复、不遗漏地一次走完七座桥,最后回到出发点。后来大数学家欧拉把它转化成一个几何问题——一笔画问题。他不仅解决了此问题,且给出了连通图可以一笔画的充要条件是:奇点的数目不是0个就是2个(连到一点的数目如是奇数条,就称为奇点,如果是偶数条就称为偶点,要想一笔画成,必须中间点均是偶点,也就是有来路必有另一条去路,奇点只可能在两端,因此任何图能一笔画成,原创 2021-06-19 18:55:16 · 151 阅读 · 0 评论 -
哈密尔顿回路 - 杂录
哈密尔顿回路1859年,爱尔兰数学家哈密尔顿(Hamilton) 提出了一个周游世界的游戏在正十二面体上依次标记伦敦、巴黎、莫斯科等世界著名大城市, 正十二面体的棱表示连接这些城市的路线.试问能否在图中做一次旅行, 从顶点到顶点, 沿着边行走, 经过每个城市一次之后再回到出发点.转载于 (https://www.jianshu.com/p/57bd58cf8115)哈密尔顿回路是指不重复走过所有点,最后回到起点的路。void dfs(int start, int last, int i, i原创 2021-06-19 18:54:16 · 375 阅读 · 0 评论 -
求添加几个字符能让字符串回文
求添加几个字符能让字符串变成回文#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int a[1000100];char b[1000100];int dp[1010][1010];int main(){ int t; cin >> t; while(t --) { stri原创 2021-06-17 13:18:26 · 175 阅读 · 0 评论 -
stack -STL
stack:stack <typename> st; // 定义一个栈void st.push(x); // 往栈的尾部插入xvoid st.pop(); // 弹出栈尾元素typename st.top(); // 返回栈尾元素bool st.empty(); // 返回栈是否为空size_t st.size(); // 返回栈的元素个数...原创 2021-06-13 11:54:32 · 93 阅读 · 0 评论 -
ybt1329:【例8.2】细胞
#include<iostream>#include<cstdio>#include<map>#include<queue>using namespace std;bool vis[1010][1010];char a[1010][1010];int dx[]={1,0,-1,0};int dy[]={0,1,0,-1};int n,m;struct node { int x, y; } ;void bfs(int x,int y){原创 2021-06-13 11:44:50 · 311 阅读 · 0 评论 -
油田(zoj 1709, poj 1562)
油田(zoj 1709, poj 1562)【题目描述】GeoSurvComp 地质探测公司负责探测地下油田。 每次 GeoSurvComp 公司都是在一块长方形的土地上来探测油田。 在探测时, 他们把这块土地用网格分成若干个小方块, 然后逐个分析每块土地, 用探测设备探测地下是否有油田。 方块土地底下有油田则称为 pocket, 如果两个pocket相邻, 则认为是同一块油田, 油田可能覆盖多个 pocket。你的工作是计算长方形的土地上有多少个不同的油田。【输入描述】输入文件中包含多个原创 2021-06-13 11:32:38 · 190 阅读 · 0 评论 -
公司数量【ybt书上】
公司数量[ybt书上]【问题描述】在某个城市里住着n个人, 现在给定关于 n个人的m条信息(即某2个人认识) , 假设所有认识(直接或间接认识都算认识) 的人一定属于同一个公司。若是某两人不在给出的信息里, 那么他们不认识, 属于两个不同的公司。已知人的编号从1至n。请计算该城市最多有多少公司。【输入】第一行: n(<=10000,人数) ,第二行: m(<=100000, 信息)以下若干行: 每行两个数: i 和j, 中间一个空格隔开, 表示i和j相互认识。【输出】原创 2021-06-13 11:09:46 · 125 阅读 · 0 评论 -
神奇的程序
#include <iostream>#include <cstdio>using namespace std;int main(){ int n, ans = 0; scanf("%d", &n); for(int i = 1; i <= n; i ++) { int x; scanf("%d", &x); ans += main() + x; } printf("%d\n", ans); return ans;}又原创 2021-06-13 10:31:25 · 73 阅读 · 0 评论 -
广度优先遍历图(邻接矩阵)
//<BFS>⌘#include<cstdio>#include<iostream>using namespace std;const int maxn=1010;int q[maxn];int a[maxn][maxn];int vis[maxn];int n,m;//<void>⌘void bfs(int u){ int head=0,tail=1;//head是队头元素,tail是队尾元素的后一个 q[0]=u; vis[u]原创 2021-06-13 10:02:41 · 168 阅读 · 0 评论 -
图的遍历-深度优先搜索+数组模拟邻接表
#include <iostream>#include <cstring>#include <cstdio>using namespace std;int n, m;int head[100010];int to[100010];int nxt[100010];bool vis[100010];int tmp = 0;void addEdge(int x, int y){ to[tmp] = y; nxt[tmp] = head[x]; h原创 2021-06-13 10:01:58 · 97 阅读 · 0 评论