
入门+杂项
文章平均质量分 69
ccDLlyy
不忘初心,方得始终
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
求一个整数对应的二进制中的1的个数(位操作)
法一:#include #include int main(){ int number; int count=0; scanf("%d",&number); while(number){ if(number%2==1) count++; number/=2; } printf("%d\n"原创 2016-08-17 10:59:21 · 691 阅读 · 0 评论 -
矩阵快速幂
一、矩阵的基础知识1.结合性 (AB)C=A(BC).2.对加法的分配性 (A+B)C=AC+BC,C(A+B)=CA+CB .3.对数乘的结合性 k(AB)=(kA)B =A(kB).4.关于转置 (AB)'=B'A'.一个矩阵就是一个二维数组,为了方便声明多个矩阵,我们一般会将矩阵封装一个类或定义一个矩阵的结构体,我采用的是后者。最特殊的矩阵应该转载 2016-11-12 15:27:21 · 631 阅读 · 0 评论 -
POJ 3070 (矩阵快速幂,矩阵快速幂求斐波那契)
HOMEPROBLEMSTATUSCONTESTAdd ContestStatisticRANKLOGOUTccDLlyyUPDATEHappyDumplings S00677:00:00OverviewProblemStatusRankDiscussA B C D E F G H I J KH - 矩阵快速幂Time Limit:1000MS Memory Limit:65536KB原创 2016-11-12 16:24:00 · 693 阅读 · 0 评论 -
快速幂
//快速幂//经常涉及取余//本例对1000000007取余,因此需要用long long,以免中间计算过程超出int范围#include #include #include using namespace std;__int64 QuickPow(int m,int n){ __int64 result=1,pow=m; while(n){ if(n&1) resu原创 2016-11-16 17:10:55 · 347 阅读 · 0 评论 -
三分查找求最值
二分查找 适用于单调函数中逼近求解某点的值。如果遇到凸性或凹形函数时,可以用三分查找求那个凸点或凹点。下面的方法应该是三分查找的一个变形。如图所示,已知左右端点L、R,要求找到白点的位置。思路:通过不断缩小 [L,R] 的范围,无限逼近白点。做法:先取 [L,R] 的中点 mid,再取 [mid,R] 的中点 mmid,通过比较 f(mid) 与转载 2016-11-26 11:39:03 · 577 阅读 · 0 评论 -
计算多项式值的秦九韶算法
//计算多项式值的秦九韶算法double getresult(double array[],int n,double x)//double array[];//存系数,a[0]为常数项{ double result=array[n-1]; for(int i=n-1;i>=1;i--) result=array[i-1]+result*x; return原创 2016-09-11 08:26:59 · 3800 阅读 · 0 评论 -
位运算
其中:and:按位与or:按位或xor:按位异或shl:左移shr:右移原创 2017-02-19 13:06:42 · 277 阅读 · 0 评论 -
全排列
全排列问题:一:可以利用深搜,见啊哈算法二:可以利用递归,见Java代码三:STL的模板函数next_permutation()://以字符串为例//法一:int main(){ string str; cin>>str; sort(str.begin(),str.end()); cout<<str<<'\n'; while(next_permutatio原创 2016-11-26 12:16:46 · 536 阅读 · 0 评论 -
2017百度之星资格赛(A)1005 今夕何夕(日期计算)
题目链接:点击打开链接题目中文,不再详述题意思路:简单的日期计算,基础题。自己这个写法分类讨论多一些,细节多,偏于繁琐,容易出错,听人讨论说,有比较简洁的算法,感兴趣的小伙伴可以上网搜一搜。// 今夕何夕.cpp 运行/限制:15ms/1000ms#include #include #include using namespace std;int month[2][13] =原创 2017-08-15 12:46:22 · 643 阅读 · 0 评论 -
excel的列名
//excel的列名://A B C D E F G H I J K L M N O......Z(1到26列)//AA AB AC AD AE ......AZ(27到52列)//......//......//ZA ZB ZC ZD ZD ......ZZ//AAA AAB AAC ......AAZ//......//......//ZZA ZZB ZZC ZZD ZZE原创 2016-10-12 14:29:54 · 2657 阅读 · 0 评论 -
中国剩余定理 poj1006
poj1006问题描述 人自出生起就有体力,情感和智力三个生理周期,分别为23,28和33天。一个周期内有一天为峰值,在这一天,人在对应的方面(体力,情感或智力)表现最好。通常这三个周期的峰值不会是同一天。现在给出三个日期,分别对应于体力,情感,智力出现峰值的日期。然后再给出一个起始日期,要求从这一天开始,算出最少再过多少天后三个峰值同时出现。问题分析原创 2016-09-18 15:24:16 · 766 阅读 · 0 评论 -
C语言位操作的神应用(位操作)
不少代码通过位操作,解题很巧妙,学习语言,就要学其精髓,学其底层,不可蜻蜓点水例一:函数getbits(x,p,n),返回x中从右边数第p位开始向右数n位的字段unsigned getbits(unsigned x,int p,int n){ return (x>>(p-n)) & ~(~0} (x>>(p-n))把期望获得的字段移到字的最右端;~(~0原创 2016-08-10 10:30:11 · 7614 阅读 · 1 评论 -
5-23 IP地址转换 (20分) (位操作)
5-23 IP地址转换 (20分)一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。输入格式:输入在一行中给出32位二进制字符串。输出格式:在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制数),中间用“.”分隔开。输入样例:11001100原创 2016-07-30 17:29:06 · 3792 阅读 · 0 评论 -
1017. A除以B (20) (利用数组存储运算结果)
1017. A除以B (20)本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。输入格式:输入在1行中依次给出A和B,中间以1空格分隔。输出格式:在1行中依次输出Q和R,中间以1空格分隔。输入样例:123456789050987654321 7输出样例:1原创 2016-07-28 11:13:13 · 618 阅读 · 0 评论 -
名人效应(空间优化)
名人:所有人都认识名人,名人不认识其他任何人//由题目可判断出,名人最多只有一个,反证:若存在两个名人,则不符合法一:穷举 O(n^2)法二:O(n) 空间:O(n)思路:若A认识B,那么A一定不是名人代码:int findstar(){ for(int i=0;i<n;i++)//n为人数 a[i]=i; while(n>1原创 2016-08-17 22:43:16 · 622 阅读 · 0 评论 -
Key Set(快速幂+数学分析) HDU5363
/*题意:给你一个元素为1到n的集合,让你求有多少个非空子集,子集内的元素之和为偶数。由于结果比较大,所以要用到快速幂取模。*///由数学分析:无论n为奇数还是偶数//结果为2^(n-1)-1#include #include int main(){ int time; int number; long long pow; long long原创 2016-08-12 20:18:38 · 558 阅读 · 0 评论 -
Rightmost Dight(知识点:快速幂+题目分析)HDU1061
//N^N的最后一位#include #include //相当于对N的最后一位进行快速幂运算,结果对10取余int main(){ int time; int number; int dight; int result; scanf("%d",&time); for(int i=1;i<=time;i++){ result原创 2016-08-12 19:57:58 · 578 阅读 · 0 评论 -
HDU 2082 找单词 母函数问题
Problem Description假设有x1个字母A, x2个字母B,..... x26个字母Z,同时假设字母A的价值为1,字母B的价值为2,..... 字母Z的价值为26。那么,对于给定的字母,可以找到多少价值 Input输入首先是一个整数N,代表测试实例的个数。 然后包括N行数据,每行包括26个 Output对于每原创 2016-08-31 17:20:25 · 583 阅读 · 0 评论 -
求...999+....+99+9(用数组存储运算结果)
/*求:......999999999999(n位).................. 99999999999 9999999999 999999999 99999999 999999 99999 9999 999原创 2016-08-13 17:58:26 · 1981 阅读 · 0 评论 -
Wannafly挑战赛1 Xorto(前缀异或+思维)
题目链接:点击打开链接思路:开始没理解题意啥意思,两个不相交区间的异或和,其实就是两个区间的的数一块做异或,两个区间的异或和为0,也就是两个区间的异或和相等。联想到了前缀和,可以预处理一下区间前缀异或,这样每个区间的异或和就能O(1)的复杂度求出,剩下的就是不相交非空区间的选择问题了,想让区间不相交,可以取一个界限位置,区间在界限左右取,具体实现为枚举右区间的左边界的前一个位置,也就是左区间的原创 2017-10-14 11:14:45 · 689 阅读 · 0 评论