自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

胡七一upup

一分耕耘一分收获

  • 博客(53)
  • 资源 (1)
  • 收藏
  • 关注

原创 一次死锁的复盘

这是我复现的deadlock场景:一个长度为1的channel,起10个go程往通道中写数据,在写之前会锁住互斥信号量mu,使用defer解锁,也就是在写完成之前都是锁住的。再在主程里面消费这个channel,消费10次,第五次的时候会执行一些操作,也会锁住mu执行。问题分析:当第五次消费channel的时候,在申请mu.Lock()之前,mu已经被一个写入的Go程锁住了,消费者就会进入等待状态,同时又因为channel只能容纳一个值,会发生channel中已经有一个值导致获取锁的go程无法写入

2022-01-08 20:20:57 209

转载 mac安装vscode中的golang插件

教程来自:macOS下给VScode安装Golang插件实践过程自己的一些修正git比较慢的话可以让终端走自己的代理export https_proxy=hostname:port1、切换到GOPATH路径下cd $GOPATH/src2、然后在src文件夹下新建两个文件夹以及子文件夹sudo mkdir -p github.com/golangsudo mkdir -p golang.org/x3、克隆GitHub上的tools工具包:cd $GOP

2021-11-16 14:04:10 956

原创 6.824 lab1 mapreduce实现过程及问题

一、实现思想:总共分为两步:map与reduce,map按split并发,reduce按nreduce数量并发即可。代码:https://github.com/huqiyii/6.824二、问题:1、将同一个split分发给多个worker原因:在同一时间多个worker发起申请,在第一个worker写入timemap之前,还有多个worker也通过了timemap的判断,导致也会进行任务的分发。优化:timemap的判断与修改应该是原子操作,使用mutex进行同步2、map任务

2021-09-11 18:22:45 260

原创 netty为什么这么快

https://www.codenong.com/cs106739373/1、IO模型选择了非阻塞同步IO模型的NIO,吞吐量得到了提升2、选择了基于事件驱动的Reactor线程模型,netty具体的实现基于主从多线程reactor模型,使用一个主线程组负责监听事件,一个从线程组负责后续的读写事件,主线程组的线程监听到一个连接事件并获取一个通道后,将此通道绑定到从线程组的一个nio线程上,负责监听后续的读事件和写事件。3、使用了零拷贝技术,ByteBuf可以在堆外内存进行分配,并直接对其进行操作

2021-04-13 18:47:37 441

原创 操作系统-内存管理

一、虚拟内存使用原因:当程序需求的内存大小超过物理内存大小的时候,操作系统没法完整的讲程序加载进来。 许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还有用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办法是把程序分割成许多称为覆盖块(overlay)..

2021-03-18 22:55:29 195

原创 java线程池理解与实践

参考:https://tech.meituan.com/2020/04/02/java-pooling-pratice-in-meituan.html一、线程池是什么、有什么用线程池是基于池化思想来管理线程的工具。当系统线程过多,就会增强一系列开销,包括线程的创建与销毁、cpu的调度等等,使用线程池对任务进行缓冲,使线程可以重用,降低了开销。线程过多会带来额外的开销,其中包括创建销毁线程的开销、调度线程的开销等等,同时也降低了计算机的整体性能。线程池维护多个线程,等待监督管理者分配可并发.

2021-03-18 22:47:48 112

原创 synchronized底层实现

参考:1、https://blog.csdn.net/javazejian/article/details/728284832、https://github.com/farmerjohngit/myblog/issues/12synchronized应用的三种方式修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁 修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁 修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对象的锁。syn.

2021-03-17 20:37:48 89

原创 MVCC实现过程

参考:https://chenjiayang.me/2019/06/22/mysql-innodb-mvcc/解决问题:脏读、不可重复读,因此一般用于RC和RR级别。重点:1、每行添加两个隐藏字段,一个表示最近更新此记录的事务id,称:DATA_TRX_ID,一个表示该行的回滚段,称:DATA_ROLL_PTR。(事务id为int类型,回滚段为指针类型,它指向undo log中的记录。)2、undo log链。undolog链为链表,存放着被修改的行的历史版本。3、当前数据表..

2021-03-17 13:58:32 502

原创 哲学家就餐问题,java实现

