ACM_常用技巧
我爱吃狮子头
有人在这虚度,有人在这成长
展开
-
弹性碰撞 Poj1852 、2674
http://poj.org/problem?id=1852 Poj1852 Ants Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 24325 Accepted: 9729 Description An army of ants walk on a horizontal pole...原创 2018-08-10 00:55:10 · 225 阅读 · 0 评论 -
小技巧(商上取整、字母转数字、统计字符串每个字母数量)
1.商上取整 int m,n,ans; ans=(m+n-1)/n; 例如: 被除数26,除数5,商上取整得6,即(26+5-1)/5=6。 被除数30,除数5,商上取整得6,即(30+5-1)/5=6(int是下取整)。 2.字母转数字 char a[100000+10]; cin>>a; for(int i=0;i<strlen(a);i++) { a[i]...原创 2019-02-08 21:25:43 · 486 阅读 · 0 评论 -
求绝对值_abs、fabs、fabsf
求绝对值 int abs(int i); double fabs(double i); float fabsf(float i);原创 2018-08-19 14:32:38 · 972 阅读 · 0 评论 -
判断奇偶
#include<cstdio> #include<algorithm> #include<cstring> using namespace std; const int N=1e6+11; char s[N]; int main(){ gets(s); int n=strlen(s); if(s[n-1]&1)//奇数 ...原创 2018-08-29 22:38:01 · 498 阅读 · 0 评论 -
高精度求幂取模(附C++、python3代码)
求x的n次方对mod(1e9+7)取模,当n巨大()时,连快速幂取模也不行。此时用下面的方法: C++: #include <bits/stdc++.h> using namespace std; const int mod=1e9+7; int main(){ char n[100001]; int x; cin>>x>>n;/...原创 2019-02-08 16:35:33 · 1489 阅读 · 0 评论 -
尺取 Poj3601
http://poj.org/problem?id=3061 Subsequence Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 20744 Accepted: 8849 Description A sequence of N positive integers (10 <...原创 2018-08-09 00:51:03 · 227 阅读 · 0 评论 -
大数运算模板
转自:https://blog.csdn.net/y990041769/article/details/20116995# 1.大数相加 string sum(string s1,string s2) { if(s1.length()<s2.length()) { string temp=s1; s1=s2; s2=temp; } int i,j; for(i...转载 2018-08-08 11:26:23 · 128 阅读 · 0 评论 -
坐标离散化
离散化 把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。 通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。例如: 原数据:1,999,100000,15;处理后:1,3,4,2; 原数据:{100,200},{20,50000},{1,400}; 处理后:{3,4},{2,6},{1,5}; 思路:先排序,再删除重复元素,最后就是索引元素离散化...原创 2018-08-12 11:09:49 · 556 阅读 · 0 评论 -
莫队算法 CF617E、洛谷P1972、小z的袜子
莫队算法 该算法为ACM国家队前队长@莫涛发明,先膜拜巨犇。%%%%%%Orz 莫队算法主要是用于离线解决 通常不带修改只有查询,没有修改的一类区间问题。 假如知道了区间[l,r]中选择两个是相同颜色的情況数,那么可以在O(1)的时间内得出[l+1,r]或者[l-1,r]。每一个查询区间相当于曼哈顿坐标,所以可以用莫队算法得出曼哈顿最小生成树然后处理区间即可。但是还有更简单的做法,把x分成s...原创 2018-08-11 13:38:55 · 206 阅读 · 0 评论 -
反转(开关问题) Poj3276、3279、3185、1244
转自:https://blog.csdn.net/yexiaohhjk/article/details/60598188 (部分修改) 算法概览: 例.给定一个01串,现有翻转规则:翻转某一个位置时其后面2个位置也会跟着翻转,也就是每次翻转都会翻转3个连续的位置。要将01串全部翻转为0,求最小的翻转次数。形似这类题的问题叫做翻转问题,也可以叫开关问题。 解法: 1.若某一个位置被翻转了n次...转载 2018-08-10 15:26:48 · 506 阅读 · 0 评论 -
operator 赋值运算符重载函数
(其中一个功能)简单来说就是重载运算符,如= < > +等 用法: 函数类型operator 需要重载的符号(符号左边的参数,符号右边的参数){ 重新定义的法则; } 例1、 mycomplex operator+(mycomplex &p1,mycomplex &p2) { mycomplex p; p.x=p1.x+p2.x; p...原创 2019-02-27 22:06:01 · 2679 阅读 · 0 评论