题目:http://poj.org/problem?id=2480
首先要会欧拉函数:先贴欧拉函数的模板,来源于吉林大学的模板:
//欧拉函数PHI(n)表示的是比n小,并且与n互质的正整数的个数(包括1)。
unsigned euler(unsignedx)
{// 就是公式
unsigned i, res=x;
for(i = 2; i < (int)sqrt(x ...
分类:
其他好文 时间:
2014-05-12 07:14:06
阅读次数:
368
HDU 1394 Minimum Inversion Number (数据结构-线段树)
题目大意:
求逆序数。也就是给你一个序列,每次求逆序数,然再把第一个数放到这个序列的末尾,构成新的序列。问你这n个序列的最小的逆序数。
解题思路:
1、对于每个序列,其原来的逆序数记为 pre , 如果当前把该序列 第一个数 a[0] 移动到尾部,那么新序列的逆序数为 pre-a[i]+(n-a[i]-1)
因为序列中比a[i]大的数有 n-a[i]-1 个,比a[i]小的有 a[i]个。
因此只需求出...
分类:
其他好文 时间:
2014-05-12 07:07:01
阅读次数:
301
收入囊中
灰度直方图彩色直方图
葵花宝典
直方图的理论还是非常丰富的,应用也很多,诸如:
直方图均衡化
直方图匹配(meanshift,camshift)
在这里,我先介绍基础,如何绘制图像的直方图。
拿灰度图像来说,直方图就是不同的灰度对应的个数,横轴(x)就是[0,256), 纵轴(y)就是对应的个数
如下图,分别是灰度直方图和彩色直方图
...
分类:
其他好文 时间:
2014-05-11 15:04:05
阅读次数:
481
题目链接:1073 - Glenbow Museum
白书上的例题,需要一定的推理。
首先要把问题转化,推理出n个点,R的个数为(n + 4) / 2, O的个数为(n - 4) / 2个,因为首先四个角必须为R,然后在中间添加O点,每有一个O点就要多一个R点,所以最后R点比O点多4。
然后问题就转化为给定n个R点和m个O点,求出有多少个序列,要求O点不连续,并且R的连续个数不能超过4,的序...
分类:
其他好文 时间:
2014-05-11 14:41:25
阅读次数:
293
1、len(mapping) 返回映射的长度(键-值对的个数)
2、hash(obj) 返回obj的哈希值
>>> myDict = {'name':'earth', 'port':'80'}
>>> len(myDict)
2
>>> hash('name')
15034981
3、dict.copy...
分类:
编程语言 时间:
2014-05-11 14:40:22
阅读次数:
327
对JAVA的集合的理解是想对于数组
数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型)
JAVA集合可以存储和操作数目不固定的一组数据。
所有的JAVA集合都位于 java.util包中!
JAVA集合只能存放引用类型的的数据,不能存放基本数据类型.
JAVA集合主要分为三种类型:
Set(集)
List(列表)
Map(映...
分类:
编程语言 时间:
2014-05-11 13:24:28
阅读次数:
406
题目链接:11038 - How Many O's?
题意:求[a.b]之间,0出现的次数。
思路:一开始一直往数位DP上去想,结果发现挺复杂的。。
把问题先转化为求0 - num的个数,在用到b的个数减去到a的个数
其实只要利用计数的乘法和加法原理,把数字对应的每一位的分成左右两边,利用乘法原理求总数,在用加法原理把所有的总数加起来就是总情况数。那么讨论一下分成两边的情况。举个例子
比...
分类:
其他好文 时间:
2014-05-11 13:16:13
阅读次数:
282
int main(int argc, char *argv[]){}
argc:传入字符串常量个数。
argv 是字符串数组,argv[i]指向第i个字符串常量。第0个为程序名。...
分类:
其他好文 时间:
2014-05-11 07:06:06
阅读次数:
274
挺有意思的一道题目,属于我之前没有总结到的情况,他在修改数组的时候用到了第三个指针。
如果是两种颜色的话,大家肯定都会做,直接一头一尾两个指针,扫描到不属于自己同类的就互换。这个题有了第三者,怎样来解决这个问题呢?想一下在一个数组中,怎样才能做到线性时间的修改,必须一次性或者常数性的把当前元素替换到他最终应该待的位置,要么复杂就上去了。那当前元素应该呆在那里呢?如果是0的话,应该呆在数组前面都是...
分类:
其他好文 时间:
2014-05-11 06:44:31
阅读次数:
259
#include
#include
int main()
{
int n,m,left,right;
int count;
int deep_n,deep_m,deep_diff;
int i, j;
for( scanf("%d%d",&m,&n); n!=0 && m!=0; scanf("%d%d",...
分类:
其他好文 时间:
2014-05-11 06:38:40
阅读次数:
395