浮生惘语

欲买桂花同载酒,终不似,少年游。

NOIP / ACM 选手必知的编程技巧及常用C++头文件模板

前言       平时做题或者比赛掌握一些有用的技巧会方便我们调试,使程序可读性更强,另外模板也比较省时,所以我就从网上整理了一下。   重载运算符 重载运算符是通过对运算符的重新定义,使得其支持特定数据类型的运算操作。 有的时候,我们构造了一种新的数据类型(高精度数,矩阵),当然可以将...

2018-11-19 10:53:45

阅读数 285

评论数 0

[kuangbin带你飞]专题1-23题目清单总结

[kuangbin带你飞]专题1-23 专题一 简单搜索  POJ 1321 棋盘问题POJ 2251 Dungeon MasterPOJ 3278 Catch That CowPOJ 3279 FliptilePOJ 1426 Find The MultiplePOJ 3126 Prime ...

2018-09-27 17:01:22

阅读数 708

评论数 0

ACM成长之路

前几天在网上看到,转过来时刻督促一下自己。 ACM队不是为了一场比赛而存在的,为的是队员的整体提高。 大学期间,ACM队队员必须要学好的课程有: l C/C++两种语言 l 高等数学 l 线性代数 l 数据结构 l 离散数学 l 数据库原理 l 操作系统原理 l 计算机组成原理 l 人工智能 ...

2018-06-03 09:21:27

阅读数 445

评论数 0

HDU 6662 - Acesrc and Travel【树形DP + 换根】

Acesrc和旅行 问题描述 Acesrc是南京大学着名的旅游者之首。在这个暑假期间,他和张和刘一起将前往香港。有ñ香港的景点,和n-1连接这些景点的双向观光巴士路线。他们决定乘公共汽车去一些景点。 然而,张和刘对这些景点有不同的偏好。他们分别为每个地点设定了令人满意的价值。如果他们访问...

2019-08-20 01:09:52

阅读数 9

评论数 0

牛客网 CDMA【构造+思维】

题意:让你构造一个n*n的矩阵,满足任意两行相乘为0. 思路:当n为2时,矩阵为 1 1 , 然后我们考虑用m构造出2m的解 1 -1 #include <bits/stdc++.h> using namespa...

2019-08-18 22:30:40

阅读数 7

评论数 0

牛客网 xor 【线段树+线性基】

题目链接:https://ac.nowcoder.com/acm/contest/884/B 题意: 给你n个集合,m次询问,每次问你[l, r] 的集合能否表示x。 所以我们用线段树来维护线性基的交,又多了个板子,,, #include <bits/stdc++.h...

2019-08-18 19:21:54

阅读数 5

评论数 0

牛客网 Big Integer 【循环节】

思路:本题有个巧妙的思路是在对d进行质因数分解时,我们考虑固定j,这时候只需要找到满足条件的i就行了。并且k<=30, 所以我们只需要枚举30以内的就行了。 #include <bits/stdc++.h> using namespace st...

2019-08-18 15:54:07

阅读数 16

评论数 0

牛客网 Hilbert Sort 【思维】希尔伯特曲线

题目链接:https://ac.nowcoder.com/acm/contest/890/E 题意:第i个图形是由4个(i-1)的图形拼成的,左上角要经过主对角线,右上角的要经过次对角线。 第四个的话应该是这种的(拼一块的有点乱) 所以不难发现规律,左上角的小格子内的顺序是次对角线互...

2019-08-18 01:02:23

阅读数 27

评论数 0

牛客网 XOR【线性基】

题目链接:https://ac.nowcoder.com/acm/contest/881/H 题意:给你一个集合,问你所有异或和为0的子集的大小。 思路: 首先我们可以组成一个基底大小为r,那么剩下n-r个数就在非基底,对这n-r个元素来说,其任意一个都能够与其余n-r-1个元素构成一个数,然...

2019-08-17 00:34:39

阅读数 11

评论数 0

牛客网-Chessboard 【组合数】

今天CSL又来了TL。他看到TL有一个非常大的棋盘和许多玻璃球。所以他有个主意。他对TL说:“你有多大的棋盘......和我一起玩游戏怎么样?我会给你,你可以在棋盘上选择一个任意大的方形区域(假设你选择一个方形区域)和在每个正方形上放置一些玻璃球(每个正方形应放置不小于玻璃球)。您的位置需要满足:...

2019-08-16 17:08:07

阅读数 28

评论数 0

牛客网 Pair【数位DP】

思路:我们可以找出来不满足条件的,然后用总数减去不满足的就行。数位DP还不是太了解,先记录下来。 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn =...