这个问题是操作系统中一个经典同步问题,但是我在测试网上各种java实现代码时总感觉有许多错误,用一个简单的测试样例便能快速发现,一般来说,哲学家都设为5,但是这样人工很难根据日志来判断代码是否正确,于是我就娶了个特殊情况,哲学家数量为3,按照题目要求,这个时候同时就餐人数有且只能有一个人,所以我将网上的代码哲学家数量改为3,发现会出现超过一个人同时就餐的情况,与题目要求明显不符,下面就是其中一份代码输出的结果,我特地在输入的地方加上了时间戳,可以更加轻松的判断哲学家1拿起了左边的筷子 ...

2021-01-15 15:45:53 779 1

原创 java 多线程交通信号灯模拟

这学期我们java课程的课程设计项目----交通信号灯的线程设计1) 实验目的:多线程设计,同步机制2) 题意  设计一个交通信号灯类:(1) 变量:位置、颜色(红、黄、绿)、显示时间(秒)。(2) 方法:切换信号灯。创建并启动两个线程(东西向、南北向)同时运行。3) 实验要求(3)设计线程。(4)设计路口信号灯示意图界面。(5)进一步将每个方向的信号灯分成3种车道灯:左转、直行和右转。(6)根据...

2018-06-20 10:58:17 9856 4

原创 Python爬取登录后的OJ练习中的题目数据

备注:python:2.7.12  ubantu:16.04(32位)浏览器:Firefox这段时间一直在研究爬虫,也写过爬小电影磁力链接、花瓣网美女图片啥的,不过那些都没什么卵用,为了正义,这次我选择了爬OJ题目!(其实是因为想练习一下request登录之后保存cookies~~)博主是湖南农业大学的大三学生,因为本校ACM较弱(苦笑脸),OJ也没啥人维护,窃以为很容

2017-10-04 14:52:02 2792

原创 HDU 1285 确定比赛名次 拓扑排序

HDU1285很简单的一道拓扑排序题,但是测试数据可能会给出重复的竞争关系。。。。所以在计算入度之前要加一个判断。。。#include #include #include #include #include using namespace std;int map[515][515],in[515],v[515];int main() { int n,

2017-08-17 16:16:29 225

原创 最长上升子序列 HDU 1025 Constructing Roads In JGShining's Kingdom

题目地址:HDU 1025用简单的DP复杂度为n*n 会TLE 找了一个用另外一种方法做的 复杂度为nlogn最长上升子序列#include #include #include #include #include #define N 500050using namespace std;int road[N],n;int dp[N],m;int find(in

2017-08-02 15:46:48 203

原创 HDU-1203 I NEED A OFFER! 动态规划

题目地址:HDU-1203用dp[i]表示现状态的概率,那么转移方程即为....(看代码里吧 懒得打了)#include #include #include #include #include using namespace std;struct college { int cost; double possible;} c[10000];i

2017-07-31 17:21:28 216

原创 HDU-1208 Pascal's Travels 动态规划

原题:HDU-1208从左到右、从上到下遍历每个点,然后分别往右、下更新状态就OK了#include #include #include #include #include using namespace std;char map[40][40];long long dp[40][40];int n;int main() { while(cin>

2017-07-31 16:53:56 221

原创 HDU 1075 Doing homework 动态规划状态压缩

原题:HDU-1075#include #include #include #include #include #include using namespace std;struct homework { char name[105]; int deadline; int time;} h[20];struct statu { int

2017-07-31 16:17:57 230

原创 POJ-3278 catch that cow 广度优先搜索

以牛的位置为起始点向前搜索,注意状态更新就好了不要问我为什么是从后往前搜...我也不知道,我第一遍从前往后搜的wa了 然后换从后往前搜就AC了...#include #include #include #include #include #include #include using namespace std;int dis[100005];int b

2017-07-31 15:20:39 203

原创 四色问题 zoj1084

原题:ZOJ 1084题目的大意是说有几个基站相连,每个基站都有一个频道,相连的基站的频道不能相同暴力搜就好了...#include #include #include #include #include using namespace std;int map[50][50],n,p[5];int color[50];int f() {

2017-07-31 11:12:28 377

原创 左偏树 Monkey King HDU-1512

