自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2019江西省赛A题 HDU 6567 Cotree 树的重心 树上任意两点距离和

大意: n个点 n-2条边 生成了两颗树 现在要连一条边使其成为一棵树,并且树上任意两点间的距离和最小,输出这个距离和思路: 跑两遍树的重心,将两棵树的重心连边,然后跑距离和注意点:两棵树的节点数(重心板子中用到的n)并差集判断两点是否在一棵树上时用到的是find,不是father双向边所以 maxn要开到2N#include<iostream>#include<vector>#include<cstdio>#include<cstring&

2021-10-21 19:55:19 181

原创 L3-002 特殊堆栈 vector lower_bound 维护中值

输入17PopPeekMedianPush 3PeekMedianPush 2PeekMedianPush 1PeekMedianPopPopPush 5Push 4PeekMedianPopPopPopPop输出InvalidInvalid322124453Invalid#include <bits/stdc++.h>using namespace std;typedef long long ll;int n,m;s.

2021-10-16 10:58:27 131

原创 L3-001 凑零钱 (30 分) dfs

#include <bits/stdc++.h>using namespace std;typedef long long ll;ll a[10010];ll sum[10010];ll ans[10010];int n,m;int dfs(int x,int sum,int cur){ // cout<<x<<" "<<sum<<" "<<cur<<endl; int f=0; ..

2021-10-15 14:57:44 127

原创 牛客暑期多校7 Bit Compression 记忆 dfs 剪枝

题目大意:给一个整数n,和一个长度为2^n的字符串,对这个字符串进行n次操作,每次操作可以选&、|、 ^ 中的一种,操作前字符串长度为k,那么对1<= i <= (k/2),将s(i2-1)s(i2)替换为这两个数的计算结果,问有多少种选择方式,让最后得到的字符串为1#include <bits/stdc++.h>using namespace std;typedef long long ll;int a[20][300000];int n;ll dfs(in

2021-10-14 20:12:02 96

原创 动态可变权值 最短路 dij 奢侈的旅行 HDU - 6290

#include <bits/stdc++.h>#include <iomanip>using namespace std;const int maxn = 1e5+10; // 表长typedef long long ll;const ll inf=1e18;ll n,m,st,en;ll dis[maxn];///距离数组struct edge{ ll v; ll a; ll b;}; ...

2021-10-14 17:34:02 146

原创 E - CCPC Strings HDU - 6942 数列求和+逆元+容斥

大意:给你一个整数N,代表字符串长度,每个位置上的字符可以是’C’ 或者 ‘P’,长度为N的字符串中有2^N种,为这些字符串中,包含几个‘CCPC’(一个字符串中的有贡献的ccpc要求不重叠)思路:长度为N,包含一个‘CCPC’:空的位置数是N-4,每个位置可以填两种字符,由插空法可知‘ccpc’有(N-4 +1)种插法,则共有2^(N-4) *(N-4 +1)种包含两个‘CCPC’:与上同理共有2^(N-7) *(N-7 +1)种包含…但是注意!!!ccpc . . . .. ...

2021-09-10 19:55:07 245

原创 Matrix Gym - 103145A “红旗杯”第十五届

大致题意:给你一个n * n 的矩阵填充了[1 , n2] 的数,每一行都会贡献一个最小值ai,S = {a1,a2,…,an} ∩ {1,2,…,n} 求ΣS一行的最小值是1~n中的数时,才对答案有贡献。首先从1~n枚举一行的最小值 记为i这一行剩余n-1个数都要比i大,所以有C(n * n - i ,n-1)种选法然后把这一行的n个数全排列 n!剩余的n * n - n个数填到剩下的n-1行中,随意排列 共(n * n - n)!种排法把之前带有i的那一行插进去,组成n行 共..

2021-09-07 19:53:24 226

原创 2021ccpc网络赛 G. Function

官方题解:#include <iostream>#include <fstream>#include <cstdio>#include <cmath>#include <algorithm>#include <cstring>#include <queue>#include <stack>#include <vector>#include <map>#includ.

2021-08-30 19:30:59 262

转载 Aminers 2021牛客暑期多校训练营1 H.Hash Function

https://www.cnblogs.com/studyshare777/p/15026951.html题意:给n个数,让你找出一个最小的正整数m满足:这n个数%m得到的值各不相同。0<=a[i]<=500000。1<=n<=500000。#include <iostream>#include <cstring>#include <algorithm>#include <cmath>#include<bits/s

2021-08-01 21:32:03 200

原创 Problem C Pyramid--2020 ICPC Asia Taipei-Hsinchu Regional 滚动数组+思维

