自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Nengry的博客

路虽远行则将至,事虽难做则必成。

  • 博客(23)
  • 收藏
  • 关注

原创 POJ 1654 Area (多边形面积 鞋带定理)

Area题意从原点(0, 0)开始,向 8 个方向画线段,线段的起终点均为整点,问围成的多边形面积。思路任意一个多边形的面积等于按顺序求相邻两个点与原点组成的向量的叉积之和(这个也可以通过顺时针定积分求得)。代码#include<iostream>#include<algorithm>#include<cstdio>#include<cstdlib>#define ll long long#define fi first#define

2020-07-19 09:13:28 619

原创 【nowcoder】珂朵莉的数列 (树状数组 逆序对)

珂朵莉的数列题意珂朵莉给了你一个序列,有n×(n+1)2\frac{n\times(n+1)}22n×(n+1)​个子区间,求出她们各自的逆序对个数,然后加起来输出。思路对于一个逆序对(l,r)而言,它属于(n−r+1)∗l(n-r+1)*l(n−r+1)∗l个区间,理由如下,在这个逆序对左边有l-1个数,右边有n-r个数,它所属的区间可以有它左右各选取0个或多个数组成,因此它所属于的区间数为(n−r+1)∗l(n-r+1)*l(n−r+1)∗l 。对序列中的每个数记录它的位置为ididid,如果

2020-06-07 17:12:01 363

原创 Codeforces Round #646 (Div. 2) A. Odd Selection (数学 思维)

A. Odd Selection题意判断是否能从 n 个数中选 m 个数,使其加起来为奇数。思路至少要有一个奇数,否则不可能。选了一个奇数之后,后面的 m-1 个数加起来应该为偶数。此时相当于从n-1个数中选m-1个数,使其加起来为偶数。向后面的 m-1 个数中加入成对的奇数或者单个偶数即可。加入奇数对时要注意m的奇偶性。代码#include<bits/stdc++.h>using namespace std;int t;int main(){ cin &

2020-06-01 14:45:53 291

原创 Codeforces Round #646 (Div. 2) B. Subsequence Hate (前缀和 思维)

B. Subsequence Hate题意给定一个 01 串,可以将 01 串中的 0 变为 1、1 变为 0,问至少需要变换多少次使得 01 串中不含有子序列 010 或 101 。思路不含有子序列 010 或 101 的字符串只有两种情况:00000000000001111111111111111000000000即:连续的 0 +连续的 1 或者 连续的 1 + 连续的 0统计将前 i 位都变成 0 或 1 所需要的操作次数,枚举 01 串中 0 的个数和 10 串中 1 的个数,

2020-06-01 14:13:25 414 1

原创 Codeforces Round #646 (Div. 2) E. Tree Shuffling (树上dfs统计)

E. Tree Shuffling题意有一棵 n 个结点,根为结点 1 的树,每个结点有一个选取代价 aia_iai​,当前 bib_ibi​(0或1),目标数字 cic_ici​(0或1) 。每次可以选择以一个结点为根节点的子树中的 k 个结点,然后任意分配它们的 bib_ibi​,消耗的代价为 k×arootk×a_{root}k×aroot​ ,判断能否把所有结点都变为目标数字以及最小代价是多少。思路如果 b 中 1 的个数和 c 中 1 的个数不相同,那么肯定不可以,否则一定可行。对于任意

2020-06-01 13:41:01 287

原创 Codeforces Round #644 (Div. 3) F. Spy-string (暴力)

F. Spy-string题意给定n个长度为m的字符串,找出一个长度也为m的字符串t,使得字符串 t 与给定的 n 个字符串中的每一个最多只有一个字符不同。答案不存在,输出-1,否则输出t。思路如果答案存在,那根据题意,t与给定的任一个字符串最多只有一个字符不同,那么我们对给定的第一个字符串进行修改,每次只改一个字符,对所有的字符串判断是否满足条件,满足则找到。代码#include <bits/stdc++.h>using namespace std;int t;int

2020-05-25 16:42:50 294

原创 Codeforces Round #644 (Div. 3) G. A/B Matrix (矩阵构造)

G. A/B Matrix题意找出一个 n*m 的矩阵,要求每一行严格存在 a 个 1,每一列严格存在 b 个 1,其余部分均为 0。思路矩阵中必须有n∗a=m∗bn*a=m*bn∗a=m∗b个1,否则不能满足题意。考虑每一行,每一行我们都要输出a个1,以及这一行剩下的0,让输出的1连续,下一行首个1的列位置接在上一行最后一个1的那一列之后。代码#include <bits/stdc++.h>using namespace std;int t;int n,m,a,b;

