自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hunxuewangzi的博客

一名正在努力的蒟蒻acmer

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

原创 大学物理 电磁学

1:这个肯定不是直接求,要补全

2020-06-27 10:46:47 805

原创 大学物理 力学

1:刚体上两个力合力为0,为什么合力矩不一定是零因为合力为0可以平行不共线2:一轻绳绕在有水平轴的定滑轮上,滑轮的转动惯量为J,绳下端挂一物体.物体所受重力为P,滑轮的角加速度为β.若将物体去掉而以与P相等的力直接向下拉绳子,滑轮的角加速度将(A) 不变. (B) 变小.© 变大. (D) 如何变化无法判断....

2020-06-25 10:20:32 1186

原创 Codeforces Round #651 (Div. 2) E. Binary Subsequence Rotation 题解(思维)

题目链接题目思路有两个长度为n的01串 s1,s2问s1最少要经过多少次的操作使得s1变成s2。操作定义为选s1的子序列,使其子序列元素顺时针旋转。为一次操作题目大意这个题目的关键点就是要明白每次变化必然是s1对应010101…s2对于101010…或相反记录s1与s2相同位置不同元素的以1开头和以0开头的交错串数量相加即可。仔细看代码应该就可以懂了代码#include<bits/stdc++.h>using namespace std;typedef long long l

2020-06-21 11:06:22 386

原创 Codeforces Round #651 (Div. 2) D. Odd-Even Subsequence 题解(二分)

题目链接题目大意从n个元素的a数组中找出包含k个元素的s子序列,使其价值最小。价值的定义为题目思路这类题目要发现其答案具有单调性,那么就要想到二分。直接二分答案,然后看能不能满足有大于等于k个元素满足条件。根据价值的定义,check即可。看代码就懂了代码#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=2e5+5;int n,k,a[maxn];bool chec

2020-06-21 01:22:22 319

原创 Codeforces Global Round 8 D. AND, OR and square sum 题解(位运算)

题目链接题目大意给你长为n的a数组,你可以进行任意多次的操作,操作为选择a[i],a[j]使a[i]=a[i]|a[j],a[j]=a[i]&a[j].求题目思路显然无论怎么操作把他们转换为二进制后,二进制每一位对应的1的个数不变。直接把每个位的1算出来,然后分配,尽可能要大的数最大即可代码#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=2e5+5;int

2020-06-19 11:01:34 367

原创 Codeforces Global Round 8 C. Even Picture 题解(构造)

题目链接题目大意让你构造一个连通图,图中有k个灰点其中n个点4面都是灰点,(k-n)个点周围2个点是灰点题目思路emm,想了好久没思路。感觉这种构造比较神奇当n=3,那么就是令最左上角的坐标为(1,1)代码#include<bits/stdc++.h>using namespace std;typedef long long ll;int n;int main(){ scanf("%d",&n); printf("%d\n",3*n+4);

2020-06-19 10:37:16 302

原创 Educational Codeforces Round 89 (Rated for Div. 2) D. Two Divisors(数论)

题目链接题目大意让你找出x的两个因子d1>1,d2>1使得gcd(d1+d2,x)=1题目思路首先要明白gcd的性质gcd(a,b)=gca(a+b,b)if(gcd(a,c)==1) gcd(a,bc)=gcd(a,b)则推出当x与y互质gcd(x+y,x*y)=1那么就简单了,直接唯一分解x=p1^ t1 p2^ t2 p3^ t3…令d1=p1^t1 ,d2=x/d1即可注意唯一分解定理要先欧拉筛,不然会TLE,然后其实可以直接欧拉筛的时候预处理他的最小质因子即

2020-06-12 22:28:10 153

转载 Codeforces Round #634 (Div. 3) F. Robots on a Grid题解(拓扑找环+逆向dfs/倍增)

转载链接:https://blog.csdn.net/qq_45458915/article/details/105515708?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.none

2020-06-09 16:38:24 210

原创 HDU Legal or Not 有向图拓扑找环模板题

