好用的模板(不断增补中)
来源:互联网 发布:ubuntu 硬盘大小 编辑:程序博客网 时间:2024/05/28 18:45
好用的模板……有需要的拿去
在使用中如发现bug欢迎留言指出
1、打codeforces的比赛的时候是不是像我一样感觉时间不够用,恨不得多长几只手打代码?其实看看神犇的代码会发现,他们为节省时间都是直接在编译器的缺省值里打一堆头文件,还有一些神奇的#define……balabala的,我把自己打cf常用的头文件还有一些常用的define,以及快速读入搞成模板放上来
#include<cstdio>#include<iostream>#include<cstring>#include<cstdlib>#include<algorithm>#include<cmath>#include<queue>#include<deque>#include<set>#include<map>#include<ctime>#define LL long long#define inf 0x7ffffff#define pa pair<int,int>#define pi 3.1415926535897932384626433832795028841971using namespace std;inline LL read(){ LL x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}int main(){}
2、高精度实在是让人头疼的东西,每次写加减乘除读入输出都好麻烦……目前写了非负高精整数的加减乘minmax……放模板
#define mx 100//高精位数struct gaojing{ int len; int a[mx+10];};//定义高精度非负数类型inline void set0(gaojing &s)//高精清零{ s.len=1; for (int i=1;i<=mx+5;i++)s.a[i]=0;}inline void inputn(gaojing &a)//高精输入{ set0(a); char ch=getchar(); while (ch<'0'||ch>'9')ch=getchar(); while (ch>='0'&&ch<='9') { a.a[a.len++]=ch-'0'; ch=getchar(); } a.len--; int change[mx+15]; for (int i=1;i<=a.len;i++) change[i]=a.a[i]; for (int i=1;i<=a.len;i++) a.a[i]=change[a.len-i+1]; while (a.a[a.len]==0)a.len--;} inline void put(gaojing a)//高精输出并换行{ for (int i=a.len;i>=1;i--)printf("%d",a.a[i]); printf("\n");}inline int cmp(const gaojing &a,const gaojing &b)//比较:a<b:1 a>b:-1 a==b:0 { if (a.len!=b.len) { if (a.len<b.len)return 1; else return -1; } for (int i=a.len;i>=1;i--) if(a.a[i]<b.a[i])return 1; else if (a.a[i]>b.a[i])return -1; return 0;} inline gaojing max(const gaojing &a,const gaojing &b)//高精度max { int opr=cmp(a,b); if (opr==1)return b; else return a;}inline gaojing min(const gaojing &a,const gaojing &b)//高精度min{int opr=cmp(a,b);if (opr==1)return a;else return b;} inline gaojing operator + (const gaojing &a,const gaojing &b)//高精度加法{ gaojing c;set0(c); int maxlen=max(a.len,b.len); for (int i=1;i<=maxlen;i++) { c.a[i]=c.a[i]+a.a[i]+b.a[i]; if (c.a[i]>=10) { c.a[i+1]+=c.a[i]/10; c.a[i]%=10; } } c.len=maxlen+4; while (!c.a[c.len]&&c.len>1) c.len--; return c;}inline gaojing operator - (const gaojing &a,const gaojing &b)//高精度减法,需保证a>b{ gaojing c;set0(c);gaojing d;d=a; for (int i=1;i<=b.len;i++) { c.a[i]=d.a[i]-b.a[i]; if (c.a[i]<0) { c.a[i]+=10; int now=i+1; while (!d.a[now]) { d.a[now]=9; now++; } d.a[now]--; } } for (int i=b.len+1;i<=d.len;i++)c.a[i]=d.a[i]; c.len=d.len; while (c.a[c.len]==0&&c.len>1)c.len--; return c;} inline gaojing operator * (const gaojing &a,const gaojing &b)//高精度乘法{ gaojing c;set0(c); for(int i=1;i<=a.len;i++) for (int j=1;j<=b.len;j++) c.a[i+j-1]+=a.a[i]*b.a[j]; int mxlen=a.len+b.len+5; for (int i=1;i<=mxlen;i++) { c.a[i+1]+=c.a[i]/10; c.a[i]%=10; } while (c.a[mxlen]==0)mxlen--; c.len=mxlen; return c;}
不断更新中
0 0
- 好用的模板(不断增补中)
- 几个好的博客和网站(不断积累中)
- 收录的好的文章,不断扩充中
- 进入项目不断学到的(不断补充中。。。)
- 几个好用的Cydia源推荐 (不断在更新.....)
- 好博客好文字好资源集锦------------------》【不断添加中】
- 给新手朋友推荐一些好的学习网站和资料(不断补充中,更新于08.09.20)
- 我的MIDlet模板(不断修改更新)
- 生活中不断总结,让好的东西成功自己的潜意识
- 文献管理软件Mendeley的缺陷 (更正,增补)
- ollydbg教学的增补篇
- 配接器ptr_fun的一点增补
- 博弈论中不断学到的
- bootstrap的一些好用的模板
- 好用的joomla模板下载网址
- 一个好用的Makefile模板
- 一个好用的Makefile模板
- gvim一个比较好用的模板
- ACdream 1224(贪心处理)
- jquery 实现iframe高度自适应
- POJ3352-Road Construction(边连通分量)
- acdream 1220 哈夫曼树
- 将WebCollector导入普通项目
- 好用的模板(不断增补中)
- 偶数
- 体系结构课程报告
- KMP 专场 POJ2752
- 设计模式之单例模式(Singleton)
- MySQL客户端查询中文显示为问号(linux)
- 判断单链表是否有环,以及如何找起始点,环的长度
- 判读是否为数字
- java中静态变量、方法使用注意