ACM一些常用小技巧(博客收集+总结)
来源:互联网 发布:linux weblogic创建域 编辑:程序博客网 时间:2024/06/05 00:31
1,素数打表
这个几乎涉及到数学的题都要用,素数筛法打表是最快的,甚至同时可以求欧拉函数(这个在之前的博客说过)
素数打表推荐博客:http://blog.csdn.net/dinosoft/article/details/5829550
然后素数打表例题和欧拉函数的讲解:http://blog.csdn.net/qq_37497322/article/details/74859502
2,stl神器
stl很强大,虽然效率不是很高但是对于很多题足够了,可以省去很多的代码,如果卡内存卡时间就老老实实手写吧
我之前的博客讲过:http://blog.csdn.net/qq_37497322/article/details/74914999
3,欧几里得求最大公约数
int ojld(int x,int y){ int r=x%y; while(r!=0) { x=y; y=r; r=x%y; } return y;}如果求最小公倍数就用两数相乘除最大公约数就好了
4,快速幂
常规的求幂方法一般难一些的题都会超时,这里给出模板
假如x为底,y为指数
int mi(int x,int y){ int t=1; while(y!=0) { if(y%2==1) t*=x; x=x*x; y=y/2; } return t;}假如要%上一个数,假如要模的数为mod,写法
int mod=1e5+7;long long mi(long long x,long long y){ long long t=1; x=x%mod; while(y!=0) { if(y%2==1) t=(t*x)%mod; x=(x*x)%mod; y=y/2; } return t;}这里long long防爆
5.sort+结构体
这个用途很多很多,基本属于必会,用了stl里的sort
sort(a,a+n);这样写就是普通将一个数组a[n]从小到大排序,那么如果要从大到小呢,很简单,加上第三个参数
首先写一个函数
int cmp(int x,int y){ return x>y;}任何加上sort(a,a+n,cmp);
这样数组就按从大到小排好了
那么如果是结构体呢(最常用)
假如定义一个结构体
struct node{ int p1,p2;};node a[105];要按照优先级值p1按照从小到大排序,如果相同就按p2从小到大排序
那么这样写cmp函数
int cmp(node x,node y){ if(x.p1!=x.p1) return x.p1<y.p1; else return x.p2<x.p2;}然后sort(a,a+n,cmp);就按照要求排好了,如果还不懂就自己操作几遍看他们的排序情况,毕竟我一开始也不是很懂
还有优先队列的排序也是同理,要重载小于或者大于号,这个在stl里面有讲
阅读全文
0 0
- ACM一些常用小技巧(博客收集+总结)
- 总结一些在acm中常用的小技巧,小函数
- ACM数论一些简单结论和编程小技巧总结
- 一些收集的小技巧
- 收集了一些小技巧的连接 (.NET)
- 收集了一些小技巧的连接(.NET)
- 收集了一些小技巧的连接 (.NET)
- 总结一些常用web开发遇到的小问题及技巧。(不定时更新)
- 收集了一些小技巧的连接
- VC 6.0一些小技巧收集
- jsp的一些小技巧, 收集....
- QTP网上收集的一些小技巧
- iOS 开发一些小技巧(收集整理)
- css一些小技巧收集(未完待续)
- iOS----收集的一些小技巧
- Android中收集的一些小技巧
- 常用的一些小技巧
- ACM注意事项及一些小技巧
- 链表——Java实现
- java-访问修饰符
- ngixn如何控制多进程连接的平衡
- 图解集合3:CopyOnWriteArrayList
- hibernate中merge的使用以及与update的区别
- ACM一些常用小技巧(博客收集+总结)
- hibernate一对一外键映射
- Oracle数据库的基本操作指令
- 前端页码栏的制作
- FastDfs的使用
- Redux与React-看懂你就懂了
- linux常见配置
- Runtime的使用7 【动态添加方法】
- QTableWidget自动调整列宽和行高