语法基础
QQQQQHY
Never underestimate the bandwidth of a station wagon full of tapes hurtling down the highway.
—Tanenbaum, Andrew S. (1989).
展开
-
结构体struct
‘<’的重定义struct Project{ string name; int cnt;}project[100];bool operator<(const Project &p1, const Project &p2){ if(p1.cnt==p2.cnt) return p1.name<p2.name; return p1.cnt>p2.cnt;}原创 2016-08-24 16:02:09 · 165 阅读 · 0 评论 -
HASH
struct Hash_map{ static const int mask=0x7fffff; int p[mask+1],q[mask+1]; void clear() { memset(q,0,sizeof(q)); } int& operator [](int k) { int i; f原创 2016-11-01 15:57:40 · 511 阅读 · 0 评论 -
String
#include <string>#include <iostream>using namespace std;int main(){ string strinfo=" //*---Hello Word!......------"; string strset="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";转载 2016-10-31 14:33:26 · 257 阅读 · 0 评论 -
2596 售货员的难题[状态压缩&&优先队列]
2596 售货员的难题时间限制: 1 s空间限制: 32000 KB题目等级 : 钻石 Diamond题目描述 Description 某乡有n个村庄(1< n<=15),有一个售货员,他要到各个村庄去售货,各村庄之间的路程s(0< s<1000)是已知的,且A村到B村与B村到A村的路大多不同。为了提高效率,他从商店出发到每个村庄一次,然后返回商店所在的村,假设商店所在的村庄为1,他不知原创 2016-10-19 20:40:45 · 294 阅读 · 0 评论 -
LCA ST
ST算法:预处理每个节点的深度预处理pow[i]=2^i;算法是分两步的1.x,y走到同一深度。2.x,y要走到同一个点。预处理一个f数组f[i][j]表示i点向上走2^j步到达的点是谁for (int i=1;i<=n;i++) f[i][0]=pa[i];for (int j=1;j<=20;j++) for (int i=1;i<=n;i++) f[i][j原创 2016-11-10 20:48:50 · 312 阅读 · 0 评论 -
STL标准库中的算法函数
STL标准库中的算法函数转载 2016-10-29 16:36:23 · 218 阅读 · 0 评论 -
读入优化
inline int Read() { int x=0;char y; do y=getchar(); while (y<'0'||y>'9'); do x=x*10+y-'0',y=getchar(); while (y>='0'&&y<='9'); return x; }原创 2016-10-19 09:26:45 · 195 阅读 · 0 评论 -
二维前缀和
for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) { h[i][j] = Read(); sum[i][j] = sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1] + h[i][j]; }//二维前缀和原创 2016-10-19 09:25:16 · 319 阅读 · 0 评论 -
STL—transform
#include<algorithm>#include<iostream>#include<cctype>//toupperusing namespace std;//transform(数据起始,结束,写入目标的起始,执行的操作)//遍历一个容器里面元素 然后执行一个操作int f(char c){ return c+1; } int main(){ string s原创 2016-10-28 16:43:42 · 225 阅读 · 0 评论 -
我读《骗分导论》
KISS——Keep It Simple, Stupid在 写 代 码 之 前 先 写 注 释尽量不要使用浮点数;如果你不得不使用,在所有使用的地方设置允许的误差(绝对不要测试两个浮点数相等)注释要好像是写给某个了解该问题但并不了解程序代码的聪明人看的对任何你不得不考虑的东西加以注释在任何你看到了以后会问“他到底干什么用”的地方加注释(Anything you looked at原创 2016-10-27 16:33:27 · 2697 阅读 · 0 评论 -
[技巧]枚举子集的飘逸写法
设S表示一个01状态集,那么它的所有非空子集x可以通过以下代码枚举。for (int x = S; x; x = (x-1)&S)简单说明下原理(证明以后补上?):x = (x-1)&S实际上是把S中的0全部忽略,并不断减1的结果,比如S=1011,则x分别为:1011, 1010, 1001, 1000, 0011, 0010, 0001。忽略S中第二位的0其实就是111, 110, 101, 1转载 2016-10-27 08:02:21 · 323 阅读 · 0 评论 -
p3110 二叉堆练习3--排序
/*作者:QHY题目:p3110 二叉堆练习3*/#include<cstdio>#include<iostream>#include<cstring>#include<queue>using namespace std;struct node{ int l,r,n;};int x,y,n;priority_queue<int,vector<int>,greater<i原创 2016-09-25 12:17:59 · 248 阅读 · 0 评论 -
位运算
读取第 k 位: a>>k&1读取第 k 位并取反: ~a>>k&1将第 k 位清 0: a&=~(1<原创 2016-09-07 09:44:32 · 184 阅读 · 0 评论 -
C++优先队列的基本使用方法
C++优先队列的基本使用方法 #includeincludeincludeusing namespace std; struct node { friend bool operator< (node n1, node n2) { return n1.priority < n2.priority;//”<”为从大到小排列,”>”为从小打到排列 }转载 2016-09-13 10:38:15 · 266 阅读 · 0 评论 -
取整
include转载 2016-10-31 19:37:58 · 168 阅读 · 0 评论