自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TCP/IP 第4章 基于TCP的服务器端/客户端(1)

TCP:Transmission Control Protocol,传输控制协议。实现基于TCP的服务器端/客户端TCP服务端的默认函数调用顺序socket()-bind()-listen()-accept()-r/w-close()进入连接请求状态:当已经调用bind函数给套接字分配了地址之后,接下来就要通过调用listen函数进入等待连接请求状态。只有调用了listen函数...

2019-04-06 13:24:01 339

原创 TCP/IP 第3章 地址族与数据序列

3.1 分配给套接字的IP地址与端口号IP是Internet Protocol(网络协议)的简写,是为收发网络数据而分配给计算机的值。端口号并非赋予计算机的值,而是为区分程序中创建的套接字而分配给套接字的序号。网络地址:A类:0-127、B类128-191、C类192-223。通过套接字收发数据时,数据传到网络后即可找到正确的主机。端口号:端口号就是在同一操作系统内为区分不同套接字而设...

2019-04-04 13:30:30 314

原创 TCP/IP 第2章 套接字类型与协议设置

创建套接字:int socket(int domain, int type, int protocol);成功时返回文件描述符,失败时返回-1。domain:套接字中使用的协议族(protocol family)信息。type:套接字数据传输类型信息。protocol:计算机间通信中使用的协议信息。Protocol Family:头文件sys/socket.h...

2019-03-29 15:23:19 292

原创 TCP/IP 第1章 理解网络编程和套接字

套接字的应用:服务端:1.socket函数创建套接字。2.调用bind函数给套接字分配ip地址和端口号。3.调用listen函数转为可接受请求状态。4.调用accept函数受理连接请求服务器端代码实例:#include <stdio.h>#include <stdlib.h>#include <string.h>#inc...

2019-03-29 14:21:31 292

原创 Codeforces Round #452 (Div. 2) - F. Letters Removing(树状数组+set)

F. Letters Removingtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputPetya has a string of lengthnconsisting of small and lar...

2019-03-28 16:42:32 562

原创 二叉树的非递归遍历实现

#include <iostream>#include <stack>#include <vector>#include <algorithm>#include <cmath>#include <unordered_map>#include <string.h>using namespace std...

2019-03-28 16:38:57 228

原创 实现next_permutation

#include <iostream>#include <vector>#include <stack>#include <map>#include <list>#include <thread>using namespace std;const int N = 1e5+5;void Reverse(int...

2019-03-22 21:23:09 453

原创 BST的插入+删除任意节点的递归实现

主要是在bst上删除任意一个节点。通过寻找中序后继节点来完成连接。 #include &lt;iostream&gt;#include &lt;vector&gt;#include &lt;cstdio&gt;#include &lt;queue&gt;#include &lt;cmath&gt;#include &lt;string.h&gt;using namespa...

2019-02-22 22:23:15 714

原创 牛客练习赛39

https://ac.nowcoder.com/acm/contest/368#question B:进行根、右、左的树遍历。然后求最长上升子序列长度。#include&lt;iostream&gt;#include&lt;math.h&gt;#include&lt;string.h&gt;#include&lt;set&gt;#include&lt;vector&gt;...

2019-02-09 11:18:26 259

原创 牛客练习赛38

https://ac.nowcoder.com/acm/contest/358#question A:给人排个序,比我大的就膜一下,不然跳过。 B:推个公式。利用全概率公式还是贝叶斯公式来着。 C:把状态处理成了字符串。幻方很少,所以预处理出来。从幻方出发,bfs。把所以答案找到。正确做法是哈希。我把map和set用了unordered了。卡过 ...

2019-02-09 11:11:45 231

原创 CodeCraft-19 and Codeforces Round #537 (Div. 2)

http://codeforces.com/contest/1111 A. Superhero Transformation:给你两个字符串,问你S1能不能变到S2.元音可以变任意元音,辅音可以变任意辅音。变化的次数不限。wa点:长度不同。 #include&lt;iostream&gt;#include&lt;math.h&gt;#include&lt;stri...

2019-02-09 11:00:34 258

原创 Codeforces Round #536 (Div. 2)

http://codeforces.com/contest/1106A. Lunar New Year and Cross Counting:在n*n的矩阵里找一个固定的图案,n很小,暴力就行。#include&lt;iostream&gt;#include&lt;vector&gt;#include&lt;string.h&gt;#include&lt;unordered_s...

2019-02-09 10:48:24 170

原创 Educational Codeforces Round 54 - E. Vasya and a Tree (树+树状数组)

