自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 收藏
  • 关注

原创 Atcoder ABC172 F - Unfair Nim(NIM博弈+二进制运算)

题目链接:https://atcoder.jp/contests/abc172/tasks/abc172_f题意:给你nnn堆石子,每堆石子有a[i]a[i]a[i]个。现在两个人玩游戏,每次可以重一推石子中取走111个,222个,或者把这一堆石子全部取走。现在在游戏开始之前,你可以将第一堆中的若干(1−>a[1]−11->a[1]-11−>a[1]−1)个石子放到第二堆,问你最少放多少个可以保证后手必赢,如果不行的话,输出−1-1−1。思路:首先我们知道这是一个nimnimnim游戏

2020-09-04 17:11:42 468

原创 AtCoder ABC172 E - NEQ(组合数 + 容斥原理)

题目链接:https://atcoder.jp/contests/abc172/tasks/abc172_e题意:从mmm个数中选择分别选择nnn个数组合成两个序列A,BA,BA,B,满足Ai!=BiA_i != B_iAi​!=Bi​且每个序列都没有相同的数,问这样的序列一共有多少对。思路:首先,我们可以考虑从mmm个数里面选择nnn个数,一共可以组成多少个序列,答案就是AmnA_m^nAmn​,这样就相当于确定了AAA序列的个数。这样我们就可以知道BBB序列的个数就是从mmm个数里选择nnn个数,其

2020-09-04 14:36:09 644

原创 AtCoder ABC 176E - Bomber

题目链接:https://atcoder.jp/contests/abc176/tasks/abc176_e题意:给你一个H∗WH*WH∗W的矩阵,矩阵里有MMM个目标点,你要在这个个矩阵的任意位置(包括目标点)放一个炸弹,炸弹引爆后会摧毁炸弹同一行,同一列的所有目标点,问你最多可以炸几个目标点。思路:一个朴实无华的题目,但给你一个相当恶心的数据范围,emmm。所以这一题我们肯定不能“硬来”,得“智取”(doge)。从直观上想,我们肯定是要找到所有行里面目标点最多得行,和目标点最多得列,那在这个行,

2020-08-28 20:32:21 262

原创 2020HDU暑假多校第2场

题目地址:http://acm.hdu.edu.cn/search.php?field=problem&key=2020+Multi-University+Training+Contest+2&source=1&searchmode=source1001:Total Eclipse题意:给你nnn个点,mmm条边,点有点权。每次你最多可以选择kkk个相连的点,使得这些点的点权全部减1,问你最少经过几次操作可以将所有点的点权全部变成0。思路:首先我们考虑正像的做法,每次选取极大连

2020-07-26 22:57:14 182

原创 2020牛客暑假多校第5场

题目地址:https://ac.nowcoder.com/acm/contest/5670?&headNav=www#questionE:Bogo Sort题意:给你nnn个数,这是一个置换,问你1−n1-n1−n的全排列有多少个排列通过这个置换可以得到递增的序列。例(样例222的解释):样例222给你的置换是2 3 4 5 6 1意思是:每一次变换,a[]a[]a[]里的第一个数移到第二位,第二个数移到第三位,…第六个数移到第一位。所以,通过以上变换可以得到递增顺序的序列

2020-07-25 20:59:04 103

原创 nowcoder NC19427 换个角度思考(离线树状数组)

题目链接:https://ac.nowcoder.com/acm/problem/19427题意:给你nnn个数,mmm次查询,每次查询[l,r][l,r][l,r]范围内比xxx小的数的个数。思路:隔了两个月就把离线树状数组忘得一干二净啦这一题就是一道很典型得离线树状数组的题,我们可以把所有的数按从小到大排序,并将查询按xxx从小到大排序,之后就遍历每次查询,更新树状数组的直接好啦。AC...

2020-04-29 21:54:24 135

原创 Codeforces 1332C. K-Complete Word(思维)

题目链接:https://codeforces.ml/problemset/problem/1332/C题意:给你一个字符串sss,问你把他变成一个周期为kkk的周期回文字符串最少需要改变多少个字符。思路:一看到这种题目,我第一想法就是dpdpdp,然后,我就放弃啦。QAQQAQQAQ。看过题解才知道,原来就是一个暴力。哭唧唧因为这是一个周期回文字符串,那么每一个周期一定是一个回文串。所以...

2020-04-28 22:26:04 239

原创 nowcoder NC17137 - Removal(dp)

