上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 25 下一页
摘要: 第一题 模拟送分。 #include<cstdio> #include<cstring> #include<cctype> #include<cmath> #include<algorithm> #define ll long long using namespace std; int read() 阅读全文
posted @ 2017-08-21 12:00 ONION_CYC 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 【题意】带修改的查询区间第k小 【算法】树状数组套可持久化线段树 【题解】对于树状数组上的每个节点,维护可持久化权值线段树(节点为权值),从而达到查询前缀和的目的。 对于每次修改,在待修改线段树基础上运用可持久化性质来修改,先删除原数字,再加入新数字。 注意记录修改后的原数字,方便后来删除。 ★注意 阅读全文
posted @ 2017-08-21 11:30 ONION_CYC 阅读(242) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2017-08-19 11:27 ONION_CYC 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 【算法】主席树 【题解】例题,记录和,数字出现超过一半就递归查找。 主席树见【算法】数据结构 #include<cstdio> #include<algorithm> #include<cstring> #include<cctype> using namespace std; int read() 阅读全文
posted @ 2017-08-17 21:46 ONION_CYC 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 【题意】给定n个节点的树,每个节点有一个m位二进制数,数字可以随时按位取反,每个数位有一个价值,定义每个点的最大价值是从根到这个点路上的数字(可以取反)或起来的数字中,1有价值0无价值,加起来得到的最大价值。 得到所有点的最大价值后,相邻点若同价值则断边,最后求长度为d的路径数量(边长1),d取遍0 阅读全文
posted @ 2017-08-15 08:59 ONION_CYC 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 【题意】给定大矩阵的边长H和W,给每格填数(<=|10^9|),要求大矩形总和为正数,而每个h*w的小矩形总和为负数,求构造方式。 【算法】数学 【题解】结论题。 ★当h|H&&w|W(H是w的倍数,W是w的倍数)时,每个小矩阵之和加起来翻倍刚好成为大矩阵,无解。 当不为倍数时,显然会有多余的行列, 阅读全文
posted @ 2017-08-14 16:53 ONION_CYC 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 【算法】数学+堆 【题意】给定n个数的排列,每次操作可以取两个数按序排在新序列的头部,求最小字典序。 【题解】 转化为每次找字典序最小的两个数按序排在尾部,则p1和p2的每次选择都必须满足:p1在当前序列的奇数位置,p2在当前序列的偶数位置且位于p1之后。满足条件的情况下每次找最小。 每次找到p1和 阅读全文
posted @ 2017-08-14 06:54 ONION_CYC 阅读(398) 评论(0) 推荐(1) 编辑
摘要: 第一题 题意:给定n*m网络,定义两个棋子在同行同列则相互攻击,同时要求两个棋子的行和列不能一小一大,求满足条件的最大摆放的方案数。 题解:ans=C(max(n,m),min(n,m)),就是在max中取min个数字的组合,组合内排序构成一种方案。 #include<cstdio> #includ 阅读全文
posted @ 2017-08-13 19:48 ONION_CYC 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 【算法】数论,二分图最大匹配 【题意】有无限张牌,给定n张面朝上的牌的坐标(N<=100),其它牌面朝下,每次操作可以选定一个>=3的素数p,并翻转连续p张牌,求最少操作次数使所有牌向下。 【题解】 1.定义bi,当ai和ai-1的朝向相同时,bi=0,否则bi=1。特别的,a0朝向下。 则问题转化 阅读全文
posted @ 2017-08-13 09:03 ONION_CYC 阅读(513) 评论(0) 推荐(2) 编辑
摘要: 第一题 题意:给定多组数据P,每次询问P进制下,有多少数字B满足条件:只要数位之和是B的倍数,该数字就是B的倍数。 题解:此题是参考10进制下3和9倍数的特殊性质。 对于10进制,ab=10*a+b=9*a+(a+b),所以9的约数都有此性质。 对于P进制,ab=p*a+b=(p-1)a+(a+b) 阅读全文
posted @ 2017-08-12 19:57 ONION_CYC 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 【题意】求DAG上最多的点使得互不可达。 【算法】floyd+最大匹配 【题解】 链是DAG上的一个点集,集合内的点相互单向可达。 反链是DAG上的一个点集,集合内的点相互不可达。 题目显然是求最长反链,转化为最小链覆盖。 最小链覆盖只要求可达,最小路径覆盖却要求相连。 所以floyd传递闭包(用f 阅读全文
posted @ 2017-08-12 19:19 ONION_CYC 阅读(425) 评论(1) 推荐(0) 编辑
摘要: 【关键字】偏序,数点,树状数组,线段树,扫描线。 因为涉及多种算法,所以整合到一起。 【扫描线】 二维数点,偏序 ★数点问题 ★关于偏序问题的一些总结 扫描线是一维离线的做法的统称,常用于解决k维偏序问题。 离线:将其中一维的询问排序后按顺序处理,从而实现按时间顺序处理的过程中可以O(1)统计空间上 阅读全文
posted @ 2017-08-12 11:11 ONION_CYC 阅读(949) 评论(0) 推荐(1) 编辑
摘要: 【算法】DP+线段树求区间max(二维偏序) 【题解】 状态转移方程:f[i]=max(f[j]+v[i]),x[j]<x[i]&&y[j]<y[i]。 观察j的条件限制显然是二维偏序求最大值,套路化地离散化后一维排序+一维线段树即可解决。 最后在f[i]中找max,所以不用恢复原序。 复杂度O(n 阅读全文
posted @ 2017-08-12 07:02 ONION_CYC 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 【算法】扫描线:差分+树状数组 【题意】转化模型后:求每个矩形覆盖多少点和每个点被多少矩形覆盖。n<=10^5。 【题解】经典的扫描线问题(二维偏序,二维数点)。 数点问题 将所有询问离线并离散化,然后按从上到下排序。 对于点被覆盖问题: 扫描线从上到下进行,遇到矩阵上边界维护区间加,遇到矩阵下边界 阅读全文
posted @ 2017-08-11 21:28 ONION_CYC 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 【题意】抽象模型后转化为:给定n个直线,ans+=C(x,4)*8,x为每个经过直线数>=4的点的直线数,不存在平行直线。 【算法】数学 【题解】 运用了一个很简单的道理:经过同一个点的线段互相相交。 O(n^3),枚举直线i和j相交,然后枚举后面直线判断是否过交点的条数x,将C(x,2)累加入答案 阅读全文
posted @ 2017-08-11 16:50 ONION_CYC 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 【算法】二分+贪心 【题意】转换模型后大概是:给定n,T,n个数字和n个坐标,自行选择一个起点,从起点往最近的数字跑一次往返拿回1,T为最长距离限制,求至多拿多少数字。 【题解】 比赛题解:http://vfleaking.blog.uoj.ac/blog/43 对于每个点从左到右,其能取的左右区间 阅读全文
posted @ 2017-08-11 16:08 ONION_CYC 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 【题意】给定长度为n的序列A,求最长的区间满足区间内存在数字能整除区间所有数字,同时求所有方案。n<=5*10^5,Ai<2^31。 【算法】数论??? 【题解】首先一个区间的基准数一定是最小的数字。 以一个数字为基准数,左右扩展到的区间内的数字都不能再作为基准数(不会超过此时的区间,为同一个)。 阅读全文
posted @ 2017-08-10 16:38 ONION_CYC 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 【题意】n个数划分成k段,每段的价值为段内不同数字的数量,求最大总价值 【算法】DP+线段树 【题解】 f[i][j]表示前i个数字划分成j段的最大价值。 f[i][j]=max(f[k][j-1]+value(k+1,j)),j-1<=k<i。 暴力复杂度O(n^3*k),预处理value后复杂度 阅读全文
posted @ 2017-08-10 14:38 ONION_CYC 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 【算法】trie树+xor路径 【题解】 套路1:统计从根到每个点的xor路径和,由于xor的自反性,两个点到根的xor路径和异或起来就得到两点间路径和。 然后问题就是找到n个值中异或值最大的两个值,考虑枚举每个数字,对于一个数找到与其异或和最大的数。 套路2:对所有数值二进制建01-trie,对于 阅读全文
posted @ 2017-08-09 19:31 ONION_CYC 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 【算法】折半搜索+数学计数 【题意】给定n个数(n<=20),定义一种方案为选择若干个数,这些数可以分成两个和相等的集合(不同划分方式算一种),求方案数(数字不同即方案不同)。 【题解】 考虑直接枚举集合的子集,再枚举子集的子集(划分方式),相当于将子集看成天平,枚举子集一些数置左,剩余数置右,则每 阅读全文
posted @ 2017-08-09 16:47 ONION_CYC 阅读(287) 评论(0) 推荐(0) 编辑
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 25 下一页