刷题算法小技巧

原创 2016年08月30日 16:43:49

1.大数取余:

对于较大数快速取余

参数:char  s[]        为储存大数的数组

   modNumber 为MOD

long long modNumber(char * s,int modNumber)
{
    long long sum = 0;
    for (int i = 0; i < strlen(s); ++i)
    {
        sum = sum*10 + s[i]-48;
        sum %= modNumber;
    }
    return sum;
}





2.快速幂(极大数)取余:

         对于较大数快速取余

参数:a的b次方 对 c 取余

long long PowerMod(long long  a, long long b, long long c)
{
	long long ans = 1;
	a = a % c;
	while(b>0)
	{
		if(b % 2 == 1)
		ans = (ans * a) % c;
		b = b/2;
		a = (a * a) % c;
	}	
	return ans;
}



3.数据类型范围:

unsigned   int   0~4294967295   
int   2147483648~2147483647 
unsigned long 0~4294967295
long   2147483648~2147483647
long long的最大值:9223372036854775807
long long的最小值:-9223372036854775808
unsigned long long的最大值:18446744073709551615

__int64的最大值:9223372036854775807
__int64的最小值:-9223372036854775808
unsigned __int64的最大值:18446744073709551615

4.cin cout 速度慢问题

	ios::sync_with_stdio(false);

5.几个提高速度的优化方案

多个if  ->   数组实现




版权声明:本文为博主原创文章,未经博主允许不得转载。

url去重算法降低时间复杂度(python小技巧)

啊啊啊啊啊啊啊

HDU:5137 How Many Maos Does the Guanxi Worth(dijkstra算法求最短路径+小技巧)

How Many Maos Does the Guanxi Worth Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 512000/...
  • zugofn
  • zugofn
  • 2016年08月04日 21:42
  • 212

二分查找算法的原理及一个实用小技巧

二分查找算法是在有序数组中用到的较为频繁的一种算法,在未接触二分查找算法时,最通用的一种做法是,对数组进行遍历,跟每个元素进行比较,其时间复杂度为O(n),但二分查找算法则更优,因为其查找时间复杂度为...
  • Veaxen
  • Veaxen
  • 2016年05月28日 01:04
  • 2447

算法中的小技巧

求一个数的幂次方,除了递归,还有更高效方法即快速幂方法 #include #include #include #include #include using namespace std; long l...

刷形式与政视频的小技巧

初次写博客,请多关照 要求:1、火狐浏览器 2
  • nutriu
  • nutriu
  • 2014年11月25日 15:45
  • 632

HDU 4331Image Recognition2012多校第四场A题(暴力枚举+小技巧)

Image Recognition Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other...
  • opm777
  • opm777
  • 2013年08月08日 09:53
  • 1303

ACM做题过程中的一些小技巧

ACM做题过程中的一些小技巧 (2012-05-22 11:47:54) 转载▼ 标签: 杂谈 分类: ACM 1.一般用C语言节约空间,要用C...

2015 whu校赛f题big data(dp + 小技巧)

题意是给定五个数n(n  解题思路如下: 图片有一处错误,要减去的是a*(n + 1) * n而不是 (b - a)* (n + 1) * n,此外,要注意x/c时向上取整和向下取整的问题。 ...

ACM做题过程中的一些小技巧

1.一般用C语言节约空间,要用C++库函数或STL时才用C++; cout、cin和printf、scanf最好不要混用。 大数据输入输出时最好不要用cin、cout,防止超时。 ...

ACM做题过程中的一些小技巧

1.一般用C语言节约空间,要用C++库函数或STL时才用C++; cout、cin和printf、scanf最好不要混用。 2.有时候int型不够用,可以用long long或__int6...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:刷题算法小技巧
举报原因:
原因补充:

(最多只允许输入30个字)