2020-05-25 14:26:48 449

原创 Codeforces Round #642 (Div. 3) F. Decreasing Heights (dp)

F. Decreasing Heights题意给定一个n*m的地图,地图中每一个格子都有一个高度,要你从[1,1]走到[n,m],你只能向下或者向右走,同时,你要去的那个格子里的高度必须比当前格子的高度高1。你可以在走之前执行任意数量的一种操作:选择任意一个格子,使它的高度减一。问从[1,1]走到[n,m]所需执行的最少操作次数是多少。思路如果我们能确定[1,1]处的值,那么直接dp就好,关键在于[1,1]处的值是变化的,所以我们想办法枚举[1,1]处的值。如果我们令[1,1]处的值为0,假设任一

2020-05-16 09:21:13 479 1

原创 Codeforces Round #642 (Div. 3) E. K-periodic Garland (dp or 贪心)

E. K-periodic Garland题意给定一个01串,要求这个串中所有两个相邻1之间的距离必须为k(r−l==k)k(r-l==k)k(r−l==k),求最少的操作次数。思路1定义dp[i][0]为前i个合法,并且第i个为0时的最少操作次数。定义dp[i][1]为前i个合法,并且第i个为1时的最少操作次数。那么有,dp[i][0]=min(dp[i−1][0],dp[i−1][1])+(s[i]==′1′)dp[i][0] = min(dp[i-1][0],dp[i-1][1])+(s

2020-05-15 14:50:13 524

原创 Codeforces Round #636 (Div. 3) D Constant Palindrome Sum【1343D】 (前缀和)

Constant Palindrome Sum题意

2020-04-22 23:50:18 178

原创 洛谷 P2622 关灯问题II (状态压缩动态规划)

P2622 关灯问题II题意给定n盏灯,以及m个按钮。每个按钮可以同时控制这n盏灯,按下了第i个按钮,对于所有的灯都会有一个效果。按下i按钮对于第j盏灯,是下面3中效果之一:如果a[i][j]为1,那么当这盏灯开了的时候,把它关上,否则不管;如果为-1的话,当这盏灯是关的,把它打开,否则也不管;如果是0,无论这灯是否开,都不管。现在这些灯都是开的,给出所有开关对所有灯的控制效果,求问最少要按...

2020-04-20 14:55:09 420

原创 洛谷 P2440 木材加工 (二分答案)

P2440 木材加工题意给定N个木头及其长度,要求把这些木头切割成M块长度相同的小段木头(木头有可能有剩余),求小段木头的最大值。比如:有两木头长度为 11 和 21, 要求切成 6 块, 那么每块最长就为 5。1≤N≤100000,1≤M≤1000000001 ≤ N ≤ 100000,1 ≤ M ≤ 1000000001≤N≤100000,1≤M≤100000000原木长度:1到10...

2020-04-12 22:50:52 1496 1

原创 洛谷 P1024 一元三次方程求解 (暴力 or 二分 or 盛金公式)

P1024 一元三次方程求解题意有形如:ax3+bx2+cx+d=0ax^3+bx^2+cx+d=0ax3+bx2+cx+d=0 这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,da,b,c,da,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在−100至100之间),且根与根之差的绝对值 ≥1≥1≥1。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),...

2020-04-10 22:32:02 760

原创 Codeforces Round #632 (Div. 2) B Kind Anton 【1333B】(思维题)

Kind Anton题意给定一个数组 a ,a 中只含有 {-1,0,1} 这三个数,可以执行以下操作:选一个(i,j)(i,j)(i,j),1≤i<j≤n1≤i<j≤n1≤i<j≤n,可以被选多次将 a[j]a[j]a[j] 变为 a[j]+a[i]a[j]+a[i]a[j]+a[i]然后给定一个数组 b ,问 a 能否根据以上操作变成 b 。思路对于 a 中...

2020-04-09 07:51:24 186

原创 Codeforces Round #632 (Div. 2) A Little Artem 【1333A】(思维题)

Little Artem题意要求给一个 n∗mn*mn∗m 的板子中的每一个小格子涂上黑或者白两种颜色,对于一个格子而言,如果与它相邻的格子中有和它异色的,那么可以称这个格子是有效的,需要输出一种涂法,使得有效的 黑色格子数=白色格子数+1,即 B = W + 1 。给出的n,m保证一定存在一种涂法满足上述条件。思路按照CF常年第一题的特性,一定有什么及其简单的方法可以满足上面这个条件。...