http://codeforces.com/contest/1076/problem/E 题意:给你一棵n个点的树,以1为根。一开始n个点的权值为0,每个边的边长为1.给你m个操作,每次给v,d,x。把所有祖先是v的,且距离v不超过d的点的权值都加上x。 POINT:就是一个树上的搜索,加上树状数组(x这个点的答案是他的深度到n这些权值的和)它要存,当前状态下,操作...

2018-11-13 22:09:47 267

原创 Educational Codeforces Round 54 - D Edge Deletion(最短路)

http://codeforces.com/contest/1076/problem/D题意:给你一张图,起点为1,让你最多保留k条边,使得1到点i的最短路长度di【不变】的个数最多。 POINT:想一想就知道,每加一条边,就可以使一个点的最短路保持不变。所以这题就是选k条边,可以让k个点的最短路不变。具体就是跑一个最短路。每当确定一个点的最短路的时候,即vis[u...

2018-11-13 22:01:43 230

原创 牛客国庆集训派对Day6 - E Growth (DP+离散化)

https://www.nowcoder.com/acm/contest/206/EPOINT:主要还是离散化,然后map里存,(x,y)这里属性里可以获得多少Z。add[x][y]代表刚刚到了x,y后,每天可以获得多少z。DP[x][y]代表刚刚到了x,y后,最多总共获得了多少z。 #include&lt;stdio.h&gt;#include&lt;iostream...

2018-10-15 17:38:54 276

原创 牛客国庆集训派对Day6 - A Birthday (网络流 花费和流量有关)

https://www.nowcoder.com/acm/contest/206/APOINT:这题本质上就是一个网络流。但它的边的花费是流量的平方。我们可以对每个点对,增加几条边,花费分别为1,3,5,7,9.容量为1.这样就实现了花费为流量的平方。 #include &lt;bits/stdc++.h&gt;using namespace std;#defin...

2018-10-15 17:35:31 203

原创 牛客国庆集训派对Day5 - B 电音之王 (取大mod的快乘黑科技)

https://www.nowcoder.com/acm/contest/205/B #include&lt;stdio.h&gt;#include&lt;iostream&gt;#include&lt;math.h&gt;#include&lt;assert.h&gt;using namespace std;typedef long long LL;typedef uns...

2018-10-15 17:30:12 243

原创 Codeforces Round #513 - E. Sergey and Subway (树形DP)

http://codeforces.com/contest/1060/problem/E题意:问你一棵树上的所有点与点之间的距离。不过可以2步当成1步走。(跳着走)(即如果两个点隔了一个点,就连一条边)POINT:首先,如果距离为偶数,直接除2,如果距离为奇数,除2+1。 算出所有点与点之间的距离(不跳的真实距离)。树形DP解决。可以算每条边被走了几次,边(u,...

2018-10-07 19:51:08 357

原创 牛客国庆集训派对Day4 - H 树链博弈

https://www.nowcoder.com/acm/contest/204/HPOINT:首先,每层的黑点数为偶数的时候,为先手必败态。首先,没有黑点,都是0,肯定是先手必败态。当每层的黑点数为偶数时,A先手,他把一个黑点变为白色时(假设不动它的祖先们的颜色),B把同层的另一个黑点变为白色,就回到了每层的黑点数为偶数的时候(即先手必败态)。如果他把一些祖先们的颜色变了,我们还...

2018-10-07 19:40:38 273

原创 牛客国庆集训派对Day3 - I Metropolis (最短路)

https://www.nowcoder.com/acm/contest/203/I POINT:把大都会都先放入队列。相当于多起点的最短路。然后进行最短路。记录每个点离他最近的大都会(来源)。这个在松弛的时候就可以记下来。然后对于每一条边,两个端点的大都会不同时,可以知道这两个大都会的距离为dis[u]+dis[v]+w.更新答案。 #include &lt;v...

2018-10-07 18:59:11 248

原创 牛客国庆集训派对Day3 - B Tree (树形DP)

https://www.nowcoder.com/acm/contest/203/B 题解  思路差不多,不过没用那个flag。如果碰到dp[u]+1 % mod ==0的时候。直接重新搜一遍。#include &lt;vector&gt;#include &lt;stdio.h&gt;#include &lt;iostream&gt;#include &lt;st...

2018-10-07 18:54:19 253

原创 EOJ Monthly 2018.10 - C 痛苦的 01 矩阵 (数学推导)

https://acm.ecnu.edu.cn/contest/113/problem/C/ POINT:用  表示第i行有多少个 0,用 表示第 j 列有多少个 0,bij 表示第 i 行第 j 列是否为 0。则 cost(i,j)=+−。设C为全矩阵0的个数。同理求和2cb=2c^2。所以得每次修改操作至多只会影响一个 ci 和一个 ri,将...

