ACM
文章平均质量分 90
一只咸鱼的ACM不打铁的梦
Sqwlly
有自己热爱的东西,真好。
展开
-
牛客国庆集训派对Day3 H Travel(连通块计数)
Travel题意:求对于n−1n-1n−1条边连通的nnn个城市进行mmm次旅游,每一座城市恰好旅行一次有多少种方案。(每次至少旅游一座城市)题解:求树分割成mmm块,然后全排列即可。即从n−1n-1n−1条边选择m−1m-1m−1条边进行分割,再对mmm个连通块全排列。C(n−1,m−1)⋅m!C(n-1,m-1)\cdot m!C(n−1,m−1)⋅m!代码#include<b...原创 2018-10-04 18:02:35 · 198 阅读 · 0 评论 -
牛客国庆集训派对Day3 I Metropolis(多源多汇最短路)
Metropolis题意:ppp个点mmm条无向边,对于这ppp个点,问距离其它点最近的距离。题解:首先,如果我们考虑最暴力的方法,ppp次单源最短路。但是ppp的大小有2e52e52e5,明显是不可能了。那就考虑多源最短路吧。将这ppp个点都加入队列作为源点。对于每一个节点,我们记录它是由哪一个源点扩展出来的。当从一个源点iii,扩展到另一个源点jjj扩展出来的一个节点uuu时,那么dis(...原创 2018-10-04 19:13:10 · 309 阅读 · 0 评论 -
牛客国庆集训派对Day4 I 连通块计数(排列组合)
连通块计数题意:有nnn条链和一个点作为中心组成的树,求非空连通子树数目。题解:包含中心的连通子树数目:∏i=1n(ai+1)\prod_{i=1}^n(a_i+1)∏i=1n(ai+1)(这里画个图就知道了)不包含中心的连通子树数目:∑i=1nC(ai+1,2)\sum_{i=1}^nC(a_i+1,2)∑i=1nC(ai+1,2)代码#include<bits/std...原创 2018-10-04 22:06:17 · 211 阅读 · 0 评论 -
牛客国庆集训派对Day7 K(2016ICPC青岛区域赛K) KDTree
Finding Hotels题意:对于mmm个客人询问对于每个人离他们最近且价格在自己可承受范围内的酒店是哪一个,一共有nnn个酒店。题解:裸KDTree,直接加一维价格,然后查找的时候记得比较酒店价格和客人的可接受价格。#include&amp;lt;bits/stdc++.h&amp;gt;typedef long long LL;using namespace std;const LL MAXN...原创 2018-10-07 23:54:36 · 274 阅读 · 0 评论 -
牛客国庆集训派对Day6 A Birthday(秦皇岛CCPC_CAMP)最小费用最大流
Birthday题解:本题…关键就在于建图。首先,从源点向每一根蜡烛建一条费用为000流量为111的边。其次,考虑将每个partpartpart拆成nnn个点,代表nnn个时间差,选择第iii个点的时候,就代表第插第iii根蜡烛与第i−1i-1i−1根蜡烛的时间差,因此就是1,3,5,7,9...1,3,5,7,9...1,3,5,7,9...即i2−(i−1)2i^2-(i-1)^2i2−(...原创 2018-10-08 01:20:57 · 203 阅读 · 0 评论 -
牛客国庆集训派对Day6 B(CCPC_CAMP)思维
Board题意:有一个n⋅mn\cdot mn⋅m的矩阵,每次可以给一行或一列加111,问被隐藏的格子的值。题解:这个题有一个很巧妙的思维,假设现在我们有aij,aik,axj,axka_{ij},a_{ik},a_{xj},a_{xk}aij,aik,axj,axk四个点,明显aij,ai,ka_{ij},a_{i,k}aij,ai,k是一行,axj,axka_{xj},a_{x...原创 2018-10-08 09:24:34 · 157 阅读 · 0 评论 -
牛客国庆集训派对Day5 B 电音之王(CCPC_CAMP) 黑科技-蒙哥马利快速乘
电音之王dls专卡Θ(1)\Theta(1)Θ(1)快速乘,orzzzzz,我只想说,dls牛逼!题解:蒙哥马利代码#include <bits/stdc++.h>using namespace std;#define rep(i,a,n) for (int i=a;i<n;i++)#define per(i,a,n) for (int i=n-1;i>=a;...原创 2018-10-08 18:31:54 · 386 阅读 · 0 评论 -
牛客国庆集训派对Day5 L数论之神(CCPC_CAMP)除法分块
数论之神题解:除法分块。如果是k≤nk\leq \sqrt nk≤n的话第二个数值就是⌊ak⌋\lfloor \frac{a}{k} \rfloor⌊ka⌋,否则就是n+1\sqrt n+1n+1对应的⌊ni⌋\lfloor \frac{n}{i} \rfloor⌊in⌋减掉kkk超过n\sqrt nn的部分然后在加上111。代码#include&lt;bits/stdc++.h...原创 2018-10-08 20:47:03 · 201 阅读 · 0 评论 -
BZOJ 1057 [ZJOI2007]棋盘制作 最大子矩阵(悬线法)
棋盘制作题解:伪dp+dp+dp+悬线法悬线法推荐一篇国家队的论文《极大化思想解决最大子矩阵问题》讲的真是明明白白…#include&lt;bits/stdc++.h&gt;using namespace std;const int N = 2001;int n,m,square,rectangle;int a[N][N], Left[N][N], Right[N][N], l[...原创 2018-10-15 22:08:52 · 185 阅读 · 0 评论 -
牛客多校第十场 D Rikka with Prefix Sum(组合数学)
Rikka with Prefix Sum题解: 这道题之所以不是线段树,是因为有操作222的存在,将数组AAA转变为了它的前缀和,而且每次操作都和前缀和有关。假设我们现在有一个数组a=[0,0,0,0,0]a=[0,0,0,0,0]a=[0,0,0,0,0],我们先考虑单点修改,起始我们给a[0]+1a[0]+1a[0]+1,我们做几次前缀和看一下。这里我们用ttt代表第几次做前缀和。t=1...原创 2018-10-17 16:05:54 · 259 阅读 · 0 评论 -
HDU 5521 Meeting(虚点建图)
Meeting题意:从111到nnn有mmm处具有sss个点的点集合,每个集合任意两点的距离为ttt,问两人同时分别从111和nnn出发,要相遇的最短的距离是多少并输出相遇点,如果有多个答案按升序输出。题解:真是又涨知识了…对于每个集合增加一个虚点,集合里的每个点向这个虚点建一条距离为t/2t/2t/2的边,这样就保持了原集合任意两点的距离不变。然后以111为源点跑一次最短路,以nnn为源点跑...原创 2018-10-18 22:37:28 · 211 阅读 · 0 评论 -
初识网络流(Ford-Fulkerson算法,Edmonds-Karp 最短增广路算法,Dinic 快速网络流算法)
今天!蒻终于知道了什么是网络流!! 对于一个源点和一个汇点,之间有许多条有一定容量的边,问单位时间内从源点到汇点最多可以流过多少流量。 就拿这张图来说,就是问从源点sss到汇点ttt单位时间内的最大流量。 那对于最大流问题,有什么解决方法呢?Ford-Fulkerson算法基本思想就是每次用dfsdfsdfs从源点开始搜索,直到汇点停止,这之间所经过的边中容量最小的一条边就是...原创 2018-08-01 01:37:41 · 1212 阅读 · 1 评论 -
HDU 5025 Saving Tang Monk(bfs+状压) 【openjudge】
Saving Tang Monk问题分析本题就是属于拿钥匙去开门的bfsbfsbfs类题目。 题意:孙悟空必须拿到nnn个钥匙才能救出唐僧,但是期间如果遇到蛇怪需要多花一分钟去打败她们,并且在拿到第iii个钥匙之前必须先拿到第i−1i−1i-1个钥匙,问最少的花费时间。这题就麻烦在三个地方, 一、同种钥匙可能有多个,拿完钥匙的地方仍然可以走,所以需要加一维钥匙的状态来判重。 ...原创 2018-08-03 01:11:12 · 687 阅读 · 0 评论 -
关于欧拉定理的一些知识
欧拉定理aφ(n)≡1(modn),gcd(a,n)=1aφ(n)≡1(modn),gcd(a,n)=1a^{\varphi(n)}\equiv 1(mod\:n),\:gcd(a,n)=1 对于正整数nnn,代表小于等于nnn的与nnn互质的数的个数,记作φ(n)φ(n)\varphi(n)。 比如φ(6)=2φ(6)=2\varphi(6)=2,因为与666互质并且小于等于666的正整...原创 2018-08-07 12:59:05 · 810 阅读 · 0 评论 -
牛客多校第四场 A-Ternary String(欧拉降幂)
Ternary String问题分析题意:问多长时间后可以将整个序列完全消除,每秒序列会在111后面插入一个000,在222后面插入一个111,作为序列的第一个数字将会消失。最后答案对1e9+71e9+71e9+7取模。 emmm,通过打表就可以发现 假设现有一个长度为nnn的序列, 每次序列插入一个000后,我们需要n+1n+1n+1秒才能将这个序列消除; 每次序列插入一个1...原创 2018-08-08 22:27:48 · 322 阅读 · 8 评论 -
牛客多校第七场 A-Minimum Cost Perfect Matching(按位取反)
Minimum Cost Perfect Matching问题分析求一个0→n−10→n−10\to n-1的排列满足使得i&amp;amp;amp;a[i]i&amp;amp;amp;a[i]i\:\&amp;amp;\:a[i]之和最小。 那么我们考虑对每一位按位取反就可以了呀~#include&amp;amp;lt;cstdio&amp;amp;gt;int a[500000];int main(原创 2018-08-09 22:19:08 · 327 阅读 · 0 评论 -
牛客多校第四场 J-Hash Function ((线段树|并查集)+拓扑排序)
Hash Function题意:给出一个hashhashhash表,求字典序最小的合法插入序列,如果不合法输出−1−1-1,如果为空表输出空行。我们已知已经插入完成的hashhashhash表,那么我们能得出的信息有什么呢?我们知道一个数的值vvv和它所在的位置jjj,还知道它的插入方式。所以,如果一个数xxx不在x%nx%nx\%n的话,那么说明从x%n→j−1x%n→j−1x\%n\t...原创 2018-08-14 22:19:28 · 322 阅读 · 1 评论 -
牛客多校第八场 G-Counting regions(组合数学+几何欧拉公式)
Counting regions这道题呢,其实是一道组合数学的题,再加上欧拉公式。题意:问边数为奇数的正多边形所有的顶点两两相连,直线所分割的区域数量为多少,答案对1e9+71e9+71e9+7取模。我们会发现题目中的图形,除了顶点是不会有三线交于一点的。所以分割区域的区域数量就只取决于点的数量。现在我们未知: 1.1.1.\:一共有多少条直线? 2.2.2.\:这些直线在正多...原创 2018-08-15 16:14:06 · 514 阅读 · 0 评论 -
牛客多校第九场 A (fwt-异或卷积)
Circulant Matrix题目描述Niuniu has recently learned how to use Gaussian elimination to solve systems of linear equations. Given n and a[i], where n is a power of 2, let’s consider an n x n matrix A...原创 2018-08-24 23:45:07 · 773 阅读 · 0 评论 -
2018ccpc网络预选赛1010(hdu6441) 费马大定理
Find Integer问题分析题意:已知an+bn=cnan+bn=cna^n+b^n=c^n,给出nnn和aaa,求bbb,ccc,如果无解输出−1−1-1。 费马大定理 1. an+bn=cnan+bn=cna^n+b^n=c^n,n>2n>2n>2时无解。 2. 当aaa为奇数时, a=2⋅k+1a=2⋅k+1a = 2 \cdot k + 1c=k2+...原创 2018-08-26 15:15:25 · 296 阅读 · 0 评论 -
2018CCPC网络预选赛1001(hdu6348) 贪心+优先队列
Buy and Resell问题分析题意:有nnn个村庄,每经过一个村庄你有以下三个选择 1. 买能量块 2. 卖能量块 3. 什么也不做 求最后可以获得的最大利润,并且尽可能减少交易次数。我们可以准着低买高卖的原则,用一个小顶堆维护我们交易过的能量块。 只要当前能量块iii的价格高于我们之前买来的能量块jjj的价格,我们就可以将其卖出去,并且一定是获利的,但是这样做...原创 2018-08-26 19:19:57 · 463 阅读 · 0 评论 -
2018CCPC网络预选赛1010(hdu6447) dp+树状数组+离散化
YJJ’s Salesman问题分析题意:从(0,0)(0,0)(0,0)到(109,109)(109,109)(10^9,10^9),每次只能往(x+1,y),(x+1,y+1),(x,y+1)(x+1,y),(x+1,y+1),(x,y+1)(x+1,y),(x+1,y+1),(x,y+1)三个方向走,期间有nnn个村庄,只有当从(x−1,y−1)(x−1,y−1)(x-1,y-1...原创 2018-08-27 10:53:04 · 313 阅读 · 0 评论 -
bzoj 2299 向量(裴蜀定理)
向量描述给你一对数a,b,你可以任意使用(a,b),(a,−b),(−a,b),(−a,−b),(b,a),(b,−a),(−b,a),(−b,−a)(a,b),(a,−b),(−a,b),(−a,−b),(b,a),(b,−a),(−b,a),(−b,−a)(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些...原创 2018-08-28 13:56:45 · 186 阅读 · 0 评论 -
bzoj 2257 瓶子和燃料(裴蜀定理)
瓶子和燃料描述jyy就一直想着尽快回地球,可惜他飞船的燃料不够了。 有一天他又去向火星人要燃料,这次火星人答应了,要jyy用飞船上的瓶子来换。jyy 的飞船上共有 N个瓶子(1<=N<=1000) ,经过协商,火星人只要其中的K 个 。 jyy 将 K个瓶子交给火星人之后,火星人用它们装一些燃料给 jyy。所有的瓶子都没有刻度,只 在瓶口标注了容量,第i个瓶子的容...原创 2018-08-28 15:04:46 · 216 阅读 · 0 评论 -
2018CCPC网络预选赛1007(hdu6444) 单调队列
Neko’s loop问题分析题意:给一个元素个数为nnn的环,选定任意一个起点iii后,每次可以往前跳(i+k)%n(i+k)%n(i+k)\%n,然后会相应得到aiaia_i的收益,问跳mmm次后总收益可以达到sss(可以提前停止),在开始之前至少需要身上需要有多少收益。显然这样选定一个起点后不断往前跳,所获得的aiaia_i会形成一个环。那么我们就可以把所有环找出来,通过枚举...原创 2018-08-30 14:07:01 · 305 阅读 · 0 评论 -
ACM-ICPC 2018 南京赛区网络预赛 L Magical Girl Haze(分层图最短路)
Magical Girl Haze问题分析题意:最多可以将mmm条边中的kkk条边的权值变为000,问111到nnn的最短距离。 题解:首先建立k+1k+1k+1层相同的图,其中kkk个间隔代表kkk次机会,将对于每一条边(u,v)(u,v)(u,v),我们从当前层往底层建立一条权值为000的单向边(单向边保证不会返回上一层)。然后跑多一维的dijkstradijkstradijks...原创 2018-09-01 23:43:33 · 264 阅读 · 0 评论 -
ACM-ICPC 2018 南京赛区网络预赛 J Sum(欧拉线性筛+思维)
Sum问题分析题意:我们将类似于6=2⋅36=2⋅36 = 2\cdot 3这样的数称为asquare−freeintegerasquare−freeintegera\:square-free\:integer ,而12=22⋅312=22⋅312 = 2^2 \cdot 3这样的就不是,因为有平方因子。但是666还可以被拆分成6=1⋅6=3⋅2=6⋅16=1⋅6=3⋅2=6⋅16=1...原创 2018-09-02 14:38:08 · 707 阅读 · 0 评论 -
牛客练习赛21 B-黑妹的游戏II
题意有一个n*m的棋盘,每格子有非负分数,黑妹先手,每次只能下上一个人选择的方格的右方或者下方,黑妹和黑弟都在知道最优策略的情况下,从左上角开始到右下角结束,求黑妹最后获得的分数减去黑弟的分数差是多少。问题分析我们由黑妹先手可得,黑妹一定可以获得左上角和右下角的分数,我们采用逆向dp的思路。 dp[i][j]=min(dp[i][j],−dp[i][j]+a[i][j])dp[i][...原创 2018-06-30 23:17:18 · 341 阅读 · 0 评论 -
HDU 2048(错排公式)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2048问题分析nnn个人全没有中奖的概率 -> 发生这种情况的所有可能性/情况总数 我们来想一想全部错排该怎么求。 假设前n−1n−1n-1个人都完成了错排,那么第nnn个人可以和这n−1n−1n-1个人任意一个互换,那么就完成了全部错排,此时方法数为(n−1)f(n−1)(n−...原创 2018-07-04 10:24:20 · 303 阅读 · 0 评论 -
BAPC 2014 Preliminary B
Failing Components问题分析基本算是裸的dijkstra了,但必须优化一下,这里蒻用的邻接表优化的。求出源点到其他顶点的最短路之后,再从中找出源点到其他顶点的相对最长路径,就是最后所有组件坏掉之前所经过的时间,从源点到其他顶点路径长度比这段路径短的顶点个数就是最后坏掉的组件。#include <cstdio>#include <iostream>...原创 2018-07-07 21:29:34 · 328 阅读 · 0 评论 -
BAPC 2014 Preliminary A
Choosing Ice Cream问题分析求一个最小的ii\,i\,满足kimodn=0kimodn=0k^{i}\:mod\:n = 0 因为数据最大只有1e91e9\,1e9\,,所以我们用快速幂,每次最多枚举29次就够了。#include &lt;cstdio&gt;#include &lt;iostream&gt;#include &lt;algorithm&gt;...原创 2018-07-07 22:33:24 · 316 阅读 · 0 评论 -
BAPC 2014 Preliminary D
Lift Problems问题分析题意就是每次电梯停止,都会引起想要在更高层停的同学的怒火,还有本想要在更低层停却并没有停的同学的怒火。 蒻当时想了会,感觉是dp,但是这道题有不同做法,dp的O(N2)O(N2)O(N^2)做法只是其中一种。虽然有O(N)O(N)O(N)的做法,但是蒻不太会,所以只提及dp的做法。 做dp想出状态方程就好做了。 到当前第ii\:i\:层电梯停止至...原创 2018-07-08 21:12:10 · 286 阅读 · 0 评论 -
Benelux Algorithm Programming Contest 2014 Final I Interesting Integers(扩展欧里几得)
Interesting Integers问题分析我们稍微列一下式子就可以发现 aF(k−1)+bF(k−2)=naF(k−1)+bF(k−2)=na F(k-1) + bF(k-2) = n 因此,最笨的办法就是直接枚举a和b,这里nnn最大只有1e91e91e9,所以可以刚好卡过,但是不要傻傻的枚举,需要优化一下式子,去掉一层forforfor#include&lt;iost...原创 2018-07-15 16:24:09 · 170 阅读 · 0 评论 -
Benelux Algorithm Programming Contest 2014 Final B Button Bashing(BFS)
Button Bashing问题分析以每一刻的时间为节点构建一张图,对于每个节点,用按钮加边,然后BFSBFSBFS或者dijkstradijkstradijkstra找最短路径就可以了。#include &lt;bits/stdc++.h&gt;using namespace std;int t,n,cook, vis[4000], a[17], presses[40...原创 2018-07-15 21:24:49 · 233 阅读 · 1 评论 -
牛客多校第一场 J-Different Integers
J-Different Integers 问题分析第一次知道了是什么是离线+树状数组….. 首先题意就是要找两段区间里的不同数的个数。我们记1−n1−n1-n之间不同的个数为totaltotaltotal。 对于若干个区间,我们对这些区间的右端点从小到大排序。 考虑去求(l,r)(l,r)(l,r)不同数字的的个数,假设r=last[x]r=last[x]r=last[x],那么...原创 2018-07-23 21:29:19 · 308 阅读 · 1 评论 -
POJ 1611(基础并查集)
The Suspects问题分析基础并查集,就是加了个人数统计。#include <cstdio>using namespace std;const int N = 3e4+3;int n,m,k, total[N], f[N], father, son;int GetF(int v){ if(f[v]==v){ return...原创 2018-07-27 18:47:58 · 397 阅读 · 0 评论 -
牛客多校第四场 D Another Distinct Values
Another Distinct Values问题分析首先可以打表找规律,其次可以自己构出矩阵。 看了好多大佬的方法都是自己找规律手动构图Orz 其中一种就是根据已给出的n=2n=2n=2的矩阵往出构造n=4n=4n=4的矩阵(打表的话可以发现nnn为奇数时是无解的,证明略(主要不会hhh))。当边长增加2时,我们将前一个矩阵放在中间,然后依次往边上赋值,但是要保证上下和左右抵消掉(比...原创 2018-07-29 00:30:15 · 293 阅读 · 0 评论 -
openjudge 海贼王之伟大航路(状压dp)
问题分析我们去考虑如何设计一个状态,才能满足无后效性和最优子结构呢? 如果我们从一维去想,用dp[v]dp[v]dp[v]表示终点为vvv时花费的最小时间是多少,那么明显是不够的,因为它无法保证你是否访问节点的时候会重复,然鹅题目要求恰好每一个节点只访问一次。所以,我们去加一维集合状态去约束它。用dp[S][v]dp[S][v]dp[S][v]来表示恰好已经无重复访问节点集合SSS并且终点为...原创 2018-07-29 01:42:08 · 355 阅读 · 0 评论 -
牛客多校第四场 G Maximum Mode
Maximum Mode问题分析题意就是问你能否精确的删除mmm个数,使得数列中的众数只有一个并且保证值最大化。 如果数列中众数不止一个,那么我们去考虑对于出现次数相同的数,最少删除几个数可以使得它变为众数,我们设这个最少的删除数为minDeleteminDeleteminDelete,如果此时minDelete<=mminDelete<=mminDeletem−minDel...原创 2018-07-29 18:36:28 · 236 阅读 · 1 评论 -
牛客多校第四场 F Beautiful Garden
Beautiful Garden问题分析问,在保证花园对称的情况下,在花园中央(不能涉及边界)建造对称水池的方案数。 假设矩阵上下左右是完全对称的,大小为n×mn×mn\times m,那么方案数由乘法原理不难推出是ans=n−12×m−12ans=n−12×m−12ans = \frac{n-1}{2}\times \frac{m-1}{2}。因为是上下左右对称的,所以我们只需...原创 2018-07-29 19:13:36 · 217 阅读 · 0 评论