2020-04-09 00:50:32 178

原创 AcWing 789. 数的范围 (二分查找左右边界)

789. 数的范围题意给定一个按照升序排列的长度为n的整数数组,以及 q 个查询。对于每个查询,返回一个元素k的起始位置和终止位置 (位置从0开始计数) 。如果数组中不存在该元素,则返回“-1 -1”。思路对于这样一个数组 {1 2 2 3 3 4} ,查询2,我们要输出下标 1 和 2 ,也就是该数的左边界和右边界。如果我们只写一个不同的二分找到任意一个 2 的位置,然后往左右遍历...

2020-04-08 12:57:39 381

原创 洛谷 P1873 砍树 (二分答案)

P1873 砍树题意给定n个树木,指定一个伐木高度h,h高度以上的部分皆可得到,求想要得到总共数量为m的木头,h最高是多少。1<=N<=1000000,1<=M<=20000000001<=N<=1000000,1<=M<=20000000001<=N<=1000000,1<=M<=2000000000思路很明显答案...

2020-04-07 23:53:57 1140

原创 洛谷 P1102 A-B 数对 (三种解法)

P1102 A-B 数对题意给出一串数以及一个数字 C,要求计算出所有 A - B = C 的数对的个数(不同位置的数字一样的数对算不同的数对)。1≤N≤2×1051≤N≤2×10^51≤N≤2×105思路将式子变形可得 A - C = B ,那么我们就可以将 B 中每个数出现的次数插入到map里面,然后对于每一个 A - C ,在map中找其出现的次数,累加到最终答案。或者,我们可以...

2020-04-07 18:57:09 5628 2

原创 洛谷 P2249 【深基13.例1】查找 (左边界二分)

P2249 【深基13.例1】查找题意给定n个单调不减的非负整数,然后有m次询问,每次询问给一个整数q,要求输出这个数字在序列中的最小编号,如果没有找到的话输出 -1 。n≤106,m≤105n≤10^6,m≤10^5n≤106,m≤105思路对每次询问,直接左边界二分,输出答案。代码#include<bits/stdc++.h>using namespace std...

2020-04-07 18:21:37 1458

原创 Codeforces Round #630 (Div. 2) C K-Complete Word 【1332C】

K-Complete Word题意给定一个字符串,求让给定字符串满足下列条件需要修改的字符的最小数量。其中n为字符串长度,k可以整除n。条件:s is a palindrome, i.e. si=sn+1−is_i=s_{n+1−i}si​=sn+1−i​ for all 1≤i≤n1≤i≤n1≤i≤n;s has a period of k, i.e. si=sk+is_i=s_{...

2020-04-04 23:43:20 149

原创 Codeforces Round #630 (Div. 2) B Composite Coloring 【1332B】

Composite Coloring题意给定一堆合数,要对合数进行染色,要求不互质的两个数可以用同一种颜色,所用颜色不能超过11种。对于每一组数据,输出一种染色方案,不要求以最少或最多的颜色。思路平方小于1000的质数总共有这11个:2,3,5,7,11,13,17,19,23,29,31。一个合数的最小质因子一定小于该合数的根号,那么1000以内的数的因子里都或多或少包含着这一个或几...

2020-04-04 19:41:43 301

原创 Codeforces Round #630 (Div. 2) A Exercising Walk 【1332A】

Exercising Walk题意给定一个范围和一个初始坐标,可以往四个方向移动,规定每个方向的移动次数,没有顺序限制,问能不能在不出范围的情况下完成所有移动。思路只要不去一步一步模拟应该怎么做都能过,这里利用互补直接将左右和上下的移动抵消掉。代码#include<iostream>#include<cstdio>#include<cstdlib&gt...

2020-04-04 18:35:41 188

原创 Codeforces Round #630 (Div. 2) D Walk on Matrix 【1332D】

Walk on Matrix题意有一个迷宫,要从左上角可以走到右下角。每次走到一个格子,都可以得到当前的分数&当前格子数字之后的分数。初始拿着的分数是:左上角的格子的数。要求到最终能得到的分数最大值是多少。有一位参赛者写了一个这样的dpdp[i][j] = 0; //all i jdp[0][1] = a[1][1];for i = 1->n for j = 1-&...

2020-04-04 16:49:30 167

空空如也

空空如也

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

TA关注的人

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