原题:HDU-1512大意:有n只猴子,两只猴子闹矛盾,分别派出两批猴子中最强壮的猴子打架,各自损失一半生命值,打完之后成一波,问每次打完最强壮的猴子的血量。最开始用优先队列做的,n只猴子就n个优先队列,每次从队首取最强壮的猴子,打完之后再插进去,然后直接将两个优先队列合并就OK了,然后就...超内存了....后来在网上看用左偏树做,第一次听说...日狗...

2017-07-26 18:25:05 276

原创 树状数组求逆序数 HDU-1394 Minimum Inversion Number

题目地址:hdu-1394从后往前update每插入一个数便getsum一次 得到有多少比他小的数 便是这个位置的逆序对 把所有位置的逆序对加起来便可以得到逆序数对与每个串来说,相对于上一个串只有第一个位置的数被挪到最后去了 所以逆序数的改变关系应该是逆序数减去小于第一个数的个数再加上大于第一个数的个数即 miin=sum - getsum(a[1]) + [n-1-g

2017-07-19 12:59:14 202

原创 母函数 HDU-1171 Big Event in HDU

原题:HDU-1171设p[i]为第i个物品的value,num[i]为第i个物品的数量,那么可得母函数的一般公式限定值可以取总值的一半,既sum/2。用数组ans[i]保存x的i次方的系数,所以结果就是看最接近限定值的不为零的ans[i]就好啦#include #include #include #include using

2017-07-18 16:49:36 212

原创 母函数 HDU 1521 排列组合

原题:HDU-1521 排列组合母函数详解:母函数与排列组合#include #include #include using namespace std;double p[20],temp[20];double jc[15];int num[20];int main(){ int n,m; jc[0]=1; for(int i=1;

2017-07-18 10:37:14 284

原创 PAT L1-006 连续因子

原题:PAT L1-006这个题不难,暴力就能过,但是是个教训QAQ最开始想的是从前往后找,那么就会碰到一个问题  比如 60这个数据点  正确答案应该是 3*4*5然而从前往后找的话就会是 2*3 因为找到4的时候除不断就会跳出来。。。找最长因子应该先找大的因子  我想大概是因为小因子能除断数更多。。#include #include #inclu

2017-03-18 14:15:04 398

原创 dingyeye loves stone 尼姆博弈

原题:HDU-5996很详细的一篇尼姆博弈的博客 :尼姆博弈这个题目把跟节点定义为深度为0,然后先手拿掉最后一个奇数层的点就必赢,所以只要把每个奇数层的点XOR起来,为非尼姆平衡就好了#include #include #include using namespace std;int depth[100010];int father[100010];

2017-03-15 12:09:04 244

原创 飞越原野 DFS寻找最优路径

原题:飞越原野很简单的一道DFS题,注意看好题意就行了#include #include #include using namespace std;char map[110][110];int v[110][110];int n,m,d;int X[]= {0,0,1,-1};int Y[]= {1,-1,0,0};int yes,sum;int ju

2017-03-12 10:05:25 799

转载 sdut 1008 最大公共子串(求n个字符串的最长公共子串)lcs

原题:最长公共字符串可以看看这个博主写的 sdut 1008 最大公共字串我等弱渣只能加个注释学习学习。。#include #include #include #include using namespace std; int leftup=1,left=2,up=3; int sum[110][110]; int pt[11

2017-03-11 11:07:27 1606 3

原创 Sliding Window POJ - 2823 线段树区间更新

原题:POJ-2823一个线段树求区间最大最小很基础的一个题目#include #include using namespace std;int n,k;int a[1000100];int in[1000100],ax[1000100];struct node { int mmax,mmin,l,r; node *lson,*rson;

2017-03-08 12:31:01 233

原创 ACM Rank Table POJ - 2379

原题:POJ-2379这个题目....输入的判定列表不是按时间序的,所以在判断前要根据时间排序!然后,sort()不是稳定的排序。。。#include #include #include #include using namespace std;struct team { int name; int num[25];

2017-03-02 21:28:57 272

原创 Best Cow Line FZU - 1546

原题:FZU - 1546题目大意:给出一个序列q和一个空的序列m,可以从q的头部或者尾部取出一个字符加入到m的尾部,要求新的序列m字典序最小简单的贪心就行,用两个标记向中间移动,谁小就把谁加入到新序列中#include #include using namespace std;char s[2010];char m[2010];int n;i

2017-03-02 10:50:04 266

原创 DNA Sorting HDU - 1379

原题:HDU-1379题目大意是给出n行m列DNA序列,输出以逆序数从小到大的顺序输出,且逆序数相同的序列按照输入顺序输出其实就是一个按照逆序数的稳定排序这个题目数据比较小,可以直接用两个循环求逆序数然后用sort()排序就OK了 PS:sort是稳定的排序!#include #include #include usin

2017-03-02 08:51:11 241

原创 Constructing Roads In JGShining's Kingdom HDU-1025 动态规划-LCS

题目地址:HDU-1025看了题解才知道这是个求最长上升子序列的题,然鹅,动态规划啥的都忘了 QAQ自己想了想递归,但是WA了,留白,以后再总结看了网上的题解,绝大部分做最长子序列都是用递推用一个m[i]数组表示当子序列长度为i时最后一个数然后从1-n递推,如果a[i]>m[len],则加在后面,否则从1-len中寻找a[i]>=m[p]

2017-03-01 22:18:40 235

原创 Line belt HDU - 3400

原题:HDU- 3400三分搜索用来找中间最优点,设变量l、r、mid=(l+r)/2、mmid=(mid+r)/2;一步步向最优值逼近,适用于二次函数模型这个题以找AB的最优点来寻找CD的最优点,用两个三分搜索#include #include #include #include using namespace std;double Ax,Ay,B

2017-03-01 15:28:39 229

原创 Bandwidth UVA-140

原题:UVA-140看UVA的题目大片的英文经常被吓到 英语弱渣伤不起。。本来以为会很难,回溯法?什么鬼后来看了题解。。特么的不就是DFS的枚举吗!#include #include #include #include using namespace std;char s[200];int out[30],map[30][30],v[3

2017-02-27 17:15:02 228

原创 Ignatius and the Princess II HDU - 1027

题目地址:HDU-1027做法跟这个一样  排列 POJ - 1833#include #include #include using namespace std;int n,k;int num[1000];int main() { int i,x,y,MIN; while(~scanf("%d %d",&n,&k)) { for(i=

2017-02-26 11:02:24 189

原创 Lotto POJ-2245

原题:POJ-2245#include #include using namespace std;int n;int num[20];int suc[20];void dfs(int t,int m){ int i; if(t>=6){ for(i=0;i<5;i++) printf("%d ",suc[i]);

2017-02-26 10:34:36 206

原创 排列 POJ - 1833

题目地址:POJ-1833/*当序列递减的时候才是最大所以,先从后往前找到一个 s[n]<s[n+1]的n点然后在n+1后面的点找一个s[k]s[n]的s[k]值最小的k点 k点与n交换如果找不到则n点与n+1点交换对n点以后的序列排序*/#include #include #include using namespace std;int num[1200];

2017-02-26 09:41:59 373

原创 产生冠军 HDU-2094

题目地址:HDU-2094这个题目我真的是日了狗了,亏我想的那么复杂原来只要判断一场未输的选手是否有且只有一个就行了 我还考虑了这种有环的情况,当另外几个人输赢刚好成一个环,那么一场没输的人是否为冠军原来,这个比赛是积分制。。QAQ#include #include #include using namespace

2017-02-25 20:26:40 262

转载 Sorting It All Out POJ-1094

题目:POJ-1094参考:POJ1094拓扑排序利用拓扑排序判断有向图是否有环,在拓扑排序中判断无环图的入度为0的点是否有且只有一个,若为零,则有环,若大于一,则不确定#include #include #include #include using namespace std;int map[30][30],indegree[30];int i

2017-02-25 18:47:36 185

转载 逃离迷宫 HDU-1728 BFS深度搜索

题目:HDU-1728参考:HDU1728 BFS#include #include #include #include using namespace std;char map[110][110];int v[110][110];int n,m,k,yes;int X[]= {0,0,-1,1};int Y[]= {-1,1,0,0};struct

2017-02-25 11:38:19 211

原创 Sudoku Killer HDU-1426

题目地址:HDU-1426直接用DFS应该会超时,然后我做了一个预处理,先把他们能选择数字先找出来,然后再DFS#include #include #include using namespace std;char map[12][12];int yes;struct node { int x,y; int v[10];} N[100];

2017-02-24 22:31:58 204

itcast书店原型

itcast书店原型--图书商城

2020-11-06

空空如也

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

TA关注的人

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