题目链接题目大意判断有向图是否有环题目思路把所有入度为0的节点删去。然后删除这个节点的所有的边。即所有和它相连的点的入度减一。然后循环。就是放在队列里,看最后是否还有入度不为0的点就行了。代码#include<queue>#include<cstdio>#include<cstring>using namespace std;const int maxn=1e2+5;int n,m,deg[maxn],head[maxn],cnt;struct n

2020-06-09 14:32:53 231

原创 Codeforces Round #634 (Div. 3) E1 E2 Three Blocks Palindrome题解(暴力枚举/枚举优化)

E1题目链接题目大意给你一个大小小于2000的数组a,其中1<=a[i]<=26,让你找出满足条件的最长子序列。条件为:这个子序列满足aba的即前缀和后缀的元素都为一个数,中间的元素都相等即可题目思路看到这个数据,可以直接预处理一下前缀和后缀,然后可以直接枚举两个端点,暴力计算即可代码#include<iostream>#include<cstdio>#include<set>#include<math.h>#include&

2020-06-08 21:28:58 173

原创 Codeforces Round #648 (Div. 2) F - Swaps Again 题解(思维)

题目链接题目大意有两个长度为n的数组a和数组b,可以选择k(1<=k<=n/2)交换某一个数组的前缀k和后缀k,可以交换任意次数,看是否能使两个数组相等思路这个就是要发现一个关键就是有a[i],与a[n-i+1]他们始终对称就好判断了代码#include<iostream>#include<cstdio>#include<set>#include<vector>#include<math.h>#include&lt

2020-06-08 17:20:01 271

原创 Codeforces Round #648 (Div. 2)E. Maximum Subsequence Value 题解(位运算)

题目链接题目大意给你一个数组大小不超过500的数组,要你找出子序列的最大价值。价值的定义为:假设你找了k个元素,把他们都化为二进制,如果在第i位有max(k-2,1)位1,那么价值就加上2^i。题目思路我是没什么思路的,从来没做过这类题目,长见识了。首先如果只有3个数以内,那么有在这个二进制中有一个1就行了。直接暴力枚举就行了。而如果有4个数或者以上,你会发现都是由3位以下转移来的。如果3个数得到的某位二进制为0,那么说明这三个数在这一位的二进制为0,则肯定不满足max(1,k-2),则这一位

2020-06-08 16:03:43 242

原创 Codeforces Round #647 (Div. 2) E. Johnny and Grandmaster 题解(思维)

题目链接题目大意给你一个长度为 n 的数组 K 和 一个整数 P, 让你将数组 K 分为A 、B两个集合使得 ∑ P^KA - ∑ P^KB 的绝对值尽可能的小题目思路肯定是先sort一下(从大到小),然后第一个放在集合a,要明白一个知识点,如果后面得元素大于p^ k[1],那么就肯定可以找到后面的部分元素相加等于p^k[1] 这个结论在这个题目有 题目链接那么就简单了而集合 a 的和等于集合 b 的和等价于 sum(a) - sum(b) = 0只有当 sum(a) - sum(b) =

2020-06-05 22:57:20 260

原创 Codeforces Round #635 (Div. 2) D. Xenia and Colorful Gems 题解(二分)

题目链接题目大意三个数组,每个数组中挑出来一个数,求 (x−y)^ 2 + (x−z)^ 2+(y−z)^2的最小值。题目思路暴力是o(n^3)肯定会爆,但是显然这个答案要使得这三个值最接近。枚举中间值,然后二分寻找比他大的最小值和比他小的最大值即可代码#include<bits/stdc++.h>using namespace std;typedef long long ll;int t,n1,n2,n3;ll cal(ll x,ll y,ll z){ retur

2020-06-04 17:16:53 171

原创 Codeforces Round #636 (Div. 3) E. Weights Distributing 题解(思维+bfs+前缀和)

题目链接题目大意给出一个点数为n,边数为m的无向图,求分配m个权值给这些边使得a到b到c的路径的最小花费题目思路此题的难点就是a->b->c可能存在重复的边,显然重复的边应该是权值最小的。那么该怎么求重复的边呢?在最优解中,路线肯定是a->x->b->x->c,x可以是任意点,而且都是走最短路径,因为最后的结果和经过的边数有关预处理每个点到a,b,c的距离即可代码#include<cstdio>#include<queue>#i