思路n个球经过某个节点, 有n/2且向上取整个球向左滚 n/2个球向右滚然后能得到每个点有多少球经过 奇数个球经过,那么当前的开关就是R偶数个 就是L默认最后一个球落到0 经过的节点为R的话 落的位置就会向右挪一个位置n太大 用滚动数组存两层的位置就足够了代码#include <cstdio>#include<bits/stdc++.h>#include <cstdlib>#include <cstring>#include ..

2021-01-22 20:55:40 201

原创 String Game---The 14th Jilin Provincial Collegiate Programming Contest

题意:clair的字符串中有几种子序列等于bob的字符串思路:自前向后遍历clair的字符串( i=1;i<=l1;i++)自后向前遍历bob的字符串( j=l2;j>=1;j–)dp【j】代表clair前i个字符有dp【j】种子序列等于bob前j个字符 if(c[i]==b[j])dp[j]=(dp[j-1]+dp[j])%mod; ///c的第i位作为b的第j位时,前j-1个字符的选择有dp【j-1】种方法假如clair字符串:eeetttbob字符串:ett比如.

2021-01-19 21:21:13 205

原创 Gym102875H Happy Morse Code DP

Little Rabbit and Little Horse recently learned about Morse code and found that just only two symbols of dash and dot can express countless words, for that each letter has a unique dash-dot string correspondence. Little Rabbit and Little Horse get the wron

2021-01-07 23:30:43 274

原创 Forest Program HDU - 6736 dfs找无向图所有环(长度)

题意:给定一个仙人掌,删去一些边可以让它变成一个森林(一棵树也是森林),求方案数。 n≤300000,m≤500000思路:对于一个有n条边的环,可以删去1、2…n条边,则共有C(1,N) + C(1,2) + … + C(1,N)=2^n-1 种方案;对于不成环的边(若有p条),每一条可删可不删,即两种选择,则有2^p种方案那么最终的答案就是每个环的方案数相乘,再乘上非成环的边的方案数所以问题现在转变为找无向图中所有的环(长度),和非成环的边数;代码:#include <cstdio

2020-09-30 21:14:43 428

原创 EOJ Monthly 2020.9 B. 健康监测计划 叶子节点的个数(每层)

官方题解:#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <iostream>#include <algorithm>#include <vector>#include <queue>using namespace std;typedef long long ll;vecto...

2020-09-30 19:36:37 91

原创 EOJ Monthly 2020.9 C. 最小表示

eoj官方题解:写的时候并没有采用他后半段动态规划的方法。直接遍历字符串,先把连续的1 变为1 0 … 0 -1这样的形式再把 -1 和 1 合并#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <iostream>#include <algorithm>using namespace std;ty..

2020-09-27 20:37:02 129

原创 Discrete Centrifugal Jumps 单调栈+dp

#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <iostream>#include <algorithm>using namespace std;typedef long long ll;const int inf=0x3f3f3f3f;int n;int h[300010],u[300010],d[3000

2020-09-22 21:34:31 106

原创 三边是整数的直角三角形的解

证明——————————————————————————————————————————————

2020-09-18 18:42:09 2385

原创 Zigzags CodeForces - 1400D 思维

题意给出一组数:寻找四元组的个数(i,j,k,l)其中a[i]=a[k],并且a[j]=a[l]且 1 <= i < j < k < l <= n ;思路四个数 分别为 a1 b1 a2 b2 其中 a1=a2 b1=b2先枚举b1的位置(从 i = 2开始,因为前面必须有数当a1)然后从 j = i+1位置开始遍历到j=n,找与b1相等的数若num[ i ] = num[ j ],则代表找到了 b2,那么此时更新答案ans那么怎么更新答案呢我们在

2020-09-09 20:12:05 191

原创 Good Subarrays 思维

题意若子数组的元素之和等于元素个数,那么这个子数组就为好子数组。那么给你一个子数组序列字符串,判断该序列有多少个好子数组。思路长度为len的子段,数字和为len那么平均每一位上是1将每个数 -1之后 ,得前缀和那么 长度为len的子段,数字和为len 可转化为 长度为len的子段,数字和为0首先 对于前缀和a[pos]已经为0的(l=1 r=pos) 直接加入答案里其次 若a[pos1]=a[pos2](pos2>pos1)那么 a[pos2]-a[pos1]=0 即在

2020-09-08 20:29:26 131

原创 Zhu and 772002 HDU - 5833 高斯消元

分解质因数完全平方数分析https://www.jianshu.com/p/888f2c2b31bc注意系数摆放顺序素数 2 3 54: 2 0 06: 1 1 010: 1 0 115: 0 1 1每个数对应的次数序列 依次列摆,得矩阵2 1 1 0 0...

2020-09-04 21:40:52 254

原创 164. 可达性统计 二进制压缩+拓扑