2018-10-03 21:53:52 322

原创 牛客国庆集训派对Day2 - A 矩阵乘法 (分块)

https://www.nowcoder.com/acm/contest/202/A题意:给你两个矩阵,做乘法之后,算出所有元素异或后的答案。 POINT:把N x P, P x M的两个矩阵,都对p分为每8个一份。对n行的p个数,每8个数一组,把所有选取的状态全部处理出来,8个数选或不选,就是2^8=256种情况。算出每种状态的和。效率为o(n*p*256)。...

2018-10-03 21:22:29 267

原创 牛客国庆集训派对Day1 - G Kimi to Kanojo to Kanojo no Koi (构造)

https://www.nowcoder.com/acm/contest/201/G POINT: 看题解就好 #include &lt;stdio.h&gt;#include &lt;vector&gt;#include &lt;iostream&gt;#include &lt;algorithm&gt;#include &lt;string.h&gt;#...

2018-10-03 21:08:48 385

原创 牛客国庆集训派对Day1 - J Princess Principal (线段树+栈)

https://www.nowcoder.com/acm/contest/201/J题意:有m种括号,给你一个括号字符串,每次询问问你l到r合法不。 POINT:注意:([)]这样的括号匹配是不合法的。这样就很容易知道,每一个右括号如果能匹配,肯定是有唯一的左括号的。如果只有一种括号,我们怎么判断他合法的呢:遇左加入栈,遇右pop栈,如果栈空,则不合法。如果最后栈不...

2018-10-03 21:04:42 331

原创 hihocoder 编程练习赛78 - D 泥泞的道路(最短路)

https://hihocoder.com/contest/offers78/problem/4 POINT:从起点到某个点肯定有多条路,这些路可以抽象为(a,b),a代表经过的路径条数,b代表经过的路径总长度。那么答案就= a*天数+b。那么我们就要找到每个点的多对(a,b),当天数较多时,明显a小的有优势,而当天数较少时,可能a大的有优势。 当然这些比较都是在a确定的情...

2018-10-01 22:36:51 418

原创 AtCoder Regular Contest 103 - E Tr/ee (图论的构造)

https://arc103.contest.atcoder.jp/tasks/arc103_c题意:连通分量大小,即一些点被连起来,这些点的个数。给你一个01串:如果第i个字符是1,那么我们一定可以移除一条边(且必须移除),来得到大小为i的连通分量。如果是0,我们无法移除一条边,来得到大小为i的连通分量。(即,不管移除哪一条边都没有机会得到)问你能不能构造出这棵树。 ...

2018-09-30 21:05:14 487

原创 AtCoder Regular Contest 103 - D Robot Arms (二进制构造)

优秀的题解补充:根据这个方法,{1,2,4,8,,16,32,...2^k}这些边。先用最大的2^k之后,新的位置离我们的目标问题肯定比2^k小。所以可以用{1,2,4,8,,16,32,...2^k-1}这些边来形成。这样一步步,就接近了终点。 #include &lt;stdio.h&gt;#include &lt;vector&gt;#include &lt...

2018-09-30 20:43:41 589 2

原创 Wannafly挑战赛25 - D 玩游戏(DFS+博弈)

https://www.nowcoder.com/acm/contest/197/DPOINT:我觉得题解说的很棒了。题解:题目中对于图的限制可以看做 1 到 n 的所有简单路径互不相交。 在结束游戏前的最后一步一定是剩下一条 1 到 n 的路径,并且路径上的权值全都是一。如 果剩下的最后一条路径确定了,游戏的总步数也确定了,那么先后手的胜负也确定了。 那么双方的策略就使尽可能...

2018-09-30 20:40:05 347

原创 Codeforces Round #467 (Div. 2) - E. Lock Puzzle(构造)

http://codeforces.com/contest/937/problem/E 题意:给你一个shift(x)操作:把最后x个字符倒一下,提到最前面。问你如何从S到T。操作不能超过6100。 POINT:用三个shitf操作,可以把某个位置的数提到最前面(且他前面的数顺序保持不变)。要把第i个数提到最前面。操作是. shift(n),shift(i-1),s...

2018-09-30 20:33:09 175

原创 Codeforces Round #467 (Div. 2) - D. Sleepy Game (找环)

http://codeforces.com/contest/937/problem/D题意:给你一个有向图,A和B博弈,从一个S起点开始走,谁不能走了谁就输了。B睡着了,A替B走。所以B可以很蠢。如果A不能赢,那么看看A能不能使游戏永远进行下去。否则只能输了。 POINT:要赢肯定是有一条路径,走到尾的时候刚好是奇数步。没有这种路径,就从S开始找能不能进入一个环...

