- 博客(59)
- 收藏
- 关注
原创 [leetcode] 148. Sort List
题目要求是在O(nlog(n))O(n\log(n))O(nlog(n))时间复杂度和常数空间复杂度下实现对链表的排序。通过刷LeetCode发现自己在链表指针这方面的知识太薄弱了, 上来我写了一个平时打比赛常规思路, 用了一个优先队列塞进去, 再不停地pop出来,先放一下代码。/** * Definition for singly-linked list. * struct ListN...
2019-01-17 23:46:16 274
原创 [2018 Multi-University Training Contest 5] HDU 6356 Glad You Came(倍增思想逆运用?)
题目链接Glad You Came题目大意T组数据。 每组给一个长度为nnn的数组, 初始全为0, 有mmm次操作, 每次操作将区间[l,r][l,r][l, r]中a<va<va < v的更新成v。 最后询问⊕ni=1(i×ai)⊕i=1n(i×ai)\oplus_{i=1}^n (i \times a_i) 输入的数据由题目给的方式生成。数据范围1...
2018-08-06 21:34:29 281
原创 [2018牛客多校(第五场)] take (树状数组+概率)
题目链接take题目大意一共有n个箱子, 第iii个箱子有p[i]%p[i]%p[i]\%的概率开出大小为d[i]d[i]d[i]的钻石。 初始玩家手里有一个size为0的钻石, 且手里最多只能有一个钻石, 如果当前开的箱子中得到的钻石大于手中的钻石, 则替换, 问最终替换次数的期望是多少。 最终对答案模998244353。数据范围1≤n≤1051≤n≤1051\le ...
2018-08-05 19:16:13 427
原创 [2018 Multi-University Training Contest 4] HDU 6333 Problem B. Harvest of Apples(莫队算法)
题目链接Problem B. Harvest of Apples题目大意TTT组询问, 每组询问问∑mi=0Cin∑i=0mCni\sum_{i = 0} ^ {m} C_n^i.数据范围1≤T≤1051≤T≤1051 \le T \le 10^5 1≤m≤n≤1051≤m≤n≤1051 \le m \le n \le 10^5解题思路定义S(n,m)=∑...
2018-08-05 18:39:35 241
原创 HDU 4049 Tourism Planning (状压DP)
HDU 4049 Tourism Planning (状压DP)题目链接:Tourism Planning题目大意:有n(1≤n≤10)n(1≤n≤10)n (1\le n \le 10)个人要去m(1≤m≤10)m(1≤m≤10)m (1 \le m \le 10)个景点旅游, 每个景点有一个门票价格P[i]P[i]P[i], 每一个人对于一个景点有一个喜悦值V[i][...
2018-07-20 17:51:58 299
原创 [codeforces] 1004 E. Sonya and Ice Cream
[codeforces] 1004 E. Sonya and Ice Cream题目链接:E. Sonya and Ice Cream题目大意:给一个n(1≤n≤105)n(1≤n≤105)n (1 \le n \le 10^5)个点的树,每一条边有一个长度l(1≤l≤104)l(1≤l≤104)l(1 \le l \le 10^4), 现在让你找出一最长长度为k(1≤k≤...
2018-07-10 10:44:05 442
原创 [codeforces] 1000 E. We Need More Bosses
[codeforces] 1000 E. We Need More Bosses题目链接:E. We Need More Bosses题目大意:给一个n(2≤n≤3∗105)n(2≤n≤3∗105)n(2 \le n \le 3*10^5)个点, m(n−1≤m≤3∗105)m(n−1≤m≤3∗105)m(n-1 \le m \le 3 * 10 ^ 5)条边的无向图, 对...
2018-07-10 10:43:18 486
原创 算法学习-归并树
用一句话定义归并树就是用线段树记录归并排序时每一层每一段数组的状态。用途:归并树可以在O(log(n)2)O(log(n)2)O(log(n)^2 )复杂度查找区间[l,r]比x小的有几个. 那么就可以通过二分枚举在O(log(n)3)O(log(n)3)O(log(n)^3 )复杂度实现查找区间[l,r]第k大的值.我们先回顾一下归并排序的具体实现方法:归并排...
2018-04-13 09:45:51 525
原创 [Atcoder]arc92 D - Two Sequences(二进制+二分)
D - Two Sequences题目链接:D - Two Sequences题目大意:给两个数组长度为n的数组A, B。 计算所有A[i]+B[j]A[i] + B[j]的异或和。数据范围:1≤n≤2·1051 \le n \le 2·10^5 0≤ai,bi≤2280 \le a_i, b_i \le 2^{28} 解题思路:比赛的时候这道题我没有做出来, 只能想到按位拆分, 但是拆完了之后就
2018-03-26 18:11:39 891 3
原创 [Atcoder] arc91-E LISDL(构造)
[Atcoder] arc91-E LISDL (构造)题目链接:E - LISDL题目大意:让你构造一个长度为n的排列, 使得整个排列的最长上升子序列长度为A, 最长递降子序列为B。解题思路:首先我们要知道什么情况下是不合法的的。、a + b > n+1 当只有一组递增和一组递降的时候, a+b == n+1a*b < n 最多的时候, 有a组...
2018-03-23 20:59:49 541
原创 vim配置分享(win+mac+Ubuntu三平台)适合刷题做oj练习题
vim配置(win+mac+Ubuntu三平台)我的Githubvim配置(win+mac+Ubuntu三平台)macOS基础部分一键编译vimrc一键编译gvimrc一键编译windows基础部分一键编译Ubuntu偷懒必备本人是一名大二的学生, 使用vim有一年半了, 整理的这些配置, 有一些是之前学长留下的, 有一些是我自己上网查...
2018-03-04 19:53:03 1246
原创 AtCoder Grand Contest 020 C - Median Sum(背包+bitset)
AtCoder Grand Contest 020 C - Median Sum(背包+bitset)题目链接Median Sum题目大意给你N" role="presentation" style="position: relative;">NNN个数, A1,A2...An" role="presentation" style="position: relative;"
2018-01-20 17:23:51 749
原创 macvim中java编译信息中文乱码问题解决方案
今天考完试, 开始折腾起了java, 发现在macvim中编译的时候报错信息全是问号。 百度了一下无果, 后来发现百度中好多人都是终端下乱码, 而我终端下编译没问题,感觉问题应该差不多,果然经过一番摸索, 解决了问题。首先要了解java编译信息的编码是GBK格式,而mac和Linux下大多是UTF-8编码格式, 我是用方法就是把java的GBK格式编译信息转换成UTF-8的。网上的教程都是
2018-01-12 00:26:56 669 1
原创 MFC 通讯录程序思路整理(完成)
周一晚上十点整!! 完工了, 从上周五晚上做到现在。 先上一个最终效果图: 12-19周二下午更新(修复了两个bug) 一个是修改的时候队列位置的错位问题, 一个是备注信息显示错乱的问题。 另外做了一个应用的图标。 首先说说一下总结, 虽然整个程序做完了, 但是还是有很多缺陷, 比如写了很多没有用的代码。 因为很多地方都不会, 直接去百度, 找到一个解决的办法就用了, 实际上会有更优的办
2017-12-16 17:45:27 6934 19
原创 Gvim 树形目录插件 NERDTree 安装方法
折腾了一个多小时, 终于搞定了这个插件。 遇到几个问题, 疯狂百度,自己整理一下。首先是下载插件NERDTree, 插件链接。 下载之后, 一定要按照官网的要求。将解压文件NERD_tree解压到gvim的安装目录。~/vim74将NERD_tree/plugin里的NERD_tree.vim复制到~/vim74/plugin将NERD_tree/doc里的NERD_tree.txt复制到
2017-12-15 20:46:47 7886 4
原创 [atcoder] agc86 D - Non-decreasing
D - Non-decreasing题目链接:Non-decreasing题目大意:给一个长度为n (1≤n≤50)n\ (1 \leq n \leq 50)的序列。 每次可以选择两个数ax,aya_x, a_y, 把axa_x加到aya_y上。最终使得a序列不递降, 题目保证0 2n0 ~ 2n次有解。 输出操作个数以及操作方案。数据范围:1≤n≤501 \leq n \leq 50 −106≤
2017-12-11 23:01:22 364
原创 [codeforces] 897C Nephren gives a riddle
题目链接:C. Nephren gives a riddle题目大意:q组测试,每组给一个初始字符串s0s_0, 定义字符串si=s_i = “What are you doing while sending “fi − 1f_{i - 1}”? Are you busy? Will you send “fi − 1f_{i - 1}”?” 问SnS_n的第k个字母是什么 。数据范围:1≤q≤10
2017-12-05 17:13:17 394
原创 mac os 程序对拍(同Linux对拍) 以及c++文件读入
mac os 程序对拍(同Linux对拍) 以及c++文件读入在网上翻了好久发现Windows和Linux下的程序对拍都有很多博客, 而macos下的寥寥无几, 自己摸索了一下发现macos和Linux基本相同。 准备: test1.cpp //算法程序1 test2.cpp //算法程序2 data.cpp //数据生成器 compare.cpp //比较程序前三个cpp大家肯定都知道怎么
2017-11-20 13:17:34 1652
原创 2014-2015icpc 牡丹江 B.Building Fire Stations (二分+树的直径)
2014-2015icpc 牡丹江B.Building Fire Stations (二分+树的直径)题目链接: B. Building Fire Stations题目大意: 给一棵n个节点的树, 要求在树上找两个点作为消防站,使得任意一个点到近的消防站的距离的最大值尽可能小, 输出最大的距离, 和两个作为消防站的标号(严格两个不同的加油站)。数据范围: 2≤n≤2e52 \leq n \leq
2017-11-15 22:57:17 364
原创 [codeforces] 877E. Danil and a Part-time Job(DFS序+线段树)
[codeforces] 877E. Danil and a Part-time Job(DFS序+线段树)题目链接: E. Danil and a Part-time Job 题目大意: 给一棵大小为n的以1为根节点的树。 每个点的值为0或1, 有q个操作: 1. pow v, 对于v以及v的子树所有节点01反转。 2. get v, 查询v以及v的子树中1节点的个数。数据范围: (1≤
2017-11-13 23:14:47 433
原创 [codeforces] 877D. Olya and Energy Drinks (BFS)
[codeforces] 877D. Olya and Energy Drinks (BFS)题目链接: D. Olya and Energy Drinks 题目大意: 给一个N * M的矩阵,给定起点和终点坐标,k代表沿同一个方向1s可以走1~k步, 问从起点走到终点最少需要多少秒,不能到达输出-1。 ‘#’表示墙, ‘.’表示路。数据范围: (1 ≤ n, m, k ≤ 1000)(1 ≤
2017-11-13 23:13:39 431
原创 LightOJ - 1030 Discovering Gold (期望)
LightOJ - 1030 Discovering Gold (期望)题目链接: LightOJ-1030 题目大意: 给nn个格子,每个格子有aia_i的金子,初始位置为1,操作是扔六面骰子,扔几点走几步,每到达一个新位置,就得到该位置的金子。到nn的时候停止,如果下次移动的位置超过nn,重新投掷骰子直到合法位置。求所能得到金子数量的期望。解题思路: dp[i]dp[i]表示从ii位置开始
2017-10-13 22:41:01 379
原创 LightOJ - 1027 (期望基础)
LightOJ - 1027 (期望基础)题目链接:LightOJ - 1027题目大意: 给你n个门,每次进每个门的概率都是一样的,正数代表你x分钟后可以离开这里,负数代表你x分钟后回到这里。求预期离开的时间, 如果时间无限大,输出inf。 数据范围: 1≤abs(xi)≤100001 \leq abs(x_i) \leq 10000 解题思路:用EE表示离开所需要的时间。考虑两种情况:
2017-10-13 22:23:03 430
原创 数据结构作业——动态数组
关于动态数组的初步理解摘要:动态数组的组成以及动态内存分配常用函数的原理以及使用方法。 关键字: 动态数组、 动态内存分配、 指针、 malloc()、 free()、 sizeof() 动态数组是把指针与动态内存分配内存联用。动态内存分配是指在程序运行时为变量分配内存的一种方法。 C的动态内存分配从堆上分配内存。使用这些函数时只需要在程序开头将头文件<cstdli.b>包含到源程序。函数ma
2017-09-15 18:41:28 516
原创 [codeforces] 854D. Jury Meeting(前/后缀最小值)
[codeforces] 854D. Jury Meeting题目链接: D. Jury Meeting题目大意: 有n个人分别在1~n的点上, 要让这n个人到0号点并且所有人在一起的天数至少为k天, 之后再回到各自的点。 有m个航班, d f, t, c 表示第d天从u到v的花费为c, 其中f, t 必有一个是0。 输出最小花费, 如果不能满足输出-1。数据范围: (1≤n,m≤105)(
2017-09-08 00:13:17 845
原创 [codeforces] 854C. Planning(优先队列)
[codeforces] 854C. Planning(优先队列)题目链接: C. Planning题目大意: 有nn个航班要按顺序依次起飞, 现在要推迟k秒, 每个飞机有一个停留花费cic_i每秒, 你可以安排这些飞机的起飞顺序, 但前提是不能早于原始起飞时间, 求最小花费。数据范围: (1 ≤ k ≤ n ≤ 300 000)(1 ≤ k ≤ n ≤ 300 000) (1 ≤ ci
2017-09-07 23:33:25 402
转载 2017 Multi-University Training Contest - Team 7 HDU 6192 Just do it (杨辉三角)【转】
转自:http://blog.csdn.net/qq_37412229/article/details/77231474 题目链接题目意思给你一个包含n个数的序列A和一个数m,序列B中的数是序列A经过异或得到的,比如:b[i]=a[1]^a[2]^…..^a[i]。现在让你求经过m次异或后,序列B的值。
2017-08-25 22:54:18 621
原创 2017 Multi-University Training Contest - Team 6 HDU 6105 Gameia(博弈)
2017 Multi-University Training Contest - Team 6 HDU 6105 Gameia(博弈)题目链接: HDU 6105 Gameia题目大意: 给一棵树,nn个点,n−1n-1条边, 刚开始每个点都没颜色, A可以将一个点涂成白色,B可以把一个点以及与这个点相邻的点(不管染没染过色)全部变成黑色,B有k次机会可以砍断任意一条边。 A先开始, 所有点都被
2017-08-17 22:01:34 308
原创 2017 Multi-University Training Contest - Team 6 HDU 6103 Kirinriki (尺取法)
2017 Multi-University Training Contest - Team 6 HDU 6103 Kirinriki (尺取法)题目链接: HDU 6103 Kirinriki题目大意: 给一个字符串s,和一个值m. 定义disA,B=∑i=0n−1|Ai−Bn−1−i|dis_{A,B} = \sum\limits_{i=0}^{n-1}|A_{i}-B_{n-1-i}| .
2017-08-17 21:29:39 330
原创 [codeforces] Gym - 100814E Everything Has Changed (DP)
[codeforces] Gym - 100814E Everything Has Changed (DP)题目链接: Everything Has Changed 题目大意: 给你一个n∗mn*m的矩阵, 让你从左上角走到右下角 只能往下或者往右选择一些数字相乘, 使得最后的乘积转换为6进制之后0的个数尽可能多。数据范围: 2≤n,m≤1002 \leq n, m \leq 100解题思路:
2017-08-12 10:15:44 674
原创 [codeforces] Gym - 101246G Revolutionary Roads (DFS)
[codeforces] Gym - 101246G Revolutionary Roads (DFS)题目链接: Revolutionary Roads 题目大意: 给n个点和m条有向边, 你可以把一条有向边变成双向边, 问改完之后形成的最大强连通分量有多大,并且输出所有能改的边。数据范围: 1≤n≤1000,0≤m≤200001\leq n \leq 1000, 0 \leq m \l
2017-08-12 09:37:26 398
原创 博弈知识点整理
博弈知识点整理博弈满足的条件: 玩家只有两个人,轮流做出决策 游戏的状态集有限,保证游戏在有限步后结束,这样必然会产生不能操作者,其输 对任何一种局面,胜负只决定于局面本身,而与轮到哪位选手无关一、巴什博弈(Bash Game)问题模型: 只有一堆nn个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取mm个,最后取光者得胜。解决思路: 当n=m+1n = m + 1时,由于
2017-08-09 20:53:34 609
原创 [codeforces] Gym - 101246D Fire in the Country (BFS + 基础博弈)
[codeforces] Gym - 101246D Fire in the Country (BFS + 基础博弈)题目链接: D. Fire in the Country 题目大意: 给定nn个点,mm条边, 有一个机器人, 初始在一个号点, 两个人轮流操作, 每次可以让机器人走到一个相邻的点, 大火从一号点开始蔓延, 每次所有着火点相连的点都会被点着, 问最终谁让机器人走到着火点谁就输。
2017-08-09 15:38:12 402
原创 [codeforces] Gym - 101246C Explode 'Em All (状压+DFS + lowbit)
[codeforces] Gym - 101246C Explode ‘Em All (状压+DFS + lowbit)题目链接: C. Explode ‘Em All题目大意: 给一个n∗mn * m的矩阵, ∗*表示石头, ..表示空地, 你可以在ijij位置放炸弹, ii行和jj列的的石头都会被炸掉, 问你最少放多少个炸弹可以把所有的石头都炸掉。数据范围: 1⩽n,m⩽251\leqsl
2017-08-09 15:06:11 625
原创 [codeforces] Gym - 100814D Frozen Rivers (BFS + 二分)
[codeforces] Gym - 100814D Frozen Rivers (BFS + 二分)题目链接:Gym - 100814D Frozen Rivers 题目大意: 给nn个点, 之后2...n2...n行输入, 每行有一个pi,cip_i, c_i表示ii的父节点以及两点之间的边权。生成一棵树, 树从根节点开始融化, 每秒11单位长度当的速度,当到达第一个儿子节点, 到达其他儿子
2017-08-09 13:57:30 629
原创 [codeforces] Gym - 100814C Connecting Graph (并查集+LCA)
[codeforces] Gym - 100814C Connecting Graph (并查集+LCA)题目大意: 给定n个点, m个操作, 操作由两种形式 1uv1 u v 将u,vu, v 连一条边 2uv2 u v 询问u,vu, v最早什么时候连通, 如果不连通输出−1-1 数据范围: (1<=n,m<=1e5)(1 <= n, m <= 1e5)解题思路: 两个点什么时候最
2017-08-09 13:38:41 588
原创 2017 Multi-University Training Contest - Team 4 HDU 6070 Dirt Ratio (二分+ 线段树)
2017 Multi-University Training Contest - Team 4 HDU 6070 Dirt Ratio题目链接:HDU 6070题目大意:给你nn个数, 让你选一个区间, 使得区间不同数的个数比区间长度尽可能的小。数据范围:1<=n<=60000,1<=ai<=n1 <= n <= 60000, 1 <= a_i <= n解题思路:这道题就是一道经典的找一个区间使得∑
2017-08-05 10:59:10 462
原创 [2017 Multi-University Training Contest - Team 4] HDU 6069 Counting Divisors
[2017 Multi-University Training Contest - Team 4] HDU 6069 Counting Divisors题目链接:HDU 6069题目大意:给定l,r,kl, r, k 定义d(x)d(x)为xx因子的个数, 求: (∑i=lrd(ik))mod998244353\begin{eqnarray*} \left(\sum_{i=l}^r d(i^k)
2017-08-05 10:19:20 375
转载 【博弈】 各种博弈的搬运整理
这两天认识了几个组合游戏的基础模型,希望自己能更新下去。。Ferguson游戏DescriptionInitial有两个盒子,一个装有 m 颗糖,一个装有 n 颗糖,表示为 (m, n) .Step每次清空一个盒子,将另一个盒子里的糖转移一些过来,并保证两个盒子至少各有一颗糖。Win最后进行转移糖者胜,无法转移糖者败。Solvem, n 都为奇数
2017-08-04 12:50:27 2229
原创 2017 Multi-University Training Contest - Team 3 1003 Kanade's sum
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6058题目大意: 给定一个排列n,求所有区间第k小的和。官方题解:我们只要求出对于一个数xx左边最近的kk个比他大的和右边最近kk个比他大的,扫一下就可以知道有几个区间的kk大值是xx.我们考虑从小到大枚举xx,每次维护一个链表,链表里只有>=x>=x的数,那么往
2017-08-02 14:58:30 455
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人