自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AtomicInteger实现多线程安全

CAS => 比较并交换,乐观锁import java.util.ArrayList;import java.util.List;import java.util.concurrent.atomic.AtomicInteger;public class TestUnSafe { private static AtomicInteger lock = new AtomicInteger(1); private static int number = 0; public

2020-10-10 10:31:39 192

原创 手动仿CAS实现2个线程交替打印

学到volatile关键字,忽然想是不是可以通过volatile关键字来实现一个双线程交替打印呢,所以就写了这个,因为还是萌新,所以若有错还请评论告知import java.util.ArrayList;import java.util.List;public class MyCAS { private volatile static int lock1 = 1; private volatile static int lock2 = 1; public static vo

2020-10-09 23:16:42 274

原创 volatile实现的双线程安全

为什么只能双线程安全呢,因为我们不能保证lock != 1的判断同一时间只有一个线程可以执行成功,这里可以用到unsafe类了,那么可能同时有多个线程都判断成功了 lock != 1的条件,从而全部进入循环。而双线程肯定每次都是一个锁住了,一个解锁了import java.util.ArrayList;import java.util.List;public class MyCAS { private volatile static int lock = 1; private vo

2020-10-09 23:05:18 162 2

转载 VirtualBox 在原盘的基础上扩充空间

原链接

2020-08-11 13:46:31 90

原创 缓存穿透、缓存雪崩、缓存击穿

缓存穿透是指 百万请求同时发送查询一个数据库并不存在的数据,造成数据库查询压力过大,导致数据库的崩溃,因为数据库不存在这样的数据所以例如redis的缓存不会存起来才会导致百万请求同时发送给数据库缓存雪崩是指 百万请求同时发送查询大量的数据库存在而未被缓存进redis里面的数据,这些数据在缓存里面大面积失效,所以这百万请求又会同时请求数据库导致数据库崩溃缓存击穿是指 一个**热点商品(key被频繁查询的商品)**在晚上会在缓存里面自动过期而失效,第二天早上突然百万请求来查询这个热点商品,又同时查询数据库导

2020-08-05 17:12:25 85

原创 C. Uncle Bogdan and Country Happiness

原题连接想法是从叶子节点出发往跟上走,然后在用bfs做。有些bug找不到了dfs正好。回溯的过程中统计总的人数,贪心的让每个节点的好心情的人数是正确的,然后进行条件判断,因为是从叶子节点走,所以本来的好人边坏变成了坏人变好有这么一个数学方程式来推理好人的数目node[i].good + node[i].sad = 总人数node[i].good - node[i].sad = 题目的h[i]然后两式子相加 可以推出来 node[i].good = (总人数 + 题目给的h[i]) / 2#i

2020-08-05 14:33:35 154

原创 B. Captain Flint and a Long Voyage

原题链接贪心#include <bits/stdc++.h>using namespace std;int main(){ int t; cin >> t; while(t--) { int n; cin >> n; if(n == 1) { cout << 8 << endl; }else if (n == 2) {

2020-08-05 14:27:39 95

原创 A. Captain Flint and Crew Recruitment

原题连接简单贪心#include <bits/stdc++.h>using namespace std;int main(){ int t; cin >> t; while(t--) { int n; cin >> n; // 6 10 14 if(n <= 30) { cout << "NO" << endl;

2020-08-05 14:26:44 126

转载 virtualbox 主机和虚拟机相互ping通

原文连接太棒了。找了一下午

2020-08-03 17:40:52 240

原创 docker挂载目录失败/权限拒绝 解决方案

给容器加权限在docker run时给该容器加权限,加上以下参数即可:--privileged=true

2020-07-31 23:09:36 526

原创 Square

Squaredfs主要是注意回溯时候的剪枝操作#include<bits/stdc++.h>using namespace std;int n;int a[25];int f[25];int goal = 0;int m;int flag = false;void dfs(int n, int last, int now) { if(n == 5) { flag = true; return ; } if(now ==

2020-07-26 14:30:20 126

原创 Eddy‘s picture

Eddy’s picture裸的最小生成树#include<bits/stdc++.h>using namespace std;double x[105];double y[105];int root[105];int sum = 0;double minTree = 0.0;struct node { int i; int j; double len;}edge[10005];int f(int x) { if(x == root[x

2020-07-26 14:26:18 198

原创 B - Find a way

双向bfs还是比较水的。用vector记录下来每一个KCF然后每次bfs都判断一个是否有哪些点是2个人都到达的点,直接输出答案就可#include<bits/stdc++.h>using namespace std;int n, m;int Map[205][205];int flagY[205][205];int flagM[205][205];int dir[4][2] = {-1, 0, 1, 0, 0, -1, 0, 1};struct node { i

2020-07-17 23:25:50 117

原创 A - String Distance and Transform Process

一道朴素dp题递推方程 还是比较好推的 路径不好找路径的方法:从二维数组最后一个位置往回推,可以通过到达该点的的步数判断从哪个点推过来,判断完这个步骤以后,dp[i][j]就是a的前i个字母和b的前j个字母匹配成功了,然后4种情况输出路径就好了#include <bits/stdc++.h>using namespace std;const int maxn = 85;int dp[maxn][maxn];string a, b;void path() { int

2020-07-17 23:18:23 116

原创 虚拟机初始化一个类的过程

虚拟机初始化一个类的过程public class Static { private static int num = 1; static { num = 2; number = 20; } private static int number = 20; //linking(链接)之前有prepare(准备)环节就已经初始化为0了 //静态的东西都是在类加到环境虚拟机时初始化的 //下面就是错误的 /*x

2020-05-13 09:52:22 95

原创 LeetCode--四数之和(双指针)

四数之和给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为:[[-1, 0, 0, 1],[-2, -1, 1, 2],[-2, 0, 0, 2]]imp

2020-05-12 21:05:01 114

原创 [SCOI2005]互不侵犯

互不侵犯展开题目描述在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。注:数据有加强输入格式只有一行,包含两个数N,K ( 1 <=N <=9, 0 <= K <= N * N)输出格式所得的方案数输入3 2输出16一道入门级别的状压DP#incl...

2020-04-30 11:33:10 246

原创 [BFS+位运算+状态压缩]位运算的真谛(赋c++和java代码)

原题链接Problem DescriptionIgnatius再次被魔王抓走了(搞不懂他咋这么讨魔王喜欢)……这次魔王汲取了上次的教训,把Ignatius关在一个n*m的地牢里,并在地牢的某些地方安装了带锁的门,钥匙藏在地牢另外的某些地方。刚开始Ignatius被关在(sx,sy)的位置,离开地牢的门在(ex,ey)的位置。Ignatius每分钟只能从一个坐标走到相邻四个坐标中的其中一个。魔...

2020-04-14 12:08:37 145

原创 java的死锁问题

/** * 用sleep仅仅是增加的死锁的概率,不用sleep线程照样会有死锁 * 出现了死锁问题,当第一个线程锁住了sb1并且sleep时, * 第二个线程锁住了sb2, * 然后sb1一直在等线程2释放sb2锁, * 同样sb2一直在等线程1释放sb1锁, * 这就产生了死锁情况 */public class TestDeadLock { public static ...

2020-04-11 11:19:10 88

原创 文件上传的form表单提交普通字段出现中文乱码问题

表单中普通字段中文乱码处理表单中普通字段的值上传到后台后用fileupload解析会出现乱码,解决方法://手动转换编码String content = fi.getString();content = new String(content.getBytes("ISO8859-1"),"UTF-8");这样就可以解决中文乱码问题了maven搭建项目还有其他中文乱码详见以下博客htt...

2020-04-09 10:17:33 2157

原创 【hdu-3461】巧用并查集+快速幂+思考

题意也有些难理解——给你一个锁,这个所由n个字母组成,然后这个锁有m个区间,每次可以对一个区间进行操作,并且区间中的所有字母要同时操作。每次操作可以将区间中所有字母+1。即把a变成b,把z变成a。举个例子,比如有一个锁,由abcdef组成,前三个字母abc是一个区间,第四五个字母de是一个区间,那么如果对abc操作一次,则获得新锁bcddef,再对de区间操作一次,得bcdeff。但是,最后一...

2020-03-30 12:15:04 125

原创 Codeforces Round #629 (Div 3) A~D题

A签到水体By wdjuruo, contest: Codeforces Round #629 (Div. 3), problem: (A) Divisibility Problem, Accepted, #, Copy, hack it!#include <bits/stdc++.h> using namespace std;typedef long long ll; ...

2020-03-27 12:41:57 87

原创 IDEA集成maven的常见问题

<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>

2020-03-20 13:49:56 224

原创 【hdu-3938_Portal】离线并查集

Problem DescriptionZLGG found a magic theory that the bigger banana the bigger banana peel .This important theory can help him make a portal in our universal. Unfortunately, making a pair of portals ...

2020-03-19 21:43:15 93

原创 IDEA创建JavaEE项目

写Javaee项目时,经常会出现部署在web文件夹下面的网页,jar包,css文件,Js文件发生404路径找不到错误,这时候按住 Ctrl+shift+alt+s 会出现下面这个界面勾选图中的include in project build并且 在Output root 那里 导入web文件目录这些 web下面所有的目录都会被访问到了检测的时候 可以在项目下的out文件夹 查看是否有w...

2020-03-19 10:22:36 955

原创 【HDU 1811 Rank of Tetris】利用并查集缩点+拓扑排序

题目:自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球。为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球Tetris高手排行榜,定时更新,名堂要比福布斯富豪榜还响。关于如何排名,这个不用说都知道是根据Rating从高到低来排,如果两个人具有相同的Rating,那就按这几个人的RP从高到低来排。终于,Lele要开始行动...

2020-03-16 16:49:52 92

原创 【Codeforces Round #624 (Div. 3)】F

原题连接要求每一对(i,j)的最小距离的和可以通过题目给出的那些数据列出一个线性方程x=vit+x0;x2=vit+x0;这就是每一个点的运动轨迹求2个点距离的最小值当他们的轨迹 在 t<0 的 那边时候2个点的距离的最小值就是他们初始的距离相减的绝对值而当t>0时,2个点距离的最小值就是0t要大于0我们可以列出一个方程组v1t+x1=v2t+x2解得:t=(x...

2020-03-15 22:53:46 82

原创 【Codeforces 627 div(3) E】E. Sleeping Schedule

原题链接#include<iostream>#include<algorithm>#include<string.h>using namespace std;int a[2005];int dp[2005][2005];//dp[i][j]表示到了第i天现在睡醒是第j小时的最大良好睡眠次数int main()di{ int n,h,l...

2020-03-15 16:09:03 128

原创 【codeforces #627 D 】Pair of Topics

题目链接 http://codeforces.com/contest/1324/problem/D由于数据规模大 O(n²)算法过不了并没有想到用树状数组 …a[i]+a[j]>b[i]+b[j];的话,那么a[i]-b[i]+(a[j]-b[j])也要大于0这样我们存一个数组c[i]存的是a[i]-b[i];这样我们就要求出来c[i]和c[j]的对数,使得c[i]+c[j]&gt...

2020-03-15 11:12:42 102

原创 【并查集逆序】洛谷P1197

顺序做一定会超时考虑逆序做先把该删除的点全部删除然后逆序加入图中,在加入的过程判断联通不联通;不联通的话就让连通块的个数-1;然后把2个连通块连起来还是比较难的#include <bits/stdc++.h>using namespace std;const int N=4e5+5;struct node{ int f,t; int nex;}ed...

2020-02-29 20:58:33 136

原创 【hdu-3506四边不等式优化区间dp】Monkey Party

一遍比较好的四边不等式优化详解#include<iostream>#include<algorithm>#include<string.h>using namespace std;const int N=1050;int a[N*2];int dp[2*N][2*N];int s[2*N][2*N];int sum[2*N];int inf=...

2020-02-23 22:55:24 86

原创 【线段树模板】洛谷P1198-最大数

这个就是线段树模板#include<bits/stdc++.h>using namespace std;typedef long long ll;int mod;const int N=200000+5;struct node{ int l,r; int v=0; int id;}tree[N<<4];int a[N];void b...

2020-02-20 21:14:45 121

原创 【线段树和树状数组】洛谷P-1972HH的项链

原题链接先是树状数组代码在线做法应该是非常耗时的所以这里考虑离线做法按照每次询问的r边界进行从小到大的排序就可以处理了#include<bits/stdc++.h>using namespace std;const int N=1e6+5;int a[N];int tree[N];int flag[N];int n;int res[N];struct nod...

2020-02-20 18:54:38 175

原创 【最长下降子列和】hdu-1160

这是一段 我怎么提交都WA的 代码#include <iostream>#include <stack>#include <algorithm>using namespace std;typedef struct{ int speed; int weight; int num;}m;bool cmp(m a,m b){...

2020-02-17 16:24:59 65

原创 【区间dp】hdu4238_You Are the One

翻看了很长题解现在还是马马虎虎有点看不懂先收藏到博客慢慢理解区间dpdp[i][j]表示从第i个人到第j个人的最小不高兴度,那么如果不管i前面的人,如果i是第k个登录舞台的人,那么i+1到i+k-1的人肯定已经登录上了舞台,那么枚举i是第k名登录舞台,这时候的dp方程就是dp[i][j]=min(dp[i][j],dp[i][i+K-1]+dp[i+k][j]+a[i](k-1)+k...

2020-02-15 22:43:39 89

原创 【动态规划】hdu-1024_Max Sum Plus Plus

#include<bits/stdc++.h>using namespace std;const int N=1e6+5;int a[N];int dp[3][N];int n,m;//dp[i][j]表示前j个数字分成i段的最大值;//经过推导发现,dp的第i行只受到了i-1行的影响;//所以我们可以进行空间的优化//dp[i][j]=max(dp[i-1][k]+...

2020-02-15 16:12:33 96

原创 【奇怪的动态规划】洛谷P-1113杂务

翻了翻题解我被惊艳了水一发博客因为题目保证了杂务k(k>1)k(k>1)的准备工作只可能在杂务11至k-1k−1中。所以到达杂务k时,前k-1个杂务一定是已经可以求出其最晚时间的于是这就变成了一道动态规划题目,可这明摆着是拓扑排序啊DP属实强大题解代码:(写了对他的解释)#include<iostream>#include<cstdio>#i...

2020-02-13 22:09:52 104

原创 【拓扑排序--水题】洛谷P1113 杂务

原题链接这应该是个拓扑排序的模板题,直接放代码#include <bits/stdc++.h>using namespace std;vector<int> vec[10005];vector<int> vec2[10005];int t[10005];int t2[10005];int rudu[10005];int flag[10005];...

2020-02-13 21:54:53 85

原创 【区间dp】洛谷P1063能量项链

原题链接做个题和洛谷P1880做法类似,基本上是一个题直接看代码注释#include <bits/stdc++.h>using namespace std;const int N=205;int a[N];int f[205][205];int main(){ int n; cin>>n; for(int i=1;i<=n;...

2020-02-13 18:27:34 109 1

原创 【翻看题解想不通系列之动态规划】洛谷--P1026统计单词个数

题目描述给出一个长度不超过 200200 的由小写英文字母组成的字母串(该字串以每行 2020 个字母的方式输入,且保证每行一定为 2020 个)。要求将此字母串分成 kk 份,且每份中包含的单词个数加起来总数最大。每份中包含的单词可以部分重叠。当选用一个单词之后,其第一个字母不能再用。例如字符串 this 中可包含 this 和 is,选用 this 之后就不能包含 th。单词在给出的一个...

2020-02-13 00:19:27 371

空空如也

空空如也

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

TA关注的人

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