自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (3)
  • 收藏
  • 关注

原创 POJ 2796

题目:点击打开链接题意:给出一个序列,要求的是一个区间,这个区间的最小值乘以这个区间数字的和 是最大值。求这个最大值与这个区间。分析:单调队列经典题,在以每个数为最小值的情况中,取个最大值,维护每个数可以左右延伸到的位置,预处理前缀和,复杂度O(n)。实现细节见代码。代码:#pragma comment(linker, "/STACK:102400000,102400000")//...

2018-07-31 20:32:38 1175

原创 HDU 6319 Ascending Rating

题目:点击打开链接题意:先给出一个长度为k(k<=n)的序列,和一个递推式,让你先求出整个长度为n的序列,然后对于每个区间都求题目给的式子,其中maxratingi为区间最大值,count为区间上升序列元素个数。对于不同的区间maxratingi和count要重新算。分析:滑动窗口模型,需要使用单调队列,注意要从后往前,不理解可以手动模拟一下。代码:#pragma comme...

2018-07-31 19:05:24 206

原创 ACM-ICPC 2017 Asia Urumqi D. Fence Building

题目:点击打开链接题意:圆上n个点任意连线,最多分成多少个区域。分析:首先在圆上去n个点,要是n个点产生的区域数最大,就必须是任意3条直线不交于一点。也就是圆内任意一点最多只有两条直线经过。在圆上的n个点会连出C(n,2)条直线。任意一个圆内交点都可以有圆上四点构成的四元组唯一对应,那么无序四元组的个数为C(n,4),也是交点个数。如果把圆看成一张图(圆弧也是边),点数有n+C(n,4),边...

2018-07-30 09:42:21 390

转载 c++中map与unordered_map的区别

c++中map与unordered_map的区别头文件 map: #include < map > unordered_map: #include < unordered_map > 内部实现机理 map: map内部实现了一个红黑树,该结构具有自动排序的功能,因此map内部的所有元素都是有序的,红黑树的每一个节点都代表着map的一个元素,因此...

2018-07-27 20:10:49 517

原创 牛客网暑期ACM多校训练营(第三场) C Shuffle Cards

题目:点击打开链接题意:M个操作,每个操作都是从p开始的s个数移动到开头,问你最后的序列是什么。分析:treap(树堆)或者Splay(伸展树)或者SBT(节点大小平衡树)都能实现,最方便的是利用STL中的rope,rope的底层实现是可持久化平衡树,复杂度为O(M*sqrt(N))。代码:#pragma comment(linker, "/STACK:102400000,1024...

2018-07-27 16:58:48 200

转载 rope大法

第一次学会了一个非常屌(cai)的STL大法——rope!!!这是一个非标准的STL工具,一般情况下要支持c++11或更高才能用(上次去参加APIO时人家毛子评测用的是c++14啊喂!)正题:它的头文件是什么:#include<ext/rope> (注:你可以打开devcpp的目录去翻一翻rope这个头文件看看它的操作啊!)除了头文件以外还需要什么:using name...

2018-07-27 16:39:00 17960

原创 伯努利数模板

预处理逆元与组合数,复杂度为O(n)。代码:#pragma comment(linker, "/STACK:102400000,102400000")///手动扩栈#include<algorithm>#include<iostream>#include<cstdlib>#include<cstring>#include&l...

2018-07-27 11:41:39 255

原创 牛客网多校1 Sum of Maximum

题目:点击打开链接题意:给出n个数,求分析:即数组最大值max * max为最大值的次数,求和,由于数字顺序不影响结果,所有可以先把数组从小到大排序。a1,a2,a3, ... ,ai = x,aj = y, ... ,an考虑到y时,mula = a1 * a2 * ... * aiz = n - j + 1,表示y及后面还有z个数max = x + 1,情况有mula...

2018-07-27 11:31:35 247

原创 2018牛客多校训练营第一场A Monotonic Matrix

题目:点击打开链接题意:在所有的n*m的矩阵中,数出满足条件的矩阵的数量(% 1e9+7)* Ai, j ∈ {0, 1, 2} for all 1 ≤ i ≤ n, 1 ≤ j ≤ m.* Ai, j ≤ Ai + 1, j for all 1 ≤ i < n, 1 ≤ j ≤ m.* Ai, j ≤ Ai, j + 1 for all 1 ≤ i ≤ n, 1 ≤ j &lt...

