- 博客(88)
- 收藏
- 关注
原创 01字典树 HRBUST-1717
异或运算 (^)参加运算的两个数,按二进制进行异或运算。运算规则:0 ^ 0 = 0; 0 ^ 1 = 1; 1 ^ 0 = 0; 1 ^ 1 = 0;(即:参加运算的两个数,对应位相“异”, 则该位为1, 否则为0)01字典树01字典树是一棵二叉树,最多32层用于求解异或最值问题:给出一个数集合,给出一个数k,问集合中哪个数与k的异或值最大。求解方法:要使得异或值最大,要尽量让对应...
2020-04-21 16:28:02
298
原创 HDU Today HDU2112 (dijkstra, 优先队列)
题目:HDU Today#include<iostream>#include<algorithm>#include<cstring>#include<string>#include<cstdio>#include<map>#include<queue>using namespace std;con...
2020-04-20 20:19:44
199
原创 Wormholes POJ3259 (spfa)
题目:http://poj.org/problem?id=3259题目大意:F组数据, 输入n, m, w,表示n块田地, m个田与田之间的关系,w个虫洞,从一块田到达另一块田需要花一定时间, 穿过虫洞时时间会倒流,问是否能够回到出发前的时间解题思路:判断是否存在负环,若存在则一定能够回去。#include<cstdio>#include<cstring>#inc...
2020-04-17 10:44:07
202
原创 C源程序的结构特点
C源程序的结构特点1.一个C语言源程序可以由一个或多个源文件组成。2.每个源文件可由一个或多个函数组成。3.一个源程序不论由多少个文件组成,都有且只有一个main函数,即组函数。4.源程序中可以有预处理命令(include命令仅为其中的一种),预处理命令通常放在源文件或源程序的最前面。5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。6.标识...
2020-04-11 08:43:34
2745
原创 C++ fgets()函数
fgets()函数功能: 从指定流中读取数据,每次读取一行原型: char *fgets(char *str, int n, FILE *stream)从指定流stream中读取一行,并存在str所指向的字符串内。当读取完n-1个字符或读取到换行符或到达文件末尾时,停止读取。实例int main(){ FILE *fp; char str[100]; fp ...
2020-03-28 19:21:53
2856
原创 如何使用Pycharm安装Python第三方库
1.打开PyCharm, 点击File --> Settings2.在搜索框中输入 interpreter,在下面找到 并点击 Project Interpreter,接下来点击右边的 “ + ”号3.在搜索框中输入要安装的第三方库的名称,左下角点击 Install Package 安装有时候下载比较慢,可以换个镜像源:将里面的https://pypi.python.or...
2020-03-20 22:33:49
906
原创 Python嵌套字典的遍历
对于字典:d = {1:1, 2:2, 3:{4:44, 5:55, 6:{7:{7:1024}, 8:88}}, 9:9 }1.如何获取到{7:1024}中的1024?2.如何获取到所有key为7的value值?方法一: 直接输出d = {1:1, 2:2, 3:{4:44, 5:55, 6:{7:{7:1024}, 8:88}}, 9:9 }print("{7:1024}中的102...
2020-03-19 10:44:09
5141
原创 Python写代码将列表 L [1, 2, 3, 2, 2, 1, 5] 中的2删除
L = [1, 2, 3, 2, 2, 1, 5]i = 0while i < len(L): if L[i] == 2: L.pop(i) continue i += 1print(L)Python列表的删除方法:1)list.pop(index): 根据索引删除列表中的一个元素(默认最后一个),并返回该元素的值2)list.remove(obj) : 移出列表...
2020-03-18 22:56:48
1582
原创 取余与取模的区别
取余取模运算符都是:%(不同环境下有所不同:在c/c++,java中,%为取余,在python中,%为取模)取余,遵循尽可能让商靠近0的原则取模,遵循尽可能让上商靠近负无穷的原则a%b = c …da,b同号时,取余取模结果一致;a,b不同号时,结果不一致。取余运算,运算结果d的符号与a一致;取模运算,运算结果d的符号与b一致;...
2020-02-02 10:51:54
331
原创 C++ next_permutation()函数
1)数学中组合数经常要用到全排列,这里介绍两个全排列相关的函数:next_permutation(begin,end) 和 prev_permutation(begin,end)。next_permutation(begin, end)输出全排列(输出当前排列的下一个排列,以字典序)prev_permutation(begin, end)输出全排列(输出当前排列的上一个排列,以字典序)#i...
2020-01-31 10:48:38
599
原创 P1316 丢瓶盖(二分)
题目:https://www.luogu.com.cn/problem/P1316A个点再一条直线上,从中挑选B个,使得距离最近的2个距离最大,问距离最大可以是多少?Solve: 二分答案#include<bits/stdc++.h>using namespace std;const int INF = 0x3f3f3f3f;const int MAXN = 1e5 +...
2020-01-28 17:42:17
286
原创 P1182 数列分段 Section II(二分)
题目:https://www.luogu.com.cn/problem/P1182对于给定的一个长度为N的正整数数列 A1∼NA_{1\sim N}A1∼N ,现要将其分成 M(M ≤ N)段,并要求每段连续,且每段和的最大值最小。Solve:显然的最大值最小化问题,用二分。枚举答案,枚举的范围:只要从数组中最大的那个数枚举到所有数的和就行了。#include<bits/std...
2020-01-28 17:02:34
282
原创 P1135 奇怪的电梯(dfs/bfs)
题目:https://www.luogu.com.cn/problem/P1135solve1:dfs#include<bits/stdc++.h>using namespace std;const int INF = 0x3f3f3f3f;const int MAXN = 210;int N, A, B;int k[MAXN];int ans = INF;int b...
2020-01-28 11:27:47
854
原创 P1025 数的划分(dfs/dp)
题目:https://www.luogu.com.cn/problem/P1025题目描述:将整数n分成k份,且每份不能为空,任意两个方案不相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。1,1,5;1,5,1;5,1,1;问有多少种不同的分法。 (6 < n <= 200, 2 <= k <= 6)solve1: dfs要把n...
2020-01-27 12:15:22
512
1
原创 树状数组(学习小结)
树状数组树状数组是一种数据结构,它可以高效处理对一个存储数字的列表进行更新和维护前缀和已知一个长度为n的数组,现在要实现以下操作:更新某个位置的值,查询前i个数的和,查询区间[i,j]的和upData(i, val): 在i位置加上valquery(i):查询区间从第一个数到第i个数的和getSum(i, j): 计算第i个数到第j个数的和树状数组和线段树树状数组可线段树...
2020-01-25 16:59:57
285
原创 P1908 逆序对 (归并排序,树状数组)
题目:https://www.luogu.com.cn/problem/P1908solve1:归并排序归并排序就是递归将原来的序列不断二分,分到不能再分,然后将左右子区间排序合并(合并时左右区间各自都已经有序了)得到逆序对的关键代码:ans += mid - i + 1;归并排序将左右区间合并时,左右区间已经是有序了的,所以只需要统计右区间中每一个数与左区间会产生多少逆序对就好了。...
2020-01-24 15:24:01
425
原创 P1071 潜伏者 (字符串)
题目:https://www.luogu.com.cn/problem/P1071错题笔记: 原代码下面样例没过ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYAABCD正确答案:Failed错误答案:ABCD这是因为第二个字符串中A对应了两次,题目要求每个字母只对应一个唯一的“密字”,不同的字母对应不同的“密字”。“密字”...
2020-01-19 11:45:53
294
原创 HDU1757 A Simple Math Problem (矩阵快速幂)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1757题目描述:函数f(x)满足如下条件:x<10时,f(x)=x;x < 10时,f(x)=x;x<10时,f(x)=x;x>=10时,f(x)=a0∗f(x−1)+a1∗f(x−2)+...+a9∗f(x−10)x >= 10时, f(x)=a_0*f(x-1)+ a...
2020-01-18 16:31:55
186
原创 HDU1575 Tr A(矩阵快速幂)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1575题目描述:A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%9973。解题方法:矩阵快速幂code:#include<iostream>#include<algorithm>#include<cstring>#incl...
2020-01-18 16:14:59
242
原创 poj3070 - Fibonacci(矩阵快速幂)
题目:http://poj.org/problem?id=3070题目大意:输入n,求矩阵(1110)n输入n,求矩阵\begin{pmatrix}1 & 1 \\1 & 0 \end{pmatrix} ^n输入n,求矩阵(1110)ncode:#include<iostream>#include<algorithm>#inc...
2020-01-18 16:06:46
256
原创 矩阵快速幂
1.快速幂快速幂也叫二进制取幂,想要快速求出 ana^nan的结果就用它来求。ana^nan表示将n个a乘在一起,时间复杂度是O(n)级别,如果n太大的话这种方法就不适用了。如果使用快速幂的话时间复杂度能达到O(log2log_2log2n),因为n有⌊log2log_2log2n⌋ + 1 个二进制位,所以当知道了每一位的值后,只需要通过log2log_2log2n次乘法就可计算出a...
2020-01-18 15:44:36
436
原创 Making Money(完全背包)
题目:https://ac.nowcoder.com/acm/contest/3186/D描述:有n种物品(1 <= n <= 100),每种物品个数不限,给出每一种物品的进价和售价。现在有m元钱,用这些钱去进货并卖出货物(m元进货时可以不全部花完),问最后总共能有多少钱?(每种物品的利润 = (该物售价 - 该物进价)* 该物卖出的数量)code:#include<...
2019-12-16 10:55:21
234
原创 Soda Machine(前缀和、离散化)
题目:https://ac.nowcoder.com/acm/contest/3186/C描述:给出n个区间(1 <= n <= 50000) ,对于区间[ai,bi],有1<= ai <= bi <= 1,000,000,000; 问被覆盖最多次的点被多少个区间覆盖样例输入:43 54 81 25 10样例输出:3code:#includ...
2019-12-16 10:04:13
319
原创 表达式求值 (栈)
题目:https://ac.nowcoder.com/acm/contest/3186/Bcode:#include<iostream>#include<algorithm>#include<cstring>#include<string>#include<cstdio>using namespace std;const ...
2019-12-15 15:09:49
242
原创 汉诺塔(递归)
题目:http://bailian.openjudge.cn/practice/4147?lang=en_USCode:#include<bits/stdc++.h>using namespace std;const int INF = 0x3f3f3f3f;const int MAXN = 1e5 + 7;int n;char a, b, c;void Move_On...
2019-10-15 08:46:16
142
原创 Wormholes(判断负环,spfa)
题目:添加链接描述Description:F组数据, 输入n, m, w,表示n块田地, m个田与田之间的关系,w个虫洞,从一块田到达另一块田需要花一定时间, 穿过虫洞时时间会倒流,问是否能够回到出发前的时间Solution:判断是否存在负环,若存在则一定能够回去。Code:#include<iostream>#include<algorithm>#in...
2019-10-14 10:12:36
223
原创 反片语(map)【紫书】
题目:uva 10815Description:输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本中的另外一个单词。在判断是否满足条件时,字母不分大小写,但在输出时应保留输入中的大小写,按字典进行排序(所有大写字母在所有小写字母的前面)。样例输入:ladder came tape soon leader acme RIDE lone Dreis pea...
2019-10-02 20:21:08
164
原创 P1880 [NOI1995]石子合并(区间dp)
题目:https://www.luogu.org/problem/P1880Description:n堆石子摆成一圈,现在要合并成一堆,每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。计算出合并的最大分和最小分。Solution:区间dp,分阶段划分问题。由于石子围成了环,现在把环转化为两倍长的链。变成 (2 * n - 1) 堆,其中第 i 堆...
2019-09-28 11:07:28
226
1
原创 P1162 填涂颜色(dfs)
题目:https://www.luogu.org/problem/P1162Description:由数字0组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向。现要求把闭合圈内的所有空间都填写成2.Solution:围圈内的部分不要动,把围圈和围圈外的部分进行标记,输出时,没有标记的部分,即圈内部分输出为2,其余按原图输出。注意,在进行df...
2019-09-11 20:48:00
590
原创 P1219 八皇后(dfs)
题目:https://www.luogu.org/problem/P1219Description:在n*n的棋盘上摆放棋子,要求棋子不能放在同一行同一列,也不能放在同一对角线上,同时不能放在与对角线平行的直线上,求有多少种放法。输出前三种。对角线的横纵坐标相加减是一个定值。Code:#include<bits/stdc++.h>using namesp...
2019-09-07 17:55:51
278
原创 poj1312棋盘问题(dfs)
题目:http://poj.org/problem?id=1321Description:在n*n的棋盘上摆棋子,棋子没有区别,要求任意两个棋子不能放在同一行或同一列,求摆放k个棋子时的方案数c为多少。Solution:#include<iostream>#include<stdio.h>using namespace std;char Map[...
2019-09-07 17:42:12
508
原创 P3919 【模板】可持久化数组(可持久化线段树/平衡树)
题目:https://www.luogu.org/problem/P3919维护这样的一个长度为 N 的数组,支持如下几种操作在某个历史版本上修改某一个位置上的值访问某个历史版本上的某一位置的值此外,每进行一次操作(对于操作2,即为生成一个完全一样的版本,不作任何改动),就会生成一个新的版本。版本编号即为当前操作的编号(从1开始编号,版本0表示初始状态数组)1≤N,M≤10610^61...
2019-09-04 10:40:59
213
原创 P1012 拼数
题目:https://www.luogu.org/problem/P1012设有n个正整数(n≤20)(n≤20),将它们联接成一排,组成一个最大的多位整数。例如:n=3n=3时,33个整数1313,312312,343343联接成的最大整数为:3433121334331213又如:n=4n=4时,44个整数77,1313,44,246246联接成的最大整数为:74246137424...
2019-09-04 09:44:03
333
原创 P2446 [SDOI2010]大陆争霸 (dijkstra)
题目:https://www.luogu.org/problem/P2446Description:带限制的最短路,途中一些点被其他点限制,当限制该点的点都被到达后方可通过该点。你可以释放无限多个机器人替你跑路。Solution:情景一:当前到达的点没有被保护 => 可以直接通过情景二:当前到达的点被保护,不能通过 => 在门口等着,直到保护这个点的点都被...
2019-08-19 12:06:43
262
原创 P3831 [SHOI2012]回家的路 (分层图最短路)
题目:https://www.luogu.org/problem/P3831一个网格图,横向或纵向走一边用时2,在特定点转向用时1,问从起点到终点用时最短为多少。Solution:虽然题目给出一个网格图,但是实际有用的点就是起点,终点和能换乘的点三种点,其余的点都可以忽略。考虑分层图,第一层为横走向,第二层为纵走向,中间为转向所花的代价。代码:#include...
2019-08-16 17:59:45
226
原创 P4822 [BJWC2012]冻结 (分层图最短路)
题目:https://www.luogu.org/problem/P4822有 N 个城市,M 条双向的道路。城市编号为 1~N,我们在 1 号城市,需要到 N 号城市,怎样才能最快地到达呢?现在,我们一共有 K 张可以使时间变慢 50%的 SpellCard,也就是说,在通过某条路径时,我们可以选择使用一张卡片,这样,我们通过这一条道路的时间 就可以减少到原先的一半。需要注意的是:...
2019-08-16 15:39:27
355
原创 P2939 改造路Revamping Trails (分层图,最短路)
题目:https://www.luogu.org/problem/P2939约翰一共有N)个牧场.由M条布满尘埃的小径连接.小径可 以双向通行.每天早上约翰从牧场1出发到牧场N去给奶牛检查身体.通过每条小径都需要消耗一定的时间.约翰打算升级其中K条小径,使之成为高 速公路.在高速公路上的通行几乎是瞬间完成的,所以高速公路的通行时间为0.请帮助约翰决定对哪些小径进行升级,使他每天从1...
2019-08-14 17:33:20
300
原创 poj2115 Looooops (扩展GCD)
题意:有一个在k位无符号整数下的模型:for (variable = A; variable != B; variable += C) {statement;} , 问循环多少次。题解模型:a1a_1a1 + c1c_1c1x = b1b_1b1 (mod 2k2^k2k)用拓展欧几里德方法求出gcd最大公因数,再利用同余性质转化,求同余方程,模型转化为 : c1...
2019-07-18 11:03:44
216
原创 成对最小公倍数~写题笔记
题目:你只需要复制下面的代码并选择正确的语言提交即可通过此题。int superLCM( int n ) {int res = 0;for( int i = 1; i <= n; i++ )for( int j = i; j <= n; j++ )if( lcm(i, j) == n ) res++; // lcm...
2019-06-17 21:23:50
489
原创 P1197 [JSOI2008]星球大战~写题笔记
题目:https://www.luogu.org/problemnew/show/P1197#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>using namespace std;// 倒过来求解// 将全部有通道的点以边的形式存起来,将所有...
2019-04-25 21:34:38
295
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人