前言 传统socket编程中服务端一般为每一个客户端开启一个线程(一对一)。这样虽然可以使程序的结构简单明了并且方便对数据处理,但是这些都是建立在创建多个线程的基础上,也就是以牺牲线程为代价。一旦有大量数量了客户端连接服务端,我们的服务端需要开启很多线程这显然是不能被我们所接受的。那么为了解决这个问 ...
分类:
其他好文 时间:
2020-07-24 09:57:03
阅读次数:
95
如果是环状可以复制一份变直线求字符串最小表示法,如果存在一种,两个字符串相比前面相同,但是到后面不相同,且必然其中一个字典序打一些,那么大的字符串必然不可1-k前的子窜就不能满足条件。 1 #include <iostream> 2 #include <cstring> 3 using namesp ...
分类:
其他好文 时间:
2020-07-23 16:27:17
阅读次数:
63
#include<bits/stdc++.h> using namespace std; typedef long long ll; #define mem(a) memset(a,0,sizeof(a)) #define sc1(a) scanf("%lld",&a) #define sc2(a, ...
分类:
其他好文 时间:
2020-07-23 16:24:13
阅读次数:
69
1 #include <iostream> 2 #include <cstring> 3 4 int main() 5 { 6 char *str1 = "happy"; 7 //64位系统,返回的是指针的大小(指针占8字节) 8 std::cout << str1 << "-sizeof:" << ...
分类:
编程语言 时间:
2020-07-22 11:20:43
阅读次数:
71
我们都知道,Redis是由C语言编写的。在C语言中,字符串标准形式是以空字符\0作为结束符的,但是Redis里面的字符串却没有直接沿用C语言的字符串。主要是因为C语言中获取字符串长度可以调用strlen这个标准函数,这个函数的时间复杂度是O(N),由于Redis是单线程的,承受不了这个时间复杂度。 ...
分类:
其他好文 时间:
2020-07-21 11:35:32
阅读次数:
69
前言 大家有没有认真做几道题呢?(╮( ̄▽ ̄)╭) 没有做也没关系辣,好好听课没有问题的。 (登录hznoi) 简介 先 \(copy\) 一下论文: 在信息学竞赛中,有一类难度不大但异常麻烦的问题——数位计数问题,这类问题的主要特点是询问的答案和一段连续的数的各个数位相关,并且需要对时间效率有一定 ...
分类:
其他好文 时间:
2020-07-20 13:25:13
阅读次数:
136
模板: ditu[x1][y1]++; ditu[x2+1][y1]--; ditu[x1][y2+1]--; ditu[x2+1][y2+1]++; for(int i=1;i<=a;i++) for(int j=1;j<=b;j++) dp[i][j]=dp[i-1][j]+dp[i][j-1] ...
分类:
其他好文 时间:
2020-07-19 18:05:32
阅读次数:
73
题目链接 #解题思路 马拉车当然是求最长回文既简单又快速的方法,不过这里因为要联系hash就没用马拉车了。设回文串的中心为a,b(奇回文a=b)先正着hash一遍,再倒着hash一遍,就能得到[a+len,a]和颠倒后的[b,b+len]两个子串哈希值,对比它们的哈希值就能判断两个子串是否相等,至于 ...
Solution: Dijkstra (大概读作:迪杰斯特拉?) 算法思想: 给定一张n个点,m条边的图,起点为s。求起点s到图中所有点的最短路径(单源最短路。dis[i]表示从起点到i的最短距离。vis[i]表示此点是否已被标记确定为最短。 1、初始化dis[s]=0,其余结点dis为正无穷大。 ...
分类:
编程语言 时间:
2020-07-19 00:39:57
阅读次数:
85
char * longestCommonPrefix(char ** strs, int strsSize){ char ch; int len=0, i, j; if (strsSize < 1) {return "";} len = strlen(strs[0]); for (i=1; i<st ...
分类:
其他好文 时间:
2020-07-19 00:36:29
阅读次数:
79