2020-06-03 18:54:52 152

原创 Codeforces Round #636 (Div. 3) D. Constant Palindrome Sum 题解(思维+差分)

题目链接题目大意给我们一个长度为n的数组a,n为偶数,之后有给了一个k并且给了他的n个元素的值,先在我们需要对这个序列做变化,使a[i]+a[n−i+1]==x,1<=i<=n/2,x为一个常数,问我们最少需要变化多少个数,有一个常数x使上式成立,对于每一个变换我们可以把序列中的任意一个元素a[i]变为1~k之间的任意一个数,求最小需要变化的元素的数量.注意:无论a[i]变化与否它的范围都是在1~k之间题目思路我完全没思路。想不到居然是差分其实就是暴力枚举所有的x,用差分维护一对一

2020-06-03 16:21:26 182

原创 Codeforces Round #637 (Div. 2) C. Nastya and Strange Generator 题解(阅读理解+简单思维)

题目链接题目大意真难读问给定的序列能不能用题中所给的算法生成。比如,题目中举的例子:原序列a: [ 2 3 * * 1 ],先得出 r 数组 [ 3, 3 ,3 ,4 , * ] 。r 数组的意思是:原序列当前位置右边第一个空格的位置,比如原序列 a 索引为1的位置的右边第一个空位是 3。索引为2的位置的右边第一个空位是 3。索引为4的位置的右边第一个空位是它自己 4 。索引为5的位置的右边没有空位 标记为 *然后得出count数组,对 r 数组中的出现的数字计数 为 [ 0 , 0 , 3 ,

2020-06-02 23:58:34 133

原创 Codeforces Round #637 (Div. 2) - Thanks, Ivan Belonogov! D. Nastya and Scoreboard题解(记忆化搜索)

题目链接题目大意一个n个数码位的分数板,每一个数码位都是一个七段数码管,现在给出每个数码位的显示情况,问再点亮k段数码管的话能显示的最大的数是多少,如果不能构成一串数字,就输出-1。答案允许有前导0,但是有前导0的时候答案长度必须要跟n一致题目思路emm。。我完全没什么思路,但其实想想感觉是贪心一下就可以了,看到了rk1的神仙代码真是妙不可言,直接记忆化搜索,也可以dp,但感觉记忆化搜索更好代码#include<bits/stdc++.h>using namespace std;

2020-06-02 20:24:27 181

原创 Codeforces Round #646 (Div. 2) D. Guess The Maximums 题解(交互+二分)

题目链接题目大意读了我一个世纪给你一个长为n的数组和k个有关数组下标的集合,每个集合告诉你这个集合的大小,以及每个集合所包含数组的下标。这k个集合都没有交集,要你找出k个ans,ans就是除了这个集合外,所有数组的最大值。你有最多12次询问,每次询问就是你可以查询任意自己组合的集合的最大值。n<=1000题目思路看这个数据范围就知道是要二分,首先你会发现,这k个值,要么都是max(a[i]),要么有一个不是,首先用一次查询找出max(a[i]),再用10次以内的查询二分max(a[i])

2020-06-01 22:10:21 332

原创 Codeforces Round #646 (Div. 2)E. Tree Shuffling 题解(dfs)

题目链接题目大意给你一颗树,每一个节点有一个a[i],b[i],c[i]值,你要把b[i]变成c[i],b[i]和c[i]为[0,1],你操作的方法是,选择一个节点x,选择他的k个子树,然后进行交换他们的b[i]值,使满足要求,每次操作的cost为a[x]*k,求满足题目要求所需要的最小cost,如果不能满足要求,则输出-1.题目思路基本思路想到了,但是不会实现,码力太差,直接放标准解析。Key Idea: Let the parent of node i be p. If a[i]≥a[p],

2020-06-01 11:18:26 342

空空如也

空空如也

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

TA关注的人

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