2019-08-16 15:36:29

阅读数 15

评论数 0

牛客网 Find the median 【线段树区间】

https://ac.nowcoder.com/acm/contest/887/E 题目链接 题意:每次给你增加一个区间[l, r] ,问你增加后新集合的中位数。 思路:对x,y离散化,右端点加一,有篇博客解释很详细:点开链接, 记录下点映射的区间的长度和 出现总数,然后我们只需要每次查第k小...

2019-08-16 00:38:16

阅读数 13

评论数 0

牛客网 Knapsack Cryptosystem【思维】

题意:给你一个n个元素的数组,给你一个sum,让你找到数组的子集使得子集元素和等于sum,保证只有一个解决方案。 n<=36, sum < 9e18 思路:爆搜肯定是不行的,有一个很巧妙的思路,就是将数组分成两个区域,18个元素我们完全可以暴力枚举子集,并放到set...

2019-08-15 19:52:35

阅读数 33

评论数 0

牛客网 Is Today Friday? 【蔡勒公式】

不,这不是星期五:(唐唐喜欢星期五,他已经编制了n天的列表,这些都是星期五!这个列表中的每个日期都形成为“yyyy / mm / dd”,其中“yyyy”是一个四位数代表年份的数字,“mm”是代表月份的两位数字,“dd”是代表日期的两位数字.TangTang只考虑1600到9999之间的年份(含)...

2019-08-15 01:01:04

阅读数 12

评论数 0

HDU 6625-three arrays【01字典树 + 思维】

题意:给你两个数组,让你可以任意匹配两个数组进行异或,使得异或后的字典序最小。 思路:对两个数组分别建树,同时记录各个节点出现的次数,每次挑两个数异或并消除,那么最终状态一定会将两棵树消完。 在取两个数的时候,取相同位优先,因为这样异或为0,其次才是不同的01,10,如果相同的话位权为1,那么...

2019-08-14 21:03:15

阅读数 9

评论数 0

牛客网 triples II 【组合数+DP】

题意:给你一个数a,问让你用n个3的倍数or(或)操作能够得到a的方案数,注:0也是 思路:如果把a的二进制表示看做一个集合,而把一个拥有a集合部分1的子集当做a的子集,那么问题就转换成了有多少个a的子集可以通过或操作后得到a,那么我们定义S[i][j]表示i个1,j个2的子集数,(当前二进制位...

2019-08-13 20:06:24

阅读数 17

评论数 0

HDU 6651-Final Exam【思维】

问题描述 期末考试即将到来!Cuber QQ现在有一个晚上准备明天的考试。 考试将是对共享问题的考试米点。Cuber QQ不知道确切的分布。当然,不同的问题可能有不同的意义;在某些极端情况下,一些问题可能值得0点或全部米点。积分必须是整数;一个问题不能有0.5点。 他知道的是,这些ñ问题将是关于...

2019-08-13 14:38:48

阅读数 59

评论数 0

HDU 6592-Beauty Of Unimodal Sequence【单调栈+LIS】

题意:给你一个序列,让你找长度最长的字典序最小和最大的单峰序列,单峰序列就是满足先增后降的序列。 思路:先正着求一遍LIS,再反着求一遍LIS,然后用单调栈来模拟。 求字典序最小的话,首先找到第一个顶峰,然后往前找递减的序列中下标较小的,往后就依次找,这样能保证字典序最小。 最大的话找到最后...

2019-08-13 14:27:14

阅读数 30

评论数 0

牛客网 Removing Stones【思维】

题意:n堆石头,每次可以挑出来两堆同时减一,如果初始石子和为奇数你可以挑选最少的一堆石子拿走一个,问你有多少个区间满足最后可以把所有石子挑完。 思路:题目可以转化为求一个长度大于等于2的连续子数列,其中最大的元素不大于其它元素和的1/2,网上有相关证明。 所以我们枚举把第i个当做最大元素,找到...

2019-08-13 01:08:00

阅读数 17

评论数 0

HDU 6656-Kejin Player【概率DP】

题意:给你n次升级的机会,每次升级成功的概率是p(用r/s表示),花费为a,如果成功会升到下一级,否则的话会掉到x级。 q次询问,每次问你从l升到r级的期望花费。 思路:dp[i] 表示从i级升到i+1级的花费,1/p次中有1次升级,那么剩下 1/p - 1次会掉级,所以dp[i] = (a[...

2019-08-12 22:29:02

阅读数 84

评论数 0

提示
确定要删除当前文章?
取消 删除