-----编程常识及技巧------
雪山上的小草
每天都是初学者
展开
-
Protobuf 使用指南
一、简介最近在手撸 IM 系统,关于数据传输格式的选择,犹豫了下,对比了 JSON 和 XML,最后选择了 Protobuf 作为数据传输格式。毕竟 Google 出品,必属精品????,[官网地址]。好了,舔狗环节结束,关于技术选择,都是需要根据实际的应用场景的,否则都是耍流氓,下文会进行简单的对比,先来看看官网的介绍:他是一种与语言无关、与平台无关,是一种可扩展的用于序列化和结构化数据的方法,常用于用于通信协议,数据存储等。他是一种灵活,高效,自动化的机制,用于序列化结构化数据,对比于转载 2020-08-27 15:28:49 · 900 阅读 · 0 评论 -
链式前向星
struct node{ int to; int next;}edge[N<<1];void add(int u,int v){ edge[num].to=v; edge[num].next=head[u];//通过head数组来储存edge[num].next表示的下一个节点序号num head[u]=num++;//以u为开始节点的边...原创 2018-03-12 17:09:55 · 121 阅读 · 0 评论 -
蓝桥杯大数十六进制转八进制
问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。 【注意】 输入的十六进制数不会有前导0,比如012A。 输出的八进制数也不能有...原创 2018-03-15 21:50:02 · 223 阅读 · 0 评论 -
C字符串与C++中string的区别详解
在C++中则把字符串封装成了一种数据类型string,可以直接声明变量并进行赋值等字符串操作。以下是C字符串和C++中string的区别: C字符串 string对象(C++)所需的头文件名称 <string>或<string.h> <string>或<string.h>需要头文件 原因 为了使用字符串函数 为了使用string类声明 方式 cha...转载 2018-03-20 22:07:47 · 1206 阅读 · 0 评论 -
天梯赛L2-008. 最长对称子串
L2-008. 最长对称子串时间限制100 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定"Is PAT&TAP symmetric?",最长对称子串为"s PAT&TAP s",于是你应该输出11。输入格式:输入在一行中给出长度不超过1000的非空字符串。输出格式:在一行中输出最长对...原创 2018-03-21 21:02:31 · 186 阅读 · 0 评论 -
STL set容器方法总结
1.关于setC++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如:插入、排序、删除、查找等。让用户在S...原创 2018-03-24 00:05:51 · 217 阅读 · 0 评论 -
天梯赛L2-017. 人以群分
L2-017. 人以群分时间限制150 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越社交网络中我们给每个人定义了一个“活跃度”,现希望根据这个指标把人群分为两大类,即外向型(outgoing,即活跃度高的)和内向型(introverted,即活跃度低的)。要求两类人群的规模尽可能接近,而他们的总活跃度差距尽可能拉开。输入格式:输入第一行给出一个正整数N(2 ...原创 2018-03-24 15:53:24 · 259 阅读 · 0 评论 -
历届蓝桥杯C/C++省赛试题
2012年第三届蓝桥杯C/C++程序设计本科B组省赛2013年第四届蓝桥杯C/C++程序设计本科B组省赛2014年第五届蓝桥杯C/C++程序设计本科B组省赛2015年第六届蓝桥杯C/C++程序设计本科B组省赛2016年第七届蓝桥杯C/C++程序设计本科B组省赛...原创 2018-03-24 16:26:59 · 6092 阅读 · 1 评论 -
天梯训练题L2-024. 部落
L2-024. 部落时间限制120 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。输入格式:输入在第一行给出一个正整数N(<= 104),是已知小...原创 2018-03-28 17:51:16 · 185 阅读 · 0 评论 -
拓扑排序的原理及其实现
出处:http://blog.csdn.net/dm_vincent/article/details/7714519本文将从以下几个方面介绍拓扑排序:拓扑排序的定义和前置条件和离散数学中偏序/全序概念的联系典型实现算法Kahn算法基于DFS的算法解的唯一性问题实际例子 取材自以下材料:http://en.wikipedia.org/wiki/Top转载 2017-10-17 18:05:16 · 334 阅读 · 0 评论 -
STL 优先队列的优先级
转载于http://blog.csdn.net/a_eagle/article/details/7371974 1 "font-size:24px;">struct cmp1 2 { 3 bool operator ()(int &a,int &b) 4 { 5 return a>b;//最小值优先 6 }转载 2017-10-17 18:05:48 · 158 阅读 · 0 评论 -
hdu1116回溯N皇后问题
题目连接经过思考,不难发现:恰好N个皇后放在不同行不同列,那么是不是可以转换成N个皇后所在行分别确定(一人一行)的情况下对她们的所在列的枚举。也就是列的全排列生成问题,我们用c[x]表示x行皇后的列编号。而我们知道0~N-1的排列一共有N的阶乘,枚举量不会超过它。if(cur==n)//递归边界。只要走到这里,所有的皇后必然不冲突 tot++;根原创 2017-10-17 17:51:01 · 132 阅读 · 0 评论 -
大数的阶乘
我们以1000为例,为了保存结果,需要先分析1000!有多大。大约为4*10的2567次方,因此可以用一个3000个的元素的数组f保存。为了方便进位,我们让f[0]保存各位,f[1]保存十位。。。。。。在输出时要忽略前导0。4!=24,那么从f[2]~f[1000]都为0需要忽略输出。 1 #include 2 #include 3 #include 4 #include 5 us原创 2017-10-17 17:49:59 · 132 阅读 · 0 评论 -
质因数分解
1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int main() 8 { 9 __int64 n,k,i,j;10 while(scanf("%I64d",&n)!=EOF)11 {12 k=sqrt(n);j=0;13原创 2017-10-17 17:49:26 · 160 阅读 · 0 评论 -
数据类型范围
unsigned int 0~4294967295 int 2147483648~2147483647unsigned long 0~4294967295 long 2147483648~2147483647long long的最大值:9223372036854775807long long的最小值:-9223372036854775808原创 2017-10-17 17:48:32 · 122 阅读 · 0 评论 -
等式转换降低时间复杂度
ECJTU16级校赛 第四题:LB的公式Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)Total Submission(s) : 40 Accepted Submission(s) : 16Font: Times New Roman | Verdana原创 2017-10-17 17:47:57 · 310 阅读 · 0 评论 -
模运算的基本性质
基本理论 基本概念给定一个正整数p,任意一个整数n,一定存在等式 n = kp + r ; 其中k、r是整数,且 0 ≤ r 对于正整数p和整数a,b,定义如下运算: 取模运算:a % p(或a mod p),表示a除以p的余数。 模p加法:(a + b) % p ,其结果是a+b算术和除以p的余数,也就是说,(a+b) = kp +r,则(a + b) % p原创 2017-10-17 17:45:58 · 12596 阅读 · 1 评论 -
codeforces 776C Molly's Chemicals(连续子序列和为k的次方的个数)
题目链接题意:给出一个有n个数的序列,还有一个k,问在这个序列中有多少个子序列使得sum[l, r] = k^0,1,2,3……思路:sum[l, r] = k ^ t, 前缀和sum[r] = sum[l-1] + k^t。即如果后面有一段序列使得sum[l,r] = k^t,那么它可以转化为前缀和相减使得这一段大小为k^t,即sum[i] = sum[j] + k^t (1 那么对原创 2017-10-17 17:47:18 · 227 阅读 · 0 评论