
ACM
文章平均质量分 60
各种算法学习记录和解题补题记录
Mintind
很少看消息...如果很久没回复不要打我啊啊啊
展开
-
C++运算符重载例子和笔记
C++运算符重载的例子(矩阵的基本操作)和笔记原创 2022-10-31 12:53:03 · 273 阅读 · 0 评论 -
为什么32位操作系统最大支持4GB内存
每个地址对应1Byte内存空间,这样,32位操作系统管理的最大内存空间限制为2。Byte=4 * 1024 * 1024 * 1024Byte,即4GB。因为32位操作系统的地址空间为32位,地址总数为2。转载 2023-04-01 12:13:05 · 686 阅读 · 0 评论 -
【2023牛客多校训练营10】L Grayscale Confusion
大概相当于是一个构造题,将(r, g, b)映射为函数值,满足大小关系以及最初两组(c0和c1)rgb的值相等。尤其注意的是公式得到的值是double,最后不能直接取整,要用。(因此得过一次93.3333的高分)看懂了之后自己打了一遍。原创 2023-09-18 10:55:30 · 148 阅读 · 0 评论 -
存储类型auto,static,extern,register的区别
图来自夏華的博客本文转自firefly_2002的博客变量和函数的属性包括数据类型和数据的存储类别,存储类别指数据在内存中存储方式(静态和动态),包含auto,static,register,extern四种。内存中。具体点来说内存分为三块:静态区,堆区,栈区。外部变量和全局变量存放在静态区,局部变量存放在栈区,动态开辟的内存存在堆区。一、简要性比较extern 外部变量声明,是...转载 2019-07-07 23:10:59 · 2818 阅读 · 0 评论 -
AcWing.245. 你能回答这些问题吗
AcWing.245. 你能回答这些问题吗题目:给定长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:1、“1 x y”,查询区间 [x,y] 中的最大连续子段和,即 maxx≤l≤r≤y{∑ri=l A[i]}。2、“2 x y”,把 A[x] 改成 y。对于每个查询指令,输出一个整数表示答案。输入格式第一行两个整数N,M。第二行N个整数A[i]。接下来M行每行3个整...原创 2019-05-29 12:40:02 · 329 阅读 · 0 评论 -
乱七八糟的笔记
string StringTool::ReplaceAll(const string& str, const string& src, const string& des)// 将字符串str中所有的字符串src替换成字符串des{ string temp; temp.reserve(str.size()); if (0 < src.length())...转载 2019-07-07 23:13:28 · 226 阅读 · 0 评论 -
AcWing 135. 最大子序和
单调队列 O(N)首先单调队列,不同一般的队列,他需要的STL是deque双端队列,因为我们要支持队头插入和队尾插入.单调队列做法大致如下:首先我们需要找到单调性,这道题目的显而易见.我们知道区间和的做法,一般都是前缀和,而前缀和的求法就是s[r]−s[l−1],l和r均为左端点和右端点.然后我们接着思考,既然如此如果说我们确定了右端点,那么左端点可以取的点,是不是也存在一个区间[A,...原创 2019-08-06 12:34:15 · 245 阅读 · 0 评论 -
洛谷P1538 迎春舞会之数字舞蹈
#include <iostream>#include <cstdio>#include <cstring>using namespace std;char a[5][10];int main(){ memset(a, ' ', sizeof(a)); int k; scanf("%d", &k); a[1][2] = a[3][2] ...原创 2019-06-02 22:11:57 · 306 阅读 · 0 评论 -
乱七八糟的笔记(自环)
自环原创 2019-07-29 22:29:17 · 341 阅读 · 1 评论 -
邻值查找
#include <iostream>#include <cstdio>using namespace std;#define N 100005int b[N];struct Node{ int value, ind; Node *prev, *next;};Node *head, *tail;void initialize(){ head = n...原创 2019-03-31 20:33:37 · 1269 阅读 · 0 评论 -
小组队列
#include <iostream>#include <cstdio>#include <cstring>#define N 20005#define MAXN 1000000using namespace std;int a[MAXN],f[1005];int h,t;struct T{ int h,t; int m[N];}q[10...原创 2019-03-24 20:31:58 · 404 阅读 · 0 评论 -
回文子串的最大长度
#include <iostream>#include <cstdio>using namespace std;#define N 1000005unsigned long long P=131;unsigned long long Hash1[N],Hash2[N],p[N];unsigned long long cal1(int l,int r){ re...原创 2019-04-08 21:13:42 · 519 阅读 · 0 评论 -
并查集优化(UVA11354 Bond)
代码和思路参考:并查集2个优化——按秩合并和路径压缩,并查集讲解(按秩合并与路径压缩),模板与典型例题,并查集(按秩合并) 和《算法竞赛进阶指南》并查集优化一、路径压缩当我们只关心每个集合的根是什么,而不关心它的具体形态时,就可以将每一个节点都指向根节点get均摊复杂度:O(logN)O(log N)O(logN)1.递归(短小精悍好写但是可能会栈溢出)int get(int x...原创 2019-08-08 19:21:17 · 236 阅读 · 0 评论 -
编辑距离(洛谷 P2758 )
洛谷 P2758 编辑距离题目描述设A和B是两个字符串。我们要用最少的字符操作次数,将字符串A转换为字符串B。这里所说的字符操作共有三种:1、删除一个字符;2、插入一个字符;3、将一个字符改为另一个字符;!皆为小写字母!输入输出格式输入格式:第一行为字符串A;第二行为字符串B;字符串A和B的长度均小于2000。输出格式:只有一个正整数,为最少字符操作次数。明显的动归题嘛因...原创 2019-03-11 21:11:26 · 276 阅读 · 0 评论 -
AcWing 113 特殊排序
特殊排序有N个元素,编号1.2…N,每一对元素之间的大小关系是确定的,关系不具有传递性。也就是说,元素的大小关系是N个点与N*(N-1)/2条有向边构成的任意有向图。然而,这是一道交互式试题,这些关系不能一次性得知,你必须通过不超过10000次提问来获取信息,每次提问只能了解某两个元素之间的关系。现在请你把这N个元素排成一行,使得每个元素都小于右边与它相邻的元素。你可以通过我们预设的bo...原创 2019-07-03 12:28:18 · 496 阅读 · 0 评论 -
洛谷P4551 最长异或路径
洛谷P4551 最长异或路径设d[x]为从x到根的路径上各边权的异或和,根据定义易知d[x] = d[father(x)] ^ weight(father(x), x)d[x]可通过dfs求得那么从x到y的路径异或和就是d[x] ^ d[y]因为根据xor的运算性质(x ^ x = 0),lca(x, y)到根的路径正好被抵消那么题目就转化为求d[x](1 <= x <=...原创 2019-08-08 11:09:58 · 251 阅读 · 0 评论 -
蚯蚓
85分#include <iostream>#include <cstdio>#include <queue>#include <cmath>using namespace std;priority_queue<int> qy;int main(){ int n,m,t,q; double u,v,p; scanf("...原创 2019-03-24 11:54:24 · 297 阅读 · 0 评论 -
POJ1509 Glass Beads/最小表示法
Glass BeadsTime Limit: 3000MS Memory Limit: 10000KTotal Submissions: 5648 Accepted: 3139DescriptionOnce upon a time there was a famous actress. As you may expect, she played mostly Antique Comed...原创 2019-08-06 12:13:00 · 231 阅读 · 0 评论 -
离散化
数据的范围非常大或者其中含有负数,但数据本身的个数并不是很多(远小于数据范围)。在这种情况下,如果每个数据元素的具体值并不重要,重要的是他们之间的大小关系的话,我们可以先对这些数据进行离散化,使数据中的最大值尽可能小且保证所有数据都是正数。常用离散化方式有两种//1.用数组离散for(int i=1;i<=n;i++){ cin>>a[i].val; a[...转载 2019-07-03 14:45:40 · 309 阅读 · 0 评论 -
POJ1958 Strange Towers of Hanoi
题目大意解除n个盘子4座塔的Hanoi问题,最少需要多少步?解法设f[n]表示n个盘子4座塔需要的最少步数,d[n]表示n个盘子3座塔需要的最少步数易知d[n] = 2 * d[n - 1] + 1当n = 1时,显然f[1] = 1;当n > 1时,可以先将i个盘子(1 <= i < n)用4座塔移开,再将n - i个盘子用3座塔移开,最后将开始移开的i个盘子用...原创 2019-07-02 08:23:02 · 184 阅读 · 0 评论 -
64位整数乘法
64位整数乘法求 a 乘 b 对 p 取模的值。输入格式第一行输入整数a,第二行输入整数b,第三行输入整数p。输出格式输出一个整数,表示a*b mod p的值。数据范围1≤a,b,p≤1018看到这个数据范围有点茫然 跑去查了下unsigned long long最近做题的时候,经常遇到范围是263,取模264的这种题目。遇到这种限制条件时就要想到用unsigned long...原创 2019-03-24 20:24:41 · 626 阅读 · 0 评论 -
关于define
转自Effective C++ 笔记1: 用const和inline代替define及C++ 中的 inline 用法Effective C++ 笔记1: 用const和inline代替definedefine的使用一般有几种情况:1. 用来定义常量,如#define pi 3.14159262. 用来定义小函数,如#define max(a,b) ((a) > (b) ? (...转载 2019-07-29 22:27:09 · 423 阅读 · 0 评论 -
AcWing 143. 最大异或对
#include <iostream>#include <cstdio>const int N = 100005;int tot = 1;int trie[N<<5][2], a[N];int max(int a, int b){ return a > b ? a : b;}void insert(int x){ int p = 1;...原创 2019-08-06 12:21:32 · 201 阅读 · 0 评论 -
有向图最小环问题
洛谷 P2661 信息传递题目描述有 n 个同学(编号为 1 到 n )正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象,其中,编号为 i 的同学的信息传递对象是编号为 Ti 的同学。游戏开始时,每人都只知道自己的生日。之后每一轮中,所有人会同时将自己当前所知的生日信息告诉各自的信息传递对象(注意:可能有人可以从若干人那里获取信息, 但是每人只会把信息告诉一个人,即自己的信息...原创 2019-02-09 11:29:31 · 3739 阅读 · 1 评论 -
使用0x3f3f3f3f表示无穷大
转自 贾作真时真亦贾不过作者貌似也是转的呢…(挠头)如果问题中各数据的范围明确,那么无穷大的设定不是问题,在不明确的情况下,很多程序员都取0x7fffffff作为无穷大,因为这是32-bit int的最大值。如果这个无穷大只用于一般的比较(比如求最小值时min变量的初值),那么0x7fffffff确实是一个完美的选择,但是在更多的情况下,0x7fffffff并不是一个好的选择。很多时候...转载 2019-02-09 09:21:18 · 662 阅读 · 0 评论 -
方格取数
洛谷 P1004 方格取数题目描述设有N ×N的方格图(N≤9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0。如下图所示(见样例):A 0 0 0 0 0 0 0 0 0 0 13 0 0 6 0 0 0 0 0 0 7 0 0 0 0 0 0 14 0 0 0 0 0 21 0 0 0 4 0 0...原创 2019-02-15 17:32:51 · 566 阅读 · 0 评论 -
判断.连等
问:c 语言中判断3个数连等为什么不能用a ==b ==c答:由于==是从左到右进行运算的,对于表达式 ( a == b == c ),首先会进行 ( a == b )的逻辑运算,然后得出逻辑值1或0,得到的结果作为返回值进行 ( 返回值 == c ) 的逻辑运算,然后得出逻辑值1或0,作为整个表达式的返回值.所以也就是判断 ( ( a == b ) == c )即 ( 1或0 == c ...原创 2018-12-23 17:32:08 · 1488 阅读 · 0 评论 -
无向图最小环问题
CODEVS 2611 观光旅游题目描述 Description某旅游区里面有N个景点。两个景点之间可能直接有道路相连,用a[i][j]表示它的长度,否则它们之间没有直接的道路相连。这里所说的道路是没有规定方向的,也就是说,如果从i到j有直接的道路,那么从j到i也有,并且长度与之相等。旅游区规定:每个游客的旅游线路只能是一个回路(好霸道的规定)。也就是说,游客可以任取一个景点出发,依次经过若...原创 2019-02-08 22:50:17 · 1266 阅读 · 1 评论 -
背包问题
背包问题01背包信息奥赛一本通1267:【例9.11】01背包问题【题目描述】一个旅行者有一个最多能装 M 公斤的背包,现在有 n 件物品,它们的重量分别是W1,W2,…,Wn,它们的价值分别为C1,C2,…,Cn,求旅行者能获得最大总价值。【输入】第一行:两个整数,M(背包容量,M≤200)和N(物品数量,N≤30);第2…N+1行:每行二个整数Wi,Ci,表示每个物品的重量...原创 2019-01-27 17:39:18 · 1977 阅读 · 0 评论 -
复杂度分析
时间复杂度常见复杂度对应算法时间复杂度算法举例O(lgn)O(lg n)O(lgn)快速幂、数位dpO(n)O(n)O(n)KMP、欧拉筛法O(nlgn)O(n lg n)O(nlgn)线段树O(n2)O( n ^2 )O(n2)某些dpO(n3)O(n^3)O(n3)匈牙利算法O(2n)O(2^n)O(2n)二进制枚举O(3...原创 2019-02-11 11:44:02 · 289 阅读 · 1 评论 -
海底高铁
洛谷 P3406 海底高铁#include <iostream>#include <cstdio>#define LL long longusing namespace std;LL n,m,ans=0; LL a,b,c;LL p[100005];LL s[100005];//每段铁路要走多少次 inline LL read(){ char c; ...原创 2019-02-05 09:01:21 · 319 阅读 · 0 评论 -
表达式优先级
优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[整型表达式]左到右1()圆括号(表达式)/函数名(形参表)左到右1.成员选择(对象)对象.成员名左到右1->成员选择(指针)对象指针->成员名左到右2-负号运算符-算术类型表达式右到左单目运算符2(type)强制...原创 2019-03-11 20:40:59 · 1466 阅读 · 0 评论 -
yyy loves Maths II
洛谷 P2393 yyy loves Maths II题目背景上次蒟蒻redbag可把yyy气坏了,yyy说他只是小学生,蒟蒻redbag这次不坑他了。题目描述redbag给了yyy很多个数,要yyy计算这些数的和。必须要快,redbag只给了yyy1秒的时间!!!输入输出格式输入格式:一行,很多个数输出格式:一行,一个实数(四舍五入精确到5位小数),表示这些数的和。说明[数...原创 2019-02-15 15:19:19 · 541 阅读 · 0 评论 -
洛谷 P4779 【模板】单源最短路径(标准版)
洛谷 P4779 【模板】单源最短路径(标准版)题目背景2018 年 7 月 19 日,某位同学在 NOI Day 1 T1 归程 一题里非常熟练地使用了一个广为人知的算法求最短路。然后呢?100→60;Ag→Cu;最终,他因此没能与理想的大学达成契约。小 F 衷心祝愿大家不再重蹈覆辙。题目描述给定一个 N 个点,M 条有向边的带非负权图,请你计算从 S 出发,到每个点的距离。...原创 2019-02-15 17:49:47 · 556 阅读 · 0 评论 -
洛谷 P1123 取数游戏
洛谷 P1123 取数游戏题目描述一个N×M的由非负整数构成的数字矩阵,你需要在其中取出若干个数字,使得取出的任意两个数字不相邻(若一个数字在另外一个数字相邻8个格子中的一个即认为这两个数字相邻),求取出数字和最大是多少。输入输出格式输入格式:第1行有一个正整数T,表示了有T组数据。对于每一组数据,第一行有两个正整数N和M,表示了数字矩阵为N行M列。接下来N行,每行M个非负整数,描述...原创 2019-02-15 20:15:38 · 1406 阅读 · 0 评论 -
Bellman-Ford
Bellman-Ford是一种简单的求单源最短路的算法,虽然复杂度较高,但适用范围广,因此不失为一种实用的算法 最重要的是好写好理解主要思想是每次枚举每一条边,更新终点的最短路那么枚举多少次才全部更新完呢答案是n-1次简单证明:从源点到图上任意一点的最短路径一定不经过环,所以最短路径最多包含n-1条边枚举n-1次所有边相当于,枚举构成从源点到一个点最短路径的边的所有可能(因为所有点...原创 2019-02-11 17:12:54 · 283 阅读 · 0 评论 -
Tallest Cow
洛谷 P2879 [USACO07JAN]区间统计Tallest Cow先假设所有牛都是最大高度两头牛能相望就要把他们之间的都削掉一截于是就成了前缀和与差分问题坑人的是 可能有重复输入无缘无故把他们削两次 他们会恨你的所以要判重#include <iostream>#include <cstdio>#include <map>using na...原创 2019-02-06 08:48:17 · 208 阅读 · 0 评论 -
约瑟夫问题
洛谷 P1996 约瑟夫问题题目背景约瑟夫是一个无聊的人!!!学了一点链表跑回来重做这题于是TLE了…下面是我的 …我也不知道算不算链表 代码#include <iostream>#include <cstdio>using namespace std;int n,m;int cnt=1,cur=1;struct T{ int data;...原创 2019-02-07 15:23:21 · 199 阅读 · 0 评论 -
滑动窗口
洛谷 P1886 滑动窗口单调队列有两个性质队列中的元素其对应在原来的列表中的顺序必须是单调递增的。队列中元素的大小必须是单调递*(增/减/甚至是自定义也可以)就拿样例来谈谈,设以最小的为标准。8 31 3 -1 -3 5 3 6 7下文中我们用q来表示单调队列,p来表示其所对应的在原列表里的序号。1.由于此时队中没有一个元素,我们直接令1进队。此时,q={1}...原创 2019-02-07 18:17:05 · 210 阅读 · 0 评论 -
printf 和 scanf
如何用printf输出‘\n’printf("\\n");据说编译器会把双斜线\\理解成单个字符\哪位知道为什么的望告知如何用printf输出’%d’printf("%c%c\n",'%','d');pirntf中0的用处如printf("%05d\n",3);输出00003对齐和精确度printf("%(-)m.nlf",n);以m个域宽右(左)对齐,输出小.原创 2018-12-29 16:52:12 · 338 阅读 · 0 评论