题目链接:https://ac.nowcoder.com/acm/problem/17137题意:给你nnn个数(1≤ai≤k1\le a_i \le k1≤ai​≤k),问你删掉mmm个数以后得到的不同的子序列的个数对1e9+71e9+71e9+7取模的结果。思路:首先我们可以考虑一个字问题:给你nnn个数(1≤ai≤k1\le a_i \le k1≤ai​≤k),问你删掉mmm个数以后...

2020-04-27 11:03:46 133

原创 nowcoder NC14301 K-th Number(尺取 + 二分)

题目链接:https://ac.nowcoder.com/acm/problem/14301题意:给你一个数组a[]a[]a[],问你a[]a[]a[]中所有长度大于等于kkk的子区间的第kkk大的数组成的新数组b[]b[]b[]中第mmm大的数。思路:看到题目我还以为是什么树形结构,看来其他dalaodalaodalao的解法才知道这个是二分。。。我们可以二分答案,之后我们要验证midmi...

2020-04-21 19:09:07 158

原创 AtCoder ABC 158 E - Divisible Substring(思维)

题目链接:https://atcoder.jp/contests/abc158/tasks/abc158_e题意:给你一个含nnn个数位的数,问你他有多少个子序列可以被ppp整除。思路:再见这题之前,我们先来证明一个引例。假设x1x2x3x4x5x_1x_2x_3x_4x_5x1​x2​x3​x4​x5​ % p==mp == mp==m && x1x2×103x_1x_2...

2020-04-16 12:18:45 405

原创 AtCoder ABC 162 E - Sum of gcd of Tuples (Hard)(思维)

题目链接:https://atcoder.jp/contests/abc162/tasks/abc162_e题意:给你两个正整数n,kn,kn,k,问你∑a[i]=1kgcd(a[1],a[2],...,a[n])%(1e9+7)\sum_{a[i]=1}^{k} gcd(a[1],a[2],...,a[n])\%(1e9+7)a[i]=1∑k​gcd(a[1],a[2],...,a[n])%(...

2020-04-15 14:25:26 317

原创 nowcoder NC14248 Treepath(思维 + DFS/BFS)

题目链接:https://ac.nowcoder.com/acm/problem/14248题意:给你一颗树,相邻结点间的距离为1,问你节点间距离为偶数的点对有多少对。思路:这一题我们可以先以任意一个节点作为根节点,跑一遍BFS/DFSBFS/DFSBFS/DFS,那我们就可以处理出所有点到根节点的距离。那我们可以想到:所有到根节点距离为奇数的点对之间的距离为偶数;所有到更节电距离为偶...

2020-04-15 11:02:44 104

原创 AtCoder ABC161 E - Yutori(思维)

题目链接:https://atcoder.jp/contests/abc161/tasks/abc161_e题意:给你一个包含nnn个字符的字符串,其中’o’表示这一天可以上班,'x’表示这一天不能上班。TakahashiTakahashiTakahashi想要在这nnn天里挑kkk天上班,并且TakahashiTakahashiTakahashi在工作一天之后要连续休息ccc天,问哪几天Tak...

2020-04-10 18:59:37 473

原创 nowcoder NC - 13611 树(dp || 数论)

题目链接:https://ac.nowcoder.com/acm/problem/13611题意:shy有一颗树,树有n个结点。有k种不同颜色的染料给树染色。一个染色方案是合法的,当且仅当对于所有相同颜色的点对(x,y),x到y的路径上的所有点的颜色都要与x和y相同。请统计方案数。思路:1、dpdpdp我们用dp[i][j]dp[i][j]dp[i][j]表示用jjj种颜色去染iii个结点...

2020-04-06 21:37:49 181

原创 nowcoder NC13221 数码(整除分块)

题目链接:https://ac.nowcoder.com/acm/problem/13221题意:给定两个整数lll和rrr ,对于所有满足1≤l≤x≤r≤1091 ≤ l ≤ x ≤ r ≤ 10^91≤l≤x≤r≤109的xxx ,把xxx 的所有约数全部写下来。对于每个写下来的数,只保留最高位的那个数码。求1~91~91~9每个数码出现的次数。思路:在讲这一题得写法之前,我们先要引入整...

2020-04-04 19:17:46 287 1

原创 Codeforces 1325 D - Ehab the Xorcist(思维 + 构造)