2018-09-30 20:29:22 204

原创 ZOJ 3753 - Simple Equation (数论)

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3753题意:给你A,B,M.找出满足AX + BY = XY的X,Y。条件X&gt;=M,在X+Y最小的前提下 X最小。 POINT:变形得 (X-B)*(Y-A)=A*BAB已知,求x+y最小,就是求x-b+y-a最小。x-b和y-a明显是a...

2018-09-27 22:21:05 186

原创 ZOJ 3755 - Mines (状压DP)

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5178题意:大家都玩过扫雷吧。给你n*m的扫雷数字。数字都在偶数列上。也就是说,棋盘是n*(2*m+1)大小。让你输出最少的雷数。 POINT:n最大是10,暗示我们状压DP。挺简单的,不阐述了。#include &lt;stdio.h&...

2018-09-27 22:15:58 229

原创 ZOJ 3751 - Diagonal (构造)

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5174题意:给你n*n的空矩阵,让你从1到n*n这些数,按顺序在矩阵从填上。你可以任意选择起点,然后上下左右走,1 2 3的填。让你构造出主对角线和最大。输出和。 POINT:从(2,2)开始构造,到(3,3)-(4,4)--(n,n) 然后跑...

2018-09-27 22:12:26 199

原创 Codeforces Round #510 (Div. 2) - D. Petya and Array (树状数组+离散化)

http://codeforces.com/contest/1042/problem/D题意:给你n个数,询问你区间和小于t的个数。POINT:即sum[r]-sum[l-1]&lt;t的(r,l)的对数(r&gt;l)。可以用逆序对的做法。把sum数组离散化之后。每次sum[i]去找&gt;sum[i]-t的前缀和的个数。 别忘记了sum[0]=0. ...

2018-09-27 22:03:17 186

原创 Codeforces Round #510 (Div. 2) - C. Array Product

http://codeforces.com/contest/1042/problem/C题意:给你一个n个数的序列。两种操作。1.选择序号i,j,去掉a[i],让a[j]=a[i]*a[j]。这个操作可以无限次。2.选择序号i,去掉a[i]。进过n-1次操作,只会剩下一个数,让这个数最大。 POINT:如果负数是奇数个,那么绝对值最小的负数可以单独去掉,(如果有0,...

2018-09-27 21:57:32 182 1

原创 Codeforces Round #512 (Div. 2) - D. Vasya and Triangle (皮克公式)

http://codeforces.com/contest/1058/problem/D 题意:在x [0,n]. y[0,m]的坐标系中,找到一个格点三角形(三角形的顶点全在格点上),他的面积是n*m/k. POINT:皮克定理是指一个计算点阵中顶点在格点上的多边形面积公式,该公式可以表示为2S=2a+b-2,其中a表示多边形内部的点数,b表示多边形边界上的点数,S表示多...

2018-09-27 21:52:04 191

原创 牛客网NOIP赛前集训营-普及组(第一场) - 括号(DP)

https://www.nowcoder.com/acm/contest/164/C 这题就是在一个括号串里找合法的括号匹配数。DP[x]代表(比)多几个。 当然(不能比)少。DP[0]是最后的答案。类似这题 #include &lt;iostream&gt;#include &lt;stdio.h&gt;#include &lt;string.h&gt;#in...

2018-09-27 21:43:28 352

原创 今日头条编程第二题 - 异或 (字典树)

题目  POINT:把所有数从高到低加入01字典树。然后对每一个数载字典树里找。对于数x,如果当前位数的M有1,那么对答案有贡献的肯定是和x不一样的另一边,往x^1走,这样异或后才能是1(跟上M的脚步)如果当前位数的M是0,那么我们有机会大于M,对答案的贡献就是和x不一样的另一边的子树。然后往x走。 #include &lt;stdio.h&gt;#incl...

2018-09-27 21:40:15 299

原创 牛客练习赛27 - D 愤怒 (DP)

https://www.nowcoder.com/acm/contest/188/DA、B序列DP[i][j]代表第一个括号序列的左括号比右括号多j个。如果遇到"(" ,A序列的最大j肯定会加1.反之,A序列的最大j会减1。 因为:这个")"如果给B序列,那么为了稳定B序列,之前肯定分一个"("给B,如果给A序列,那么j肯定--。所以不管怎么样,A序列的最大J肯定会减1...

2018-09-23 11:17:38 334

空空如也

空空如也

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

TA关注的人

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