#include<bits/stdc++.h>using namespace std;const int N=30010;int n,m,d[N],ts[N],w=0;vector<int>ed[N];bitset<N>f[N];void tops(){ queue<int>q; for(int i=1;i<=n;i++) { if(d[i]==0)q.push(i); } while

2020-09-01 21:28:10 92

原创 2020牛客暑期多校训练营(第二场)Boundary

题意: 给你n个点(n<=2000),问你最多有多少个点共圆且这个圆经过原点(0,0)。三点确定一个圆(不共线)n很小,直接枚举两个点#include<bits/stdc++.h>using namespace std;const int N=2010;const int inf=0x3f3f3f3f;int n;double ax[N],ay[N];map<pair<double,double>,int> w;///共线的三点构不成一个圆//

2020-09-01 19:47:54 44

原创 2020 智算之道 情报站

记录一下很普通很慢的解法(还不因为自己菜)思路:1.建立一个标技数组,表示数字 i 是否已知2.对每个数 x 都建立一个关系队列,用来记录与x有关系的数字y(即只知道 x+y 的和并且 x、y 均未知的情况)这里要格外注意x=y的情况,这种与第一种情报等价,即告诉了x的值3.每次读取情报 建立一个更新队列,记录需要更新的数字(1)若是第一种情报,如果x没有被标记(即未知),那么标记x,并把x放入更新队列(2)若是第二种情报,x、y均未知时,将x放入y对应的关系队列,y放入x对应的关系队列.

2020-07-26 17:27:50 201

原创 逆序数

#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <iostream>#include <algorithm>#include <iomanip>using namespace std;typedef long long ll;int main(){ ll t,n,m; cin&gt.

2020-07-26 17:14:18 104

原创 2020 百度之星 Covid

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200725165605895.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTcxOTA3Mw==,size_16,color_FFFFFF,t_70思路:准备:开两个vectorvector<int>mp[110]

2020-07-25 17:23:09 372

原创 带花树---一般图匹配 2020牛客暑期多校训练营(第一场) I 1 or 2 &&hdu3551

将一些讲解、思路和相似题做了整理,学习内容均已附链接,标明出处题意有一个n个点,m条边的图 ,给出每个点的度数,能否删掉一些边,使每个点的度数等于所给的度数相关知识二分图、匹配相关概念(https://www.cnblogs.com/xpNLP/p/7272144.html)带花树略解(https://blog.csdn.net/qq_39854734/article/details/100601952)带花树详解(https://blog.csdn.net/yihuikang.

2020-07-16 16:53:21 158

原创 叉乘法求任意多边形的面积

1.向量的叉积几何意义:以a,b临边组成的平行四边形的面积。2.对于逆时针的多边形,最后的面积是正值 对于顺时针的多边形,最后的面积是负值3.S=OAE+OED+ODC+OCB+OBA带符号运算 S_OAE=(OA*OE)/2.0;4.叉积运算二维向量叉乘公式a(x1,y1),b(x2,y2),则a×b=(x1y2-x2y1)三维叉乘是行列式运算...

2020-07-15 12:29:04 2053

原创 oj 1427 分解质因数

方法:https://www.cnblogs.com/20143605–pcx/articles/4701923.html本题 欧拉筛筛出素数,再分解#include <bits/stdc++.h>#include <iomanip>using namespace std;const int maxn = 1e4+10; // 表长int prime[maxn], cnt,ch[maxn],s[maxn]; // prime记录素数,pNum记录素数个数boo

2020-07-15 12:24:29 302

原创 oj 1375 Bridge 最快过河 时间+路径

1) N = 1、2 直接过桥。2) N = 3 最快的人往返一次把其他两个人送过桥。3) N = 4A. 一个人运:由最快的a多次往返送其他人过桥。B. 两个人运,由最快的a和次快b过桥,a返回,c和d过桥,b返回#include <bits/stdc++.h>#define ll long longusing namespace std;int a[1100],b[10000];int main(){ int n,cnt=0; ll ans = 0; sca

2020-07-14 19:22:35 134

原创 oj 1301 去前置零和后置零

有符号有前置零和后置零的小数比较大小#include<bits/stdc++.h>using namespace std;typedef long long ll;string a,b;int main() { while(cin>>a>>b) { int s=0,fa=1,fb=1; if(a[0]=='-'){fa=-1;a.erase(0,1);} if(b[0]=='-'){fb=-1;b.

2020-07-14 18:25:31 2346

原创 oj 1370 最小生成树 距离转化为点和权

题意使这n个点连通 ,n个点的连线最短思路最小生成树由每个点的坐标求出各个点之间的距离(权)用最小生成树求解#include<bits/stdc++.h>#include <iomanip>using namespace std;typedef long long ll;int father[300];int n,m,k,ed;double sum,x[120],y[120];struct node{ int x,y; double z;