题目链接:https://codeforces.ml/contest/1325/problem/D题意:给你两个正整数uuu和vvv,让你找个正整数序列a[]a[]a[],使的a[1]+a[2]+...+a[n]=va[1]+a[2]+...+a[n] = va[1]+a[2]+...+a[n]=v且a[1]⨁a[2]⨁...⨁a[n]=ua[1]\bigoplus a[2]\bigoplus...

2020-03-16 12:01:57 146

原创 dp学习笔记(不定期更新)

引言:一直都想学dpdpdp,只是由于种种原因,一直都没有沉下心来好好的,系统的,认真的学一下,不过现在怎么开始学了呢?这得从一直蝙蝠讲起 。。。(以下省略一万字)由于dpdpdp的东西实在是太多啦,学起来也不是很好理解,每天学的东西也很有限,所以就专门用一个blogblogblog来记录先从现在开始学习的dpdpdp内容吧,包括dpdpdp经典模型,遇到的dpdpdp题目.........笔...

2020-03-11 22:55:08 267

原创 hdu 6092 Rikka with Subset(dp - 01背包求方案数)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6092题意:给你m+1m+1m+1个数,让你构造一个含nnn个数的正数列,是的这个数列的所有子集的和为iii的一共有b[ib[ib[i]个并输出字典序最小的方案。思路:首先这一题是要我们求字典序最小的方案数,那我们就是要找出构造的这个数列111的个数,222的个数。。。直到满nnn个数。所以,我们...

2020-03-10 15:01:23 115

原创 Codeforces 1316 C Primitive Primes(数论)

题目链接:https://codeforces.ml/contest/1316/problem/C题意:给你两个多项式f(x)和g(x),求f(x)* g(x)得系数不能被p整除的幂。思路:我们可以先找出f(x)中第一个不能被p整除的系数a[i],g(x)中第一个不能被p整除的系数b[j]。这样f(x)*g(x)中i+j的系数就是a[0] * b[i+j] + a[1] * b[i+j-1]...

2020-03-05 12:33:06 153

原创 Codeforces 1321D Navigation System(最短路 + 思维)

题目链接:https://codeforces.ml/contest/1321/problem/D题意:给你n个点,m条无向边,以及一条含n个点得路线。就像地图导航系统,每次在最短路出错就要重新导航,问最小得导航次数和最大得导航次数(最短路可能有多条)。思路:反向建边。之后用bfs找出终点a[k]到每个点得最短路。那样我们扫描整个路径,如果dis[a[i]] != dis[a[i+1]] + ...

2020-03-03 13:26:16 182

原创 2020.3.1 Codeforces 赛后补题&总结

比赛网址:https://codeforces.ml/contest/1321A:这一题我哭死啦!!!也怪我思考的不全面吧。刚开始因为读英文的时候本来就有点抵触,之后读题愣是花了很久。题意读懂之后,就差不多有思路啦。我已第一想到的是二分,因为这差不多是一个很正宗的二分的题啦,但我看了数据范围,我就差不多明白了,n的范围只有100,所以这一题直接枚举最大值就好啦,最大还能查过1000不成。但无奈...

2020-03-02 20:30:50 286

原创 AtCoder ABC153F - Silver Fox vs Monster(思维 + 二分 + 差分)

题目链接:https://atcoder.jp/contests/abc153/tasks/abc153_f题意:有n个怪兽站在一维数轴上的n个位置,每个怪兽都有自己的血量。你每次可以对[pos - D,pos+D]的所有怪兽的血量减A,问你最少需要使用多少次可以使的所有的怪兽的血量小于等于0.思路:刚看题意时是一点思路都没有的。。。后来在网上找了好多题解才看懂。这一题确实设计的挺巧妙的,不看...

2020-03-01 20:41:44 434

原创 离散化学习总结

离散化在算法竞赛中是一个很常用且非常好用的一个技巧,所以学习一下这个还是很有必要的。一、离散化:离散化指的是把大数化为小数,并且保持这几个数的相对大小不变。比如:原数是1 101 102,离散化之后就是1 2 3。二、离散化的实现:假设我们的数组是a[],并且在开一个辅助数组b[]。赋初值时b[i] = a[i]。之后我们对b数组进行排序。之后我们如何求a数组离散化之后的数呢?我们可以看到,其...

2020-03-01 15:42:27 167

原创 Codeforces 1315D Recommendations(并查集 + 贪心)

题目链接:https://codeforces.ml/contest/1315/problem/D题意:给你n个数,以及每个数+1的代价,问你让所有的数都不相同的最小代价。思路:首先考虑最简单的思路,每次我们让相同的数花费最小的+1,答案加上所需要的代价,这样一直处理到最后一个肯定可以出结果,但时间复杂度太大,会TLE。所以我们可以考虑用并查集去维护每个值所能达到的最大的位置,然后我们用 代价...

2020-02-29 20:58:29 107

原创 AtCoder ABC155 D - Pairs(二分 + 二分)

题目链接:https://atcoder.jp/contests/abc155/tasks/abc155_d题意:给你n个数,问两两相乘的第k大的数是多少。思路:这一题是个二分的好题。首先考虑二分答案,那我们check函数只需要判断找出这个mid是两两相乘第几大的数。那该如何判断呢?我们可以考虑二分判断,开始我们将所有数按大于等于0和小于0进行分类并排序,之后我们每次在大于等于0,小于0以及大...

2020-02-27 10:59:53 801

原创 Codeforces 1311F Moving Points(树状数组 + 离散化 + 思维)

题目链接:https://codeforces.ml/contest/1311/problem/F题意:在一维数轴上有n个点,每个点有一个速度,问这n个点在行驶过程中形成的最小的距离的和。思路:啊啊啊啊啊啊!!读错题啦,卡了一天。这一题时间可以是小数!!!就是说,任意两个点,要么会在某一时刻相遇,要么永远也不会相遇,所以答案就是那些永远也不会相遇的点的起始位置差的绝对值的和。那怎么判断两个点会...

2020-02-26 21:10:11 132

原创 CodeForces - 1313C2 Skyscrapers(单调栈)

题目链接:https://vjudge.net/problem/CodeForces-1313C2题意:给你n个数,每个数代表每个位置所能到达的最大值。现在让你构造出左边单调递增,右边单调递减且和最大的序列并输出。多种答案,输出其中任意一个就好。思路:首先考虑最暴力的解法,就是两层for循环直接暴力枚举每一个位置作为最大值的情况。但这一题5e5的数据范围肯定会超时,所以我们考虑一下其他的方法。...

2020-02-25 21:35:28 216

原创 hdu 4417 Super Mario(离线树状数组)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4417题意:给你n个数,m次查询,每次查询询问[l,r]区间内比小于等于h的数的个数。思路:这一题看网上大部分题解都说用线段树,划分树,主席树什么的,其实这一题也可以用树状数组来求解。相当于离线树状数组。我们先将所有的查询用结构体存起来,按照h从小到大排序。并且将初始的数和其对应的下标用结构体存起来...

2020-02-23 20:39:44 119

原创 AtCoder ABC 155 E - Payment(dp)

题目链接:https://atcoder.jp/contests/abc155/tasks题意:你去商店买了n(1 <= n <= 101,000,00010^{1,000,000}101,000,000)元钱的东西东西。然后你和店员都用10x10^{x}10x的货币,问你们两个一共加起来最少要用多少张货币可以把长结清。比如:36可以的方案:你付3张10块 + 6张1块,店员不用找...

2020-02-19 11:32:04 506

原创 Codeforces - 1291C Mind Control(思维)

题目链接:https://codeforces.com/contest/1291/problem/C题目描述:给你一个含n个数的数组,每个人按一定的顺序取走这个数组剩下的数的第一个或者最后一个,你是第m个去取数的,你可以控制k个人去第一个还是最后一个数,问你最后一定能取到的数的最大值(就相当于最小值的最大值)思路:这是一道很有意思的思维题。首先,因为控制m前面的m-1个人才有用,所以我们可以取...

2020-02-03 13:27:17 160

原创 RMQ学习笔记

一、RMQ:RMQ(Range Minimum/Maximun Query)指的是区间最值问题。即求多次查询区间最大值和最小值问题。一般常用的解决方法有:1、暴力:O(n ^ 2);2、ST表:预处理O(nlogn),单次查询O(1),空间O(nlogn);3、线段树:预处理O(nlogn),单次查询O(logn),空间O(n);4、笛卡尔树 + LCA:预处理O(n),查询O(1);...

2020-01-29 15:26:36 149

原创 poj - 3349 Snowflake Snow Snowflakes(Hash)

题目链接:http://poj.org/problem?id=3349题意:给你n片雪花,每一片雪花有6个花瓣,每个花瓣有一个值,两片雪花完全相同,当且仅当这两片雪花的六片花瓣循环左移或者循环右移后完全相同,最后问你有没有两片雪花是完全相同的。思路:hash,首先建立hash函数key = (a[0]+a[1]+a[2]+a[3]+a[4]+a[5])%prime。由于题目给的n的范围是1e5...

2020-01-26 11:28:12 164

原创 牛客练习赛54 - C 排序(逆序数)

题目链接:https://ac.nowcoder.com/acm/contest/1842/C题意:给你一个只含有’A’,‘T’,‘C’,'G’的字符串,问你将它所有相同字符串移到一起需要的最小次数。思路:因为字符串只有4个字符,所以我们可以考虑遍历1,2,3,4的全排列,每一次求出将题目给的字符串移动到当前的全排列所需要的最小次数,更新最小值就好。但如何求这个最小次数呢?众所周知,冒泡排序需...

2020-01-22 22:50:19 233 1

原创 树状数组学习笔记

本文是笔者学完树状数组后对树状数组进行的一个学习总结,如有纰漏或者错误之处,还望读者不吝指教,不胜感激!一、树状数组的概念:所谓树状数组(Binary Indexed Tree),从字面意思来讲,就是用数组来模拟树形结构。也就是说它可以将线性结构转化为树形结构,从而实现跳跃式的扫描。所以它一般应用于解决动态前缀和问题。二、树状数组一般可以解决的问题:树状数组可以解决大部分基于区间上的更新和...

2020-01-18 20:06:59 531

原创 AtCoder 147 D - Xor Sum 4(思维)

题目链接:https://atcoder.jp/contests/abc147/tasks/abc147_d题意:给你n个数,求这n个数两两异或的和思路:考虑异或的性质,相同为0,不同为1。所以我们可以考虑将每一位1的总数统计出来,那这一位对答案的贡献就是(n-a[j])*a[j]*2^j。AC代码:#include <ctime>#include <cmath&gt...

2019-12-28 22:14:38 215

原创 AtCoder AtCoder Beginner Contest 144 E(二分)

题目链接:https://atcoder.jp/contests/abc144/tasks/abc144_e题意:n个人去参加吃东西比赛,这个比赛有n种食物,就是说每个人要吃一种食物,且只能吃一种食物。每个人吃食物的时间为a*f,最终成绩就是所有人用的时间的最大值,而且题目还给了一个k,每次计算每个人用的时间时可以让(a-x)*f,并且要满足∑\sum_{}∑​x <= k问成绩的最小值...

2019-11-13 10:27:14 240

原创 AtCoder - NIKKEI Programming Contest 2019-2 - C Swaps

题目链接:https://atcoder.jp/contests/nikkei2019-2-qual/tasks/nikkei2019_2_qual_c题意:给你两个数列a和b,问能不能经过最多n-2次交换a中的元素是的任意的i,使得a[i] <= b[i]思路:首先,我们把a,b全都排序一遍,之后扫一遍,如果有a[i] > b[i]那一定是No,如果有a[i+1] <= b...

2019-11-10 15:03:46 152

原创 牛客-1114E 老瞎眼 pk 小鲜肉(思维 + 离线 + 线段树 - 维护区间最小值)

题目链接:https://ac.nowcoder.com/acm/contest/1114/E题意:给你n个数和Q次查询,每次查询问你区间[L,R]内使得a[l] ^ … ^ a[r] == 0的最小的区间长度。思路:看了好多博客才看懂的一道题。首先我们先预处理出对于每个i,离它最近的一个j,并用pre数组记录,及pre[i] = j,使得a[j] ^ … ^ a[i] == 0。至于如何通过...

2019-10-29 21:00:48 209

原创 Codeforces - 1236B Alice and the List of Presents(思维)

题目链接:https://codeforces.com/contest/1236/problem/B题意:给你n种礼物和m个盒子,每个礼物有无限个。现在要将礼物放进盒子里,遵循以下规则:(1)每个盒子里每种礼物最多只有一个,盒子可以为空;(2)每种礼物至少放一个。问一共有多少中方案数,答案对1e9 + 7取模。思路:(1)考虑一种礼物,m个盒子的情况(样例一),那样每个盒子要么放一个...

2019-10-22 20:33:16 124

原创 POJ - 2253 Frogger(Kruskal || Dijkstra)

题目链接:http://poj.org/problem?id=2253题意:找出从1到2的最短路上边权的最小值思路1:把所有的边预处理出来后,把边权从小到大排序,每次加一条边,等到把1和2连起来了,就得到边权的最大值啦,就和Kruskal求MST的步骤差不多。代码如下:#include<set>#include<cmath>#include<queue&g...

2019-10-12 20:54:48 85

空空如也

空空如也

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

TA关注的人

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