2018-07-26 17:16:24 238

原创 The 2018 ACM-ICPC China JiangSu Provincial Programming Contest K. Road

题目:点击打开链接题意:n个顶点编号为0到n-1的图,从中删去一些边形成一棵树,保证树上任意一个点到0点的距离等于原图中0到这个点的最短路长度。求这棵树有多少种画法。分析:(HDU 6026原题)先计算每个点到原点的最短距离,对于任意一个非原点,考虑给其选择一个父亲,使得父亲到原点的距离+两点距离=自己到原点距离。每个点可能的父亲的数量的乘积就是答案。可以想象成三角形用两条短边替换一条长边。...

2018-07-26 10:51:50 215

原创 The 2018 ACM-ICPC China JiangSu Provincial Programming Contest I. T-shirt

题目:点击打开链接题意:有n天,一个人一天可以选择穿一种T恤,如果今天穿A,明天穿B,可以获得f[A][B]的快乐值,问这n天可以获得的最大快乐值。f为m*m的矩阵。(2≤N≤100000,1≤M≤100)分析:这题涉及到矩阵乘法以及快速幂,首先我们先利用dp来做dp[i][j][k]表示从i走到j,走k步的最大距离,那么转移就是dp[i][j][k] = max(dp[i][j...

2018-07-26 10:02:11 273

原创 线性时间求所有逆元

规定p为质数,且1^(−1)≡1(modp)设p=k∗a+b,b<a,1<a<p,即k∗a+b≡0(modp)两边同时乘以a^(−1)∗b^(−1)得到 k∗b^(−1)+a^(−1)≡0(modp)a^(−1)≡−k∗b^(−1)(modp)a^(−1)≡−p/a∗(pmoda)^(−1)(modp)从头开始扫一遍即可,时间复杂度O(n)代码:int in...

2018-07-25 22:39:18 322

原创 The 2018 ACM-ICPC China JiangSu Provincial Programming Contest H. Angry

题目:点击打开链接题意:线性递推求第k项。分析:用杜教的板子。代码:#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <vector>#include <string>#include &l...

2018-07-25 21:13:15 246 2

原创 线性递推式模板

写这篇博客保存一下这个强无敌的模板,可以解决任何线性递推式。这个板子是杜教的板子。所以我们现在要做的是用推出递推式的前几项,然后扔进这个板子就可以了。前几项丢的越多越好, 一般8个是绝对可以推出来的,个别的少一点也行。模板:#include <cstdio>#include <cstring>#include <cmath>#include &l...

2018-07-25 21:07:52 1589

原创 The 2018 ACM-ICPC China JiangSu Provincial Programming Contest E. Massage

题目:点击打开链接题意:二维矩阵,从左上角到右下角,求两条路径不相交的方案数。分析:先考虑这样一个问题,给定一个n*m矩阵,求从左上角到右下角总共存在多少条路径,每次只能向右走或者向下走。显然是一个数学中的组合问题,因为从左上角到右下角,总共需要走n+m-2步,左上角和右下角的元素不考虑在内,我们每次都可以选择向下走,向下走总共需要m-1步,所以在n+m-2步中选择m-1步,这是典型的排...

2018-07-25 20:21:36 257

原创 The 2018 ACM-ICPC China JiangSu Provincial Programming Contest G. Window

题目:https://nanti.jisuanke.com/t/28871题意:有一个长度为n的序列,长度为m的划窗,计算每个划窗内乘积的和。分析:注意不能用前缀积相除,因为可能不存在逆元。正解是把序列按长度m分成若干段,计算每段内的前缀积和后缀积,任意位置的乘积可以由一段前缀积和后缀积拼出,复杂度为O(n),细节见代码。代码:#pragma comment(linker, "/S...

2018-07-25 16:21:31 171

原创 The 2018 ACM-ICPC China JiangSu Provincial Programming Contest B. Array

题目:点击打开链接题意:问你1~n的所有排列中有多少种排列拥有k对逆序数。分析:学习了下节约内存的滚动数组法,数组下标在0,1之间来回滚动。方法一:f[i][j]代表长度为i的排列有j对逆序数的方案数,考虑放第i个数的时候,前面i−1个数的所有方案都已知,且都比i小,如果i放在前i−1个数的最左边,则会新产生i−1对逆序数,如果i放在前i−1个数的最右边,则不会产生逆序数。也就是说在前i...

2018-07-24 22:06:33 338

原创 拉格朗日插值法模板

最近多校碰到了有关拉格朗日插值法的题目,就系统学了下,具体解释在上一篇博客,下面给出模板。(以CF622F为例)模板代码:#pragma comment(linker, "/STACK:102400000,102400000")///手动扩栈#include<algorithm>#include<iostream>#include<cstdlib&gt...

2018-07-22 13:34:42 1243

原创 Codeforces 622 F. The Sum of the k-th Powers

题目:点击打开链接题意:求sigma(i : 1 to n)i^k。 分析:做这个题之前需要知道一些知识:拉格朗日插值:n-1次多项式可以用n个点唯一确定,插值公式是:对于这道题可以发现对于每一个k次幂的积都可以用一个k+1次幂的多项式表示,于是我们可以构造出k+2个点来拟合这个多项式.拉格朗日插值公式在这里就是:我们需要求的就是F(n),带入以后就是:然后就...

2018-07-22 13:30:30 434

原创 Codeforces 1006 F - Xor-Paths

题目:点击打开链接题意:问你从(1,1)到(n,m)异或和为 k 的路径有多少条?只能向右和向下走。分析:一般搜索复杂度为2^(n+m+2),折半搜索的复杂度为2^(n+m+2)/2*log2^(n+m+2)/2,用map记录路径异或和,从左上跑一半,右下跑一半。代码:#pragma comment(linker, "/STACK:102400000,102400000")//...

2018-07-18 11:15:37 204

原创 Codeforces 1005 F - Berland and the Shortest Paths

题目:点击打开链接题意:找出所有点到1点的最短距离的子图,且数量不超过k。分析:先bfs求出所有点到1点的最短距离,再判断这些点能否改变前驱最短距离保持不变,dfs找到它所能改变的所有前驱,并把连边保存下来,可以自己对照代码手动模拟一下。代码:#pragma comment(linker, "/STACK:102400000,102400000")///手动扩栈#include&...

2018-07-16 21:07:03 438

原创 Codeforces 1004D Sonya and Matrix

题目:点击打开链接题意:给你t个数字,要你组成一个n x m的矩阵,这个矩阵满足这样的条件 ①矩阵里面的元素到“0”这个元素的曼哈顿距离为元素值大小。曼哈顿距离:两个点坐标差的绝对值之和。现在问你的是输出n,m以及元素“0”的坐标(x,y);如果不存在这样的矩阵,输出“-1”。分析:由于这个东西具有对称性,每一种解都可以通过翻转将它变化出最多四种解。 我们仅考虑(x,y)(x,y)在靠近左边界或者...

2018-07-15 20:15:14 316

原创 Codeforces1005 E1 - Median on Segments (Permutations Edition)

题目:点击打开链接题意:给出一个1-n的排列,找出中位数为m的连续序列个数。分析:首先,可以知道答案序列一定存在m,所以可以以m为中心,先求前面(或者后面)大于m与小于等于m的数的个数之差,保存下来,然后记录后面(或者前面)大于m与小于等于m的数的个数之差,求出对应的使得序列中位数为m的数量。细节见代码。代码:#pragma comment(linker, "/STACK:102400000,10...

2018-07-15 19:50:01 321

原创 团体程序设计天梯赛-练习集 L3-021 神坛

题目:点击打开链接题意:给出n个点,求出面积最小的三角形。(n<=5000) 分析:以一个点为中心,其他点围绕这个点做一个极角排序,找出最小的三角形,三角形只能是这个点和相邻两个点组成的三角形,想象成太阳光发散的情形,这样总的复杂度为O(n^2*logn),比完全暴力优化了不少,细节见代码。代码: #pragma comment(linker, "/STACK:1024...

2018-07-15 09:59:06 1720

原创 牛客练习赛22 - C 简单瞎搞题

题目:点击打开链接题意:一共有 n个数,第 i 个数是 xi xi 可以取 [li , ri] 中任意的一个值。 设 ,求 S 种类数。 分析:首先想到用背包做,但是时间复杂度太高,后面参考了题解发现用bieset+位运算+背包的思想。题目给出的数据范围不大,最多不超过一百万种情况,可以用二进制中的1代表能凑成的数的值,开n个一百万的bitset,内存大概十多兆,不会超内...

2018-07-15 09:37:23 532

原创 CodeForces 997C Sky Full of Stars

题目:点击打开链接题意:给n*n个格子,每个格子可以填3种颜色。问有多少种填色方案,至少有一列或一行是同色的。分析:首先反过来考虑,找不幸运的组合,因为这样便于容斥。 要把列和行分开考虑。 首先排除掉列上出现相同的情况,也就是(3^n−3)^n种,这个也就是容斥里开始时最大的范围,显然还包括了一些行上相同的情况,所以下面开始容斥。 在列上不出现相同情况下,行出现相同的情况要分两类讨论, 1. 那些...

2018-07-14 21:09:59 342

原创 Codeforces 998D Roman Digits

题目:点击打开链接题意:I=1, V=5, X=10, L=50,n个位置可任意放4个数,n个数组成的值是每一位的值的和,要求最后代表的值不同的种类数。分析:看起来没有什么特别的算法能解决,只能暴力打表找规律了,我开始代码写的太搓了,用的set+dfs,复杂度(n^4*logn),只打出了前12个根本没找出规律,后面参考了下别人的代码,发现直接3个for循环暴力枚举每个数出现的次数就行了,复杂度为...

2018-07-05 16:27:56 394

原创 ZOJ 3471

题目:点击打开链接题意:题意是有n个原子,n的范围是1~10,每两个原子碰撞都会产生一定的能量,并且有一个原子会消失,问最后剩下一个原子的时候最多能产生多少能量。分析:状态压缩dp。对于有n个原子,在任何一个状态下,每个原子只有两种状态,要么就是已经被消灭,要么就是还余下来。我们用0表示某个原子还存在,用1表示某个原子被消灭了,这样我们就可以用0到2^n-1个数字来表示任何一种状态了。对于每一个状...

2018-07-05 13:40:00 210

转载 C++deque双端队列

 调用头文件: #include<deque> using namespace std;详细用法(部分):deque<Type> k;      ------      定义一个deque的变量(定义时已经初始化)      例如: deque<int> k;k.empty()      ------      查看是否为空范...

2018-07-04 22:07:57 577

原创 CodeForces 1003B Binary String Constructing

题目:点击打开链接题意:求一个含有a个0,b个1,x个相邻位置数字不相同的字符串。分析:构造题,暴力模拟。先用01交替,相邻不同的位置个数为x-1,然后把剩余的01放上去使得答案为x。第一个数可能是1,也可能是0,都要计算。代码写的太搓了,还被hack了。。。后面改进了下。代码:#pragma comment(linker, "/STACK:102400000,102400000")///手动扩栈...

2018-07-04 21:59:28 376

原创 CodeForces 1003D Coins and Queries

题目:点击打开链接题意:用最少的硬币凑钱,硬币值都是2的幂。分析:贪心。把每个数当成二进制数来考虑,从高位到低位贪心,开始还想着dp,后面发现贪心是正确的,开始以为贪心可能会凑不出。但是后面发现并不影响,以为高位可以由几个低位构成,比如 8 4 4 4 2 要凑成12,3个4肯定符合,但是从8开始贪心最少,8可以由多个4凑成。代码:#pragma comment(linker, "/STACK:1...

2018-07-04 21:00:00 244

原创 CodeForces 1003E Tree Constructing

题目:点击打开链接题意:构造一颗直径为d,度不超过k的树。分析:构造题。先把一条直径构造出来,然后确定每个直径上的点所能延伸的最大深度。代码:#pragma comment(linker, "/STACK:102400000,102400000")///手动扩栈#include<algorithm>#include<iostream>#include<cstdl...

2018-07-04 19:52:15 358

原创 基于链式前向星的有向图无向图的缩点模板(tarjan)

对于无向图的缩点:void tarjan(int u,int fa){ dfn[u]=low[u]=++times; q[++head]=u; for(int i=Laxt[u];i;i=Next[i]){ if(To[i]==fa) continue; if(!dfn[To[i]]) { tarjan(...

2018-07-03 11:37:45 1418 2

原创 CodeForces 1000E We Need More Bosses

题目:点击打开链接题意:一条路径上必经的边为关键边,现在让你找一条路径,使得其关键边最多,输出最多的数量。分析:(无向图缩点+图的重构+树的直径)如果一条路径上面有环,那么这个环的任意一条边都不是关键边。所以我们缩点,那么就算在一棵树上找最多的关键边,显然就是求直径。以前只学了有向图缩点的模板,现在发现其实无向图、有向图缩点差不多,无向图要防止回退到已经访问过的点。树的直径的求法大致如下,先任意找...

2018-07-03 11:31:54 339

转载 链式前向星教学

 链式前向星:这是一种存图结构,也被称为静态建表存图的方式,它是一种在时间和空间上最优的存图结构。无论是建图还是遍历图效率最高的存图的方式。数据结构:   struct Edgenode{ int to; int w; int next; }; int head[n]; EdgeNode Edges[m]; ...

2018-07-03 10:43:19 178

原创 Codeforces 1000D Yet Another Problem On a Subsequence

题目:点击打开链接题意:定义一个数列是“好的”:第一个数字a[0]为数列长度+1。定义一个数列的子序列是“好的”:这个子序列能分割成几个“好的”数列。给出一个数列,求“好的”子序列的数目。分析:定义dp[i]为以a[i]为开头的好序列数目,第一种情况很好求,第二种情况有点难想,应该从后往前遍历,先计算第一种情况,然后累加之后的情况。(dp[i]代表以i开始的符合要求的序列数,j是我们列举出的i...

2018-07-02 15:20:54 390 1

原创 CodeForces 1000C Covered Points Count

题目:点击打开链接点击打开链接题意:n个线段,问被这n个线段覆盖k次(k∈[1..n])的点的个数。 分析:把每个线段的起点终点分别存起来,起点标记为1,终点标记为-1,然后按照起点终点的位置排序。说不清,放个图吧。 比如 3 0 3 1 3 3 8 这组样例,排完序之后的顺序就是图中绿色的编号。 我们发现,1点的标记是1,二点的标记也是1,证明他们都是起点,一开始我们设一个计数变量,我们发现点被...

2018-07-02 14:59:10 182

原创 CodeForces 1000B Light It Up

题目:点击打开链接题意:有一盏灯,0时刻开着。n次操作,你可以在其中加入一次操作(或者不加),操作为:a[i]时刻按一下开关,状态变为相反状态(开->关or关->开)。问灯亮着的时长最长为多少? 保证a[i-1]<a[i]。 3 10 4 5 7 0~4开(时长为4-0),4~6关(时长为6-4),6~7开(时长为7-5),7~10关(时长为10-7) 我们可以在第3个时刻操作一...

2018-07-02 14:51:13 648

转载 CodeForces 981F Round Marriage(二分答案+贪心)

 F. Round Marriagetime limit per test:3 secondsmemory limit per test:256 megabytesinput:standard inputoutput:standard outputIt's marriage season in Ringland!Ringland has a form of a circ...

2018-07-01 11:18:10 368 1

acm训练体系

acm训练方案,从入门到精通,包括每个阶段该学的知识和对应知识点的题目,题目都是精心筛选过的,质量绝对有保证。

2019-05-07

acm知识思维导图

acm知识图谱,包括了acm竞赛设计的所有数据结构与算法,还有一些技巧和方法。

2019-05-07

音乐播放器

项目功能点: 1.从本地导入歌曲(单个文件导入或者文件夹批量导入)。 2.播放歌曲、暂停、停止、上一首、下一首、删除歌曲。 3.音量调节。 4.音乐进度调节。 5.歌词的展示,可以同步进度条的变化,呈现对应时间的歌词。 6.网上爬取歌词,如果本地存在歌词文件,直接使用本地文件,不存在则从网上爬取。 7.播放MV。 8.音乐分享。 9.音乐评论。 10.音乐收藏。 11.用户歌单。(保存到mysql) 12.后台播放。(隐藏到任务栏) 13.最近播放。 14.任意选择播放模式。(单曲循环、随机播放、列表循环) 15.登录注册。(正则验证)

2017-12-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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