2020-07-14 17:18:52 111

原创 2020牛客暑期多校训练营(第一场)J

Infinite String Comparision---F题目大意给出两个字符串a,b, 1 ≤ |a| ,|b| ≤10^5两个字符串无限次重复循环(若字符串为abcd,重复循环后变成abcdabcdabcdab.....)对于新形成的两个无穷长字符串,比较大小a∞=b∞,输出=a∞>b∞,输出>a∞<b∞,输出<分析Easy Integration---J题目大意给出一个n,求出积分,其结果一定是这种形式,求定积分函数式:.

2020-07-12 21:08:12 234 1

原创 1193.火柴棒等式

每位数字所用根数:0 1 2 3 4 5 6 7 8 96 2 5 5 4 5 6 3 7 6n最大是24,除去+=的4根 ABC所用根数的和最大为20已知数字1用的根数最少,那么先假设A为1那么根数(B+C)<=18又因为C>A,C>B,可推出 B最大为1111(8根)...

2020-07-07 21:00:47 215

原创 oj 1150 高速缓存区 思维 反推

题意;n为高速缓存区容量(存储几个字母)若当前字母缓存中出现,则改字母的使用次数+1当缓存区存满后,若有新的字母出现,就需要替换缓存区中最近使用次数最少的(次数相同,则替换最早出现的那个)。!即输出当前缓存区的内容例如:5 ABC!DEAF!B!缓存区容量为5存入:A B C D E1 1 1 1 1(使用次数)读到第六位—A时,缓存区中有,则增加使用次数A B C D E2 1 1 1 1(使用次数)读到第七位—F时,缓存区已满且无F,则把B替换掉A F C D E2 1

2020-07-07 20:30:12 259

原创 sdnuoj 1594大数幂运算 减法运算

#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <iostream>#include <algorithm>using namespace std;typedef long long ll;int numa[100],al[1000],numb[100],bl[1000];string a,b;void cf.

2020-06-26 21:25:08 198

原创 Feeding Chicken 思维、模拟

题意:有n * m大的矩阵,每一格,如果是‘R’,代表有米。共有k只鸡将这n*m个格分割成k各区域,每只鸡至少要有一个有米的格子。同时要保证每只鸡所拥有的格子是联通的,并使拥有的有米的格子数的最大值与最小值的差最小。用小写字母大写字母或数字来表示每个格子属于哪一只鸡,不同的字符代表不同的鸡。分析:1.最大值与最小值的差最小统计有米的格子数,先平均分给k只鸡,若能均分,差值为0;否则,当剩余的格子不足k时,再随机挑选几只鸡,每只鸡分得一个格,最大值与最小值的差为1.2.保证每只鸡所拥有的格子是联

2020-06-03 22:08:18 179

原创 HDU2527 Safe Or Unsafe 求树的带权路径长度(wpl)

基本概念与讲解题目:Javac++ 一天在看计算机的书籍的时候,看到了一个有趣的东西!每一串字符都可以被编码成一些数字来储存信息,但是不同的编码方式得到的储存空间是不一样的!并且当储存空间大于一定的值的时候是不安全的!所以Javac++ 就想是否有一种方式是可以得到字符编码最小的空间值!显然这是可以的,因为书上有这一块内容–哈夫曼编码(Huffman Coding);一个字母的权值等于该字母在字符串中出现的频率。所以Javac++ 想让你帮忙,给你安全数值和一串字符串,并让你判断这个字符串是否是安全的?

2020-06-03 00:02:46 204

原创 Factorial Products eps1e-6

Factorial is just a game of multiplications. Formally, it can be defined as a recurrence relation:Fact (0) = 1Fact (n) = n * Fact(n-1), for all integers n > 0This problem is all about multiplications, more and more multiplications. It is a game ofmu

2020-06-01 20:06:33 539 2

原创 统计硬币 dp

Problem Description假设一堆由1分、2分、5分组成的n个硬币总面值为m分,求一共有多少种可能的组合方式(某种面值的硬币可以数量可以为0)。Input输入数据第一行有一个正整数T,表示有T组测试数据; 接下来的T行,每行有两个数n,m,n和m的含义同上。Output对于每组测试数据,请输出可能的组合方式数; 每组输出占一行。Sample Input23 54 8Sample Output12for循环int main(){ int t,n,m,cnt;

2020-05-31 14:33:25 326

原创 SCU - 4576 数位之积

给你一个数字 ,你的任务是找一个最小的正整数 ,使得它的数位之积等于,如果不存在,请输出-1.Input第1行为输入组数。第2—T+1行为数字。Output每组样例输出一行。Sample Input311611Sample Output128-1#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <iostr

2020-05-30 22:01:07 195

空空如也

空空如也

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

TA关注的人

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