- 博客(169)
- 收藏
- 关注
原创 codeforces 1221 A B C D
传送门A 2048题意:multiset里面有许多2的幂,每次可以从multiset取出两个一样的数字,放回去两数之和,问能否出现2048.分析:优先队列模拟操作B knights题意:棋子可以走日字,将n*n的棋盘用W与B填满,代表两个阵营的棋子,使得可以互相攻击的点对数量最大。分析:大水题 解法一: bfs,在左上角先放一个棋子,然后在可以攻击到的地方放敌对棋子,...
2019-09-20 22:18:00
141
原创 codeforces 1220E
传送门题意:给定无向连通图和起点S,每个点有权值,求遍历无向图得到的最大权值和。但是不能走回头路,即如果从U走到V那么下一步不可以从V走到U。分析:将图分成两种组成,一种是环,一种是链。对于S所在的环,肯定可以遍历这个环回到S。对于其他的环,肯定可以走到这个环中,遍历这个环,然后原路返回。那么最优解就是首先遍历所有的环,连接这些环的链也可以被遍历到,然后选择一条最大的链走到尽头。...
2019-09-19 17:57:00
243
原创 线段树题集
Who Gets the Most Candies?POJ - 2886反素数 + 线段树题意:有n个人围成一圈,游戏的起点是k,每个人持有一个数字(非编号)num,每次当前的人退出圈,下一个人是他左边的第num个(也就是说下一个退出的是k+num, k可以为负数,表示右边的第num个), 现在一直如果一个人是第i个推出的,那么他的得分就是i的因数的个数,球得分最高的那个人的编...
2019-09-05 20:33:00
131
原创 The beautiful values of the palace(2019南京网络赛)
题目链接:https://nanti.jisuanke.com/t/41298题意:给一个n * n的螺旋矩阵,n保证是奇数,取一些点使其、获得价值,价值为数位和,然后再给q次查询,求矩阵中的价值总和题解:树状数组求解,将所有有价值的点和需要处理的有关于矩形的点都先记录下来,关于矩形价值总和的点,一个矩形有四个点。例如x1,y1,x2,y2的价值总和是Sx1,x1 - Sx1- 1,...
2019-09-02 19:39:00
109
原创 Count on a tree SPOJ - COT
题意:求树上A,B两点路径上第K小的数AT#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<cmath>#include<stack>#include<cstdlib>#incl...
2019-08-28 11:56:00
74
原创 2019杭电多校第一场 Operation HDU - 6579
题意:给出一个序列,两种操作,求区间[l,r]的区间最大异或和,和在末尾添加一个数思路:强制在线,保存每个线性基的数值,接下去直接去搜第r个线性基,但要保持时间比l要大,新增了一个pos数组代表一个数插入时的时间戳,插入的时候如果可以替换那么就用之后的替换之前的,保证线性基中都是最新的元素,可以直接插入即可以直接插入#include<cstdio>#include&l...
2019-08-27 09:56:00
75
原创 线性基的一些基础模版
大神博客:https://blog.youkuaiyun.com/a_forever_dream/article/details/83654397线性基三大性质1.原序列里面的任意一个数都可以由线性基里面的一些数异或得到2.线性基里面的任意一些数异或起来都不能得到03.线性基里面的数的个数唯一,并且在保持性质一的前提下,数的个数是最少的插入操作:void add(ll x){ ...
2019-08-26 21:59:00
74
原创 矩阵合集
极大全1矩阵悬线法:悬线的定义,就是一条竖线,这条竖线要满足上端点在整个矩形上边界或者是一个障碍点。然后以这条悬线进行左右移动,直到移至障碍点或者是矩阵边界,进而确定这条悬线所在的极大矩阵。一些定义:up[i][j]为矩阵上的点(i,j)向上的悬线长度lft[i][j]为矩阵上的点(i,j)向左扩展而不会碰到障碍点的长度rgt[i][j]为矩阵上的点(i,j)向右扩展而不会碰到...
2019-08-25 16:21:00
422
原创 LCA
A - How far away ?HDU - 2586题意:给出一棵树,树上的边有权值,查询两个点之间的最短权值和LCA倍增#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<cmath>...
2019-08-25 10:53:00
73
原创 扫描线
poj1151https://blog.youkuaiyun.com/xianpingping/article/details/83032798#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<cmath>#inclu...
2019-08-24 12:22:00
86
原创 codeforces contest
Codeforces Beta Round #1A.#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<cmath>#include<stack>#include<cstdlib>...
2019-08-22 14:47:00
383
原创 dp
codeforces 4D题意:给定n和信封和一个w 和 h,要求以下的信封选取最多的,然后 wi 必须比 w 大并递增,hi 比 h 大也递增,问最多的信封数和哪些,按照顺序输出题解:按照w递增排序后,求h的最长上升子序列并输出路径#include<cstdio>#include<iostream>#include<algorithm>...
2019-08-22 14:26:00
109
1
原创 2019杭电多校第九场 Rikka with Cake (hdu6681)
题意:给出一个n * m的蛋糕,切 k 刀,每次从一个点(x,y)向 上下左右的一个方向切,问最后蛋糕被切成了几块题解:显然,蛋糕的块数就是那么多线段的交点数 + 1。先离散,考虑向左切和向上切的,那么按照 y 的坐标递减排序,之后每一刀向上的切都是可以碰到之前向左切的线段的(如果之前的线段的x值比这刀向上的起点x大的话,图一话就很显然了)。之后向右切的和向上切的考虑的话,就是只要保证...
2019-08-19 23:05:00
118
2
原创 SG函数与例题
int sg[maxn];//sg[n] n表示每堆数量int s[k];//每次能取的值,下标从0开始,0 ~ k-1,必须有序,可以sort(s,s+k);bool vis[maxn];const int k;//k是集合s的大小 void get_sg(){ int i,j; for(i=0;i<maxn;i++) { m...
2019-08-18 12:14:00
271
1
原创 MooFest POJ - 1990
题意:n 头牛,每两头牛之间产生的价值是 max(a[i].v , a[j].v ) * |a[i].x - a[j].x|,问产生的总费用是多少题解:先将每头牛按照 v 的大小从小到大排序,那么就可以去掉一个绝对值并且只用当前的v的值去乘,之后用两个树状数组维护,一个树状数组维护比a[i].x小的牛有几头,另一个维护比a[i].x小的 x 的总和,之后 a[i].v * (sum1(...
2019-08-18 09:18:00
86
原创 The least round way CodeForces - 2B (DP 矩阵 路径)
题意:n * n的数字矩阵,只能向下走和向右走,要求走的数字的积的后面的0最少,求最少的0和路径之一题解:0 的情况2 种 2 * 5 和乘以 0,记录每个数字分解的2 和 5 的数量,从左上角到右下角使用dp跑出来分别最少的2 和 5,2 和 5个数中少的那个就是答案,如果矩阵中有0就看跑出来的答案是否大于1即可,用g[][][]数组记录路径,dfs输出路径#include&l...
2019-08-16 17:44:00
87
1
原创 2019 牛客多校第9场 B Quadratic equation(二次剩余)
题意:x + y = b(mod p)x * y = c(mod p)题目给出b,c ,p = 1e9 + 7,求解x y 要求(0≤x≤y<p),若没有可行解,输出-1 -1题解:x + y = b(mod p) 可得 (x + y) ^ 2 = (b * b)(mod p). 再可得 x ^ 2 - 2 * x * y + y ^ 2 = (b * b mod p ...
2019-08-16 13:52:00
94
原创 二次剩余
素数模的二次同余方程求解x * x = a(mod p) p为奇素数,输出 x 的可行解// 输入 a 和 mod ,满足式子 x * x = a(mod p) p为奇素数,输出 x 的可行解#include<cstdio>using namespace std;#define LL long longLL Pow(LL a,LL b,LL p) {...
2019-08-16 13:33:00
80
原创 计算几何板子
struct node{ double x,y;};node a,b,c;//求两个点之间的长度double len(node a,node b) { double tmp = sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y)); return tmp;}//给出三个点,求三角形的面...
2019-08-15 23:46:00
120
原创 Ancient Berland Circus CodeForces - 1C
题意:给定一个正多边形的三个顶点,求这个正多边形的最小面积。思路:首先,边数越小面积越小,所以只要确定出包含这三个顶点的边数最小的正多边形即可。这个三角形和正多边形外接同一个圆。所以先求出外接圆的半径,再求出三个圆心角,易得这个多边形的边所对应的圆心角可被这三个圆心角整除,所以三个圆心角的gcd就是多边形边所对的圆心角,然后2π除一下就得到是几边形,之后就可计算面积了海伦公式: p=...
2019-08-15 23:37:00
75
原创 B - Spreadsheets CodeForces - 1B
在一些知名的表格处理系统中(比如:excel表格),我们经常用大写的字母来表示列,例如A表示第1列,B表示第2列,第26列用Z来表示,同时第27列我们用AA来表示,第28列我们用AB来表示,第29列我们用AC来表示,AZ表示第52列,ZZ之后我们就需要用3个字母来表示列了。 行的表示比较简单,我们一般用正整数来表示,比如1就表示第1行,5就表示第5行,行和列一起表示成为类似BC2...
2019-08-15 22:06:00
94
原创 小技巧
//离散化数组 for (int i = 1; i <= n; i++) { scanf("%d", &a[i]); b[i] = a[i]; } sort(a + 1, a + 1 + n); int cnt = unique(a + 1, a + 1 + n) - a -...
2019-08-13 15:35:00
79
原创 树状数组详解与模版
单点更新void update(int x,int y,int n){ for(int i=x;i<=n;i+=lowbit(i))//x为更新的位置,y为加的数,n为数组最大值 c[i] += y;}区间查询(1 - x)int getsum(int x){ int ans = 0; for(int i=x;i;i-=...
2019-08-13 14:30:00
111
原创 HDU 6558 The Moon(概率dp)
题意:一个初始中奖率q=2%,每次玩一局游戏,如果游戏赢了就抽奖,没抽到就q+2,然后继续玩游戏,如果游戏输了就q+1.5。问玩的游戏局数的期望,并且中奖率最高为100%题解:初始中奖率为q%,输入的是游戏的获胜概率p%,dp[i]为获奖概率为 i 时的期望。因为q%最高为100%,所以初始状态为dp[100],但是因为如果游戏输了的话是p+1.5,而数组的下标是不能用小数的,所以我们...
2019-08-13 00:18:00
68
原创 J - Assign the task HDU - 3974 (线段树 + dfs序)
题意:给一颗树,两种操作,查询 i 结点的颜色,和将i结点和它的子树都染成另一种颜色题解:dfs序构建线段树,对于x和其子树染色就是 l[x] 和 r[x];dfs序线段树板子#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#includ...
2019-08-11 13:31:00
85
原创 Tunnel Warfare HDU - 1540 (线段树,区间合并)
题意:有n座房子,起初都是完好的,有m次操作,可以销毁i号房屋,可以重建最后一个销毁的房屋,可以查询i号房屋和几个房屋直接或间接相连。题解:假设 1 2 3 4 5 6 7 8 中3 和7 已经摧毁,现在查询5,那么就是1 - 5中最靠右的毁坏的是3,5 - 8 中最靠左毁坏的的是7,那么答案就是7 - 3 - 1 = 3,当然如果刚好查询的那个已经摧毁那么就不用- 1了,所以需要维护...
2019-08-09 23:58:00
73
原创 2019杭电多校 Snowy Smile hdu6638 (线段树最大子段和)
题意:散落一些点,有正负价值,框一个矩形,使得矩形中的价值总和最大题解:先把y离散化,之后x排序后依次插入点,枚举每一种不同的x坐标作为上边界,枚举下边界,线段树更新最大子段和#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include...
2019-08-08 10:32:00
100
原创 Count the Colors ZOJ - 1610
GO题意:给一个区间,有n次染色操作,每次将[x1, x2]染为c,求最后每种颜色各有多少线段可以看到。#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<cmath>#include<cstdlib&...
2019-08-07 23:22:00
58
原创 Mayor's posters POJ - 2528 (线段树 + 离散化)
Mayor's postersTime Limit:1000MSMemory Limit:65536KTotal Submissions:86160Accepted:24734DescriptionThe citizens of Bytetown, AB, could not stand that the candidates in the...
2019-07-30 23:12:00
94
原创 A Simple Problem with Integers POJ - 3468 区间更新,区间查询板子
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#include<cmath>#include<queue>#include<list>#includ...
2019-07-29 23:32:00
60
1
原创 Prime Independence LightOJ - 1356 (HK 最大独立集 板子)
题意:给你一组数,求一个最大的子集,要求任意两个的倍数都不是素数倍题解:将每一个数按照质因数奇偶分开,同为奇偶的肯定是合数倍,在奇偶中刚好是素数倍的建边,跑二分图最大独立集,n - 匹配数就是答案#include<cstdio>#include<iostream>#include<algorithm>#include<cstring&...
2019-07-28 18:53:00
146
原创 Network UVA - 315 (连通图求割点数)
#include <stdio.h>#include <algorithm>#include <iostream>#include <string.h>using namespace std;/** 求 无向图的割点和桥* 可以找出割点和桥,求删掉每个点后增加的连通块。* 需要注意重边的处理,可以先用矩阵存,再转邻...
2019-07-28 16:10:00
56
原创 Dining POJ - 3281(最大流)
DiningTime Limit:2000MSMemory Limit:65536KTotal Submissions:25452Accepted:11183DescriptionCows are such finicky eaters. Each cow has a preference for certain foods and dr...
2019-07-26 18:39:00
77
原创 poj - 3436 ACM Computer Factory(最大流+打印路径)
ACM Computer FactoryTime Limit:1000MSMemory Limit:65536KTotal Submissions:10687Accepted:3986Special JudgeDescriptionAs you know, all the computers used for ACM contest...
2019-07-25 00:58:00
108
原创 HZNU 2019 Summer training 11
A - PainterHDU - 5319题意:红色“\”这样画,蓝色"/"这样画,红加蓝为绿,问最少画几次题解:坑点,每一行的字符串的程度不一定是n,遍历后开始画访问标记搞搞就搞好了#include <iostream>#include <cstdio>#include <cmath>#include <cstring>...
2019-07-12 20:31:00
109
原创 HZNU 2019 Summer training 10
A - Complicated GCDCodeForces - 664A题意:a 到 b 的最大公约数是多少题解:a == b 答案即为 a,否则为1#include <iostream>#include <cstdio>#include <cmath>#include <cstring>#include <al...
2019-07-12 20:21:00
111
原创 HZNU 2019 Summer training 9
A - Vasya's CalendarCodeForces - 182B题意:计算调整钟表显示正确的日期的次数,这里只要求显示每月中的日即可。题解:月份刚好和钟表的一样不用调整,不然就调整差值次数#include <iostream>#include <cstdio>#include <cmath>#include <cst...
2019-07-12 20:02:00
122
原创 HZNU 2019 Summer training 8
A - Petya and OrigamiCodeForces - 1080A题意:制造一份邀请函需要2份a物品,5份b物品,8份c物品,一个盒子里面有k份物品(可以为a或b或c)问你制造n份邀请函需要用多少个盒子题解:加起来就行了#include <iostream>#include <cstdio>#include <cmath>...
2019-07-12 19:51:00
93
原创 HZNU 2019 Summer training 7
A - CoinsCodeForces - 1061A题意:需要几个硬币使得比S大题解:除一下向上取整#include <iostream>#include <cstdio>#include <cmath>#include <cstring>#include <algorithm>#include ...
2019-07-12 19:44:00
105
原创 HZNU 2019 Summer training 6
A - Infinite SequenceCodeForces - 622A题意:第一个数是1,接下来是1和2,接下来是1,2, 3,接下来是1,2,3, 4,问第n个数是什么题解:找出第几轮在找出第几个#include <iostream>#include <cstdio>#include <cmath>#include <...
2019-07-12 08:53:00
136
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人