- 博客(287)
- 资源 (1)
- 收藏
- 关注
原创 shared_ptr 简单实现
template <typename T>class Shared_ptr {public: Shared_ptr(): count(new unsigned int(1)), val(new T()) {} Shared_ptr(T* p): count(new unsigned int(1)), val(p) {} Shared_ptr(const...
2019-04-20 12:03:49
490
1
原创 二叉树遍历的几种写法(前中后序递归|非递归遍历)
#include <iostream>#include <string.h>#include <stdio.h>#include <vector>#include <queue>#include <stack>using namespace std;struct ListNode { int val...
2019-04-01 23:07:52
318
原创 链表归并排序(递归|非递归)
#include <iostream>#include <vector>#include <stack>using namespace std;struct ListNode { int val; ListNode *next; ListNode () = default; ListNode (int val): ...
2019-03-26 10:59:25
757
原创 JSP + MySQL 实现选课签到系统
实验环境开发工具:Eclipse + Tomcat数据库:MySQL + MySQLWorkbench主要功能用户注册、登陆用户注册:可以选择注册管理员、教师还是学生用户登陆:登陆界面管理员功能审核用户:所有新注册的教师、管理员都需要通过审核才能解锁相关的功能删除用户删除课程:可以删除任意课程管理课程成员:可以查看所有课程的成员列表、可以审核通过学生课程签到:...
2019-02-13 18:21:26
3025
4
原创 牛客 - Wannafly挑战赛26 - C - 七彩线段(DP+离散)
Wannafly挑战赛26 - C - 七彩线段由于颜色只有七种,线段有100000条,所以可以用DP[i][j]表示最后一个线段的右端点位置 < i,且包含 j 颜色的最大长度,(状态压缩,用七位二进制数表示七种颜色的状态)。l,r范围较大,但n较小,所以将其进行离散化处理。#include <iostream>#include <string.h>...
2018-10-16 17:51:57
279
原创 Codeforces Round #509 (Div. 2) - D - Glider(枚举递推)
Codeforces Round #509 (Div. 2) - D - Glider题意:已知有 n 个有上升气流的区域(不相交且按递增序给出),求用滑翔机从高度h出发,最远能飞多远。在上升气流区域中不会下降,否则每飞一米高度下降一米。可以在任意横坐标跳机,跳机时高度为h。落地后不能再往前飞,就算是上升气流也不行。可以知道在上升气流刚开始的位置跳机最好。枚举所有的...
2018-09-16 22:19:16
309
原创 Codeforces Round #509 (Div. 2) - C - Coffee Break(Set 二分)
Codeforces Round #509 (Div. 2) - C - Coffee Break 题意:有 n 个不同的休息时间,每天工作时间为m,任意两个休息点之间至少要隔d个时间,求最少工作天数,使得 n 个休息时间都休息了。两天的休息点不会相互影响,因为题目中说到两天之间的时间默认 > d对于每次设置休息点,就是记录一个上次休息时间 t +至少工作时间 d 为 p...
2018-09-16 22:19:13
493
原创 ACM-ICPC 2018 焦作赛区网络预赛 - Mathematical Curse (DP)
ACM-ICPC 2018 焦作赛区网络预赛 - Mathematical Curse题意:有一个包含n个非零整数的序列和一个含有m个字符的字符串s,字符只可能是 '+', '-', '*', '/' 四种,有一个初始值 k现要从序列中取出一个含有m个数的子序列{a1, a2, .. , am},求 k 和 m 个数进行运算后的最大值要按照原序列的顺序进行运算如:4 4 ...
2018-09-15 19:03:07
270
原创 LeetCode - 两个排序数组的中位数(二分)
LeetCode - 两个排序数组的中位数由于时间复杂度要求是O(log(n+m)),所以合并数组不可取考虑二分二分中位数是第一个数组的第几个,然后判断是否满足中位数的条件也可能中位数在第二个数组,所以只要将第一第二个数组交换后再求一遍即可当 n+m 为奇数,中位数是数组中的数,在合并后的数组中其左边右边均有(n+m)/2个数(向下取整)若为偶数,中位数有两个,抛去这两个,...
2018-09-13 16:58:01
653
原创 ACM-ICPC 2018 南京赛区网络预赛 - Sum (素数筛)
ACM-ICPC 2018 南京赛区网络预赛 - Sum题意:f(n) 为 n 分解为 a*b 的组数,其中ab均不含有平方因子,a * b 与 b * a 为不同的两组若n为质数,可以得到 f(n) = 2若n为合数,设 p 为 n 的一个质因数,令 n = p * q假如 q 能被 p*p 整除,则说明n中含有三个或三个以上的 p 则f(n) 必然为0,因为要把3个p分...
2018-09-12 22:51:27
179
原创 ACM-ICPC 2018 南京赛区网络预赛 - Skr (回文树)
ACM-ICPC 2018 南京赛区网络预赛 - Skr题意:求一个不含0的大整数的所有不同回文字串的和如 : 1121有 1121、112、121、11、12、21、1、2 八个不同的子串,其中121、11、1、2为回文串所以其答案为 121 + 11 + 1 + 2 = 135 可以利用回文树得到所有不同的回文串,然后遍历这些回文串,得到所有的回文串的值求和即可。...
2018-09-11 22:14:01
265
原创 ACM-ICPC 2018 南京赛区网络预赛 - The writing on the wall (暴力枚举)
ACM-ICPC 2018 南京赛区网络预赛 - The writing on the wall题意:有一个含有n*m个方格的矩阵,其中有几格涂黑了,求不包含黑方块的子矩阵个数。和牛客多校第七场的J题一样 -> 题目链接:Sudoku Subrectangles 枚举每个点作为左上角的贡献即可,这个可以先预处理每个点最下面能到达的位置(或者最上面,看自己喜欢),然后从左到...
2018-09-11 13:11:03
150
原创 牛客练习赛26 - D - xor序列(线性基)
牛客练习赛26 - D - xor序列判断集合S中的一些元素异或后能否得到 x^y#include <iostream>#include <string.h>#include <stdio.h>using namespace std;const int N = 1e2 + 10;int n, m, x, y, a[N];const int ...
2018-09-10 14:15:49
201
原创 ACM-ICPC 2018 南京赛区网络预赛 - Lpl and Energy-saving Lamps(线段树单点更新)
ACM-ICPC 2018 南京赛区网络预赛 - Lpl and Energy-saving Lamps题意:有n个房间,每个房间有ki个灯泡,现要将灯泡均换为节能灯泡,每个月会去买m个灯泡,每个月均从第一个房间开始换灯泡,如果当前手中节能灯泡数量比房间灯泡数量少,或者该房间所有灯泡都已经被换过了,则跳过该房间,否则将该房间的灯泡全部换为节能灯泡。有q个询问,每个询问一个数字,代表月...
2018-09-05 15:56:22
151
原创 ACM-ICPC 2018 南京赛区网络预赛 - AC Challenge(状压DP)
ACM-ICPC 2018 南京赛区网络预赛 - AC Challenge题意:有n个题目,每个题目有一些信息,,第 t 个过第 i 题会得到分数 t*ai + bi在过第 i 题前必须要先过 这几题,可以选择不过题求最大得分最多20个题目,不计顺序的话,一共有 2^20 = 1,048,576 种取法 做出 i 个可以从做出 i-1 个的状态推出,枚举第 i 个...
2018-09-04 18:03:34
293
原创 ACM-ICPC 2018 南京赛区网络预赛 - GDY(模拟)
ACM-ICPC 2018 南京赛区网络预赛 - GDY题意:有 n 个人 m 张牌,牌的编号从1~13,其大小顺序为 3 < 4 < ... < 12 < 13 < 1 < 2在游戏开始时,每个人先从牌堆中抽取5张牌(五张五张抽),题目保证在初始抽牌结束时每个人手中至少有一张牌然后从第一个人开始,他会取出手牌中最小的牌,并打出,接下来第二个人...
2018-09-04 10:21:27
285
原创 ACM-ICPC 2018 南京赛区网络预赛 - An Olympian Math Problem
ACM-ICPC 2018 南京赛区网络预赛 - An Olympian Math Problem题意:求 S 对 N 取模其中 #include <iostream>using namespace std;int main(){ int T; cin>>T; while(T--) { long lon...
2018-09-04 09:48:29
168
原创 AtCoder Regular Contest 102 - D - All Your Paths are Different Lengths (构造)
AtCoder Regular Contest 102 - D - All Your Paths are Different Lengths题意:构造出一个带边权有向图,使得从 1 到 N 恰好有 L 条路径,且路径长度从 0 到 L-1其中顶点数 N <= 20 , 边数 M <= 60边有向,有权值,可以重边。如果每相邻两个点之间连两条边一条为0一条为2^i...
2018-09-04 09:36:58
298
原创 PAT - L1 - 006 - 连续因子(枚举)
PAT - L1 - 006 - 连续因子题意:将一个数分解为多个数的乘积,求这些分解数的最长且最小连续序列并输出。 就是找到最长的连续因子,其乘积小于 n 且能将 n 整除// 题意:因数序列的乘积要能整除n,最长为多少,相同输出第一个数最小的,输出按递增序列#include <iostream>#include <string.h>#includ...
2018-08-29 09:40:15
237
原创 Codeforces Round #506 (Div. 3) - C - Maximal Intersection(分类讨论)
Codeforces Round #506 (Div. 3) - C - Maximal Intersection题意:有 n 个线段在一个数轴上,已知各个线段的起点终点,求出取出一条线段后剩余 n-1 条线段的公共部分的最长长度。n个线段的公共部分很容易就可以求出,只需对所有的起点与终点进行排序,最小的终点 - 最大的起点即为答案,若为负值则没有公共部分。现要从中取出一条使得...
2018-08-25 19:04:37
162
原创 HDU - 6415 - Rikka with Nash Equilibrium(DP)
HDU - 6415 - Rikka with Nash Equilibrium题意:在一个 n*m 的矩阵中放入 1~n*m 这 n*m 个数,每个数字只能出现一次,矩阵要填满求有几种放置的方案,使得矩阵中只有一个纳什均衡(即整个矩阵中只有一个数在它所在的那一行那一列均为最大值)即要构造在整个矩阵中只有 n*m 这个数是矩阵中唯一的在他那一行那一列均为最大的数。所以 n*...
2018-08-23 22:46:59
211
原创 HDU - 6435 - Problem J. CSGO(枚举)
HDU - 6435 - Problem J. CSGO题意:有 n 把主武器和 m 把副武器,每把武器有 k 种属性 x[i] 和综合得分 S,从中取出主副武器各一把求 的最大值其中MW表示主武器相关信息,SW表示副武器相关信息 如果绝对值不存在,我们只要找出 和 两者相加即为答案因为带有绝对值,处理变得不方便了,所以我们要去绝对值,由于 K 最大为 5 所以去...
2018-08-23 11:22:34
275
1
原创 HDU - 6113 - 度度熊的01世界(搜索)
HDU - 6113 - 度度熊的01世界突然发现之前这道题目没过只要找出所有的0,1连通块,然后按条件输出就行了如果0连通块的边界是整个图的边界即说明这个0连通块没有被1连通块包围#include <iostream>#include <string.h>#include <stdio.h>#include <queue>...
2018-08-19 23:33:09
169
原创 牛客小白月赛6 - G - 指纹锁(set二分)
牛客小白月赛6 - G - 指纹锁#include <iostream>#include <string.h>#include <stdio.h>#include <algorithm>#include <set>using namespace std;typedef long long int LL;set<i...
2018-08-19 11:08:46
297
原创 HDU - 6408 - From ICPC to ACM(贪心)
HDU - 6408 - From ICPC to ACM题意:已知 k 个月每个月的具体信息,求满足客人需求的最小花费。每个月的信息如下:ci 表示第 i 个月的原材料价格di 表示第 i 个月需要卖出的电脑数量(顾客在第 i 个月的需求)mi 表示第 i 个月生产一台电脑的花费pi 表示第 i 个月能生产的电脑数量 ei 表示第 i 个月可以存到下个月的电...
2018-08-17 19:19:44
452
原创 HDU - 6376 - 度度熊剪纸条(贪心)
HDU - 6376 - 度度熊剪纸条 所有的连续的一可以分为三个部分。第一个部分是刚开始的连续的1,然后是末尾的连续的1,再就是中间部分的连续的1 第一种如果做前缀1的末尾,则其花费为0第二种要用的话花费为1第三种做前缀末尾,则其花费为1,否则花费为2然后就是求出较大的即为答案#include <iostream>#include <stri...
2018-08-13 19:34:42
392
原创 HDU - 6383 - p1m2(二分答案)
HDU - 6383 - p1m2#include <iostream>#include <string.h>#include <stdio.h>#include <vector>#include <algorithm>using namespace std;typedef long long int LL;cons...
2018-08-13 10:22:19
324
原创 EOJ Monthly 2018.8 - D - Delivery Service(LCA+树上差分)
EOJ Monthly 2018.8 - D - Delivery Service题意:有一棵n个节点的树,树的每条边都有各自的权值,在询问开始前,可以交换任一两条边的权值,次数不限,有q个询问,每个询问包含一个起点和终点,从起点到终点经过的边的权值和就是这次询问的花费,求所有询问的最小花费和。换边只能在询问前。 因为换边只能在询问前,而且可以任意换边,问题就转换为,求出每条边...
2018-08-12 12:40:54
224
原创 HDU - 6341 - Problem J. Let Sudoku Rotate(DFS+剪枝)
HDU - 6341 - Problem J. Let Sudoku Rotate题意:一个16*16的数独,给你将其每块逆时针旋转一些次数后的状态,求出其恢复到数独条件满足最少要旋转多少次。 模拟每块逆时针旋转。每块旋转结束后在该块左上角就已经确定了,可以判断每行每列是否有相同的,用以剪枝。 #include <iostream>#include &l...
2018-08-11 18:36:50
249
原创 牛客网暑期ACM多校训练营(第七场) - J - Sudoku Subrectangles(枚举)
牛客网暑期ACM多校训练营(第七场) - J - Sudoku Subrectangles题意:已知一个n*m充满字符的矩阵,求出有多少个子矩阵,其每一行每一列都没有相同的字母(不同行不同列的位置字母可以相同) 枚举以每一个点作为子矩阵的左上角,求出有多少个,然后最后求和即为答案。然后问题就是如何快速计算每个点作为左上角有多少个满足条件的子矩阵。 先考虑每行不同,不考虑...
2018-08-10 20:41:10
191
原创 牛客网暑期ACM多校训练营(第七场)- C - Bit Compression(暴力)
牛客网暑期ACM多校训练营(第七场)- C - Bit Compression题意:一个长度为2^n的二进制数,每次对这个数进行&、^、|三种操作中的一种,每次操作将两个相邻的数进行该操作得到新的二进制数,然后继续向下,求最后剩下一个1有多少种方法。 整个效率为O(3^n)在最后几步记忆化一下就能过了。太多步的话要存的状态太多空间会炸,所以适当就好。 #inclu...
2018-08-10 16:18:00
219
原创 HDU - 6343 - Problem L. Graph Theory Homework(不等式)
HDU - 6343 - Problem L. Graph Theory Homework题意:有 n 个点, 每个点均有一个权值wi,第 i 个点到第 j 个点的距离为⌊sqrt(|wi−wj|)⌋求出 1 到 n 的最短距离从 1 到 n 有两种选择1、直接1 -> n ,路径长度为⌊sqrt(|w1−wn|)⌋2、从1经过一些点然后再到n,设1->k-&g...
2018-08-10 14:50:21
151
原创 HDU - 6342 - Problem K. Expression in Memories(模拟)
HDU - 6342 - Problem K. Expression in Memories题意:判断所给字符串能否形成一个正确表达式字符串中的 '?' 可以换成0~9,+,*正确的表达式有如下条件:每个数字不能有前导零(单个0不算),+和*不能相连+、*前面后面必须是数字 #include <iostream>#include <string.h...
2018-08-10 14:27:37
164
原创 HDU - 6336 - Problem E. Matrix from Arrays (规律+容斥)
HDU - 6336 - Problem E. Matrix from Arrays题意:按照题中所给代码构造一个无限的矩阵,求左上角为(x1,y1),右下角为(x2,y2)的子矩阵的权值和。int cursor = 0;for (int i = 0; ; ++i) { for (int j = 0; j <= i; ++j) { M[j][i - ...
2018-08-10 13:38:02
150
原创 HDU - 6335 - Problem D. Nothing is Impossible(贪心)
HDU - 6335 - Problem D. Nothing is Impossible#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;typedef long long int LL;...
2018-08-09 23:11:38
276
原创 HDU - 6333 - Problem B. Harvest of Apples (排列组合+莫队)
HDU - 6333 - Problem B. Harvest of Apples 题意:一颗树上有n颗苹果,求取不多于m个苹果有多少种拿法 令,F(n, m)即为n颗苹果拿不多于m个的方法的种数且可以打个表或者手算出前面几行,就可以发现 已知F(n,m)就可以推出 F(n-1, m),F(n+1, m),F(n, m-1),F(n, m+1) #includ...
2018-08-09 22:43:05
186
原创 HDU -6330 - Problem L. Visual Cube(模拟)
HDU -6330 - Problem L. Visual Cube题意:给一个长方体的长宽高,按照样例画出这一个长方体 /* 将其分为了如下两个部分来分别画出....+-+-+-+-+-+-+.../././././././|..+-+-+-+-+-+-+.+./././././././|/|+-+-+-+-+-+-+.+.+|.|.|.|.|.|.|/|/...
2018-08-09 15:42:31
155
原创 HDU - 6324 - Problem F. Grab The Tree(思维)
HDU - 6324 - Problem F. Grab The Tree题意:有一颗含有n个节点的生成树,每个节点都有各自的权值,Q要从这n个点中选出一些点,至少一个,这些点不能有相连的关系。这些点的权值的异或就是Q的得分,剩下的点的异或就是T的得分,问赢的人是谁。 设Q的得分为SQ,T的得分为ST,所有点的异或值为S。可以知道 SQ ^ ST = S。其中S是已知的,要...
2018-08-09 15:37:13
138
原创 HDU - 6322 - Problem D. Euler Function
HDU - 6322 - Problem D. Euler Function题意:求第k小的数n使得phi(n)是合数 可以打表找到规律 #include <iostream>#include <string.h>#include <stdio.h>using namespace std;typedef long long ...
2018-08-09 11:00:39
146
原创 HDU - 6319 - Problem A. Ascending Rating (单调队列)
HDU - 6319 - Problem A. Ascending Rating题意:有一个长度为n的数列,已知前k项,其k+1项到第n项可由递推式 得到 求出A,B,其中,maxrating_i 表示区间[i, i+m-1]的最大值,count_i 表示从 [i, i+m-1] 最大值改变的次数,刚开始最大值为 -1 ,count 为 0 先求出所有的 ai,从后往前...
2018-08-09 10:46:37
242
JSP 选课签到系统
2019-01-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人