oj模板库(慢慢存储,主要是刚刚开始学习oj。发现身边好多人都有一个很好的模板库)
来源:互联网 发布:淘宝商家限制上线数 编辑:程序博客网 时间:2024/06/05 14:20
Fibonacci的快速幂求法时间是O(lgn)
#include<iostream>#include<cmath>using namespace std;typedef unsigned long long int LINT;//函数 Fibonacci采用快速的幂的方法可以实现快速的 Fibonacci避免了相应的计算;//其中f0和f1是初始的条件//n代表的是所要求的fn的下标 int Fibonacci(LINT f0,LINT f1,LINT n){LINT fn;int n_bi=ceil(log(n+1)/log(2));LINT *array_n_bi=new LINT[n_bi]();for( int i=0;i<n_bi;++i) {array_n_bi[i]=n%2; n/=2;} LINT** matrix=new LINT*[n_bi];for( int i=0;i<n_bi;++i) matrix [i]=new LINT[4](); matrix[0][0]=0;matrix[0][1]=1;matrix[0][2]=1;matrix[0][3]=1; for( int i=1;i<n_bi;++i) { matrix[i][0]=(matrix[i-1][0]*matrix[i-1][0]+matrix[i-1][1]*matrix[i-1][2]); matrix[i][1]=(matrix[i-1][0]*matrix[i-1][1]+matrix[i-1][1]*matrix[i-1][3]); matrix[i][2]=(matrix[i-1][2]*matrix[i-1][0]+matrix[i-1][3]*matrix[i-1][2]); matrix[i][3]=(matrix[i-1][2]*matrix[i-1][1]+matrix[i-1][3]*matrix[i-1][3]); }LINT m11=1;LINT m12=0;LINT m21=0;LINT m22=1;LINT temp_m11=1;LINT temp_m12=0;LINT temp_m21=0;LINT temp_m22=1; for( int i=0;i<n_bi;++i) { if(array_n_bi[i]==1) { m11=(temp_m11*matrix[i][0]+temp_m12*matrix[i][2]); m12=(temp_m11*matrix[i][1]+temp_m12*matrix[i][3]); m21=(temp_m21*matrix[i][0]+temp_m22*matrix[i][2]); m22=(temp_m21*matrix[i][1]+temp_m22*matrix[i][3]); temp_m11=m11; temp_m12=m12; temp_m21=m21; temp_m22=m22; } } fn=(m11*f0+m21*f1); cout<<fn<<endl; return fn;}int main(){unsigned long long int n;cin>>n;if(n<3)cout<<n<<endl; else{int res=Fibonacci(1,1,n);} }
01背包问题(动态规划)
#include<cstdio> using namespace std; //函数 knapsack_problem_01中//need代表的是物品需要的空间数组 //value代表的是物品价值数组 //m代表的是背包的最大容量//n代表的是物品的个数 int knapsack_problem_01(int *need,int* value,int m,int n){ int * f=new int[m](); for(int i=0;i<n;++i) for(int j=m;j>=need[i];--j) if(f[j]<f[j-need[i]]+value[i]) f[j]=f[j-need[i]]+value[i]; return f[m-1];}int main() { int n,m; scanf("%d%d",&n,&m); int *need=new int[n]; int* value=new int[n]; for(int i=0;i<n;++i) scanf("%d%d",need+i,value+i); printf("%d\n",knapsack_problem_01(need,value, m,n));}
对树以行为单位进行的操作
struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} };void levelOrder(TreeNode* root) {vector<vector<int>> res;if (root == NULL){//TODO///空树的处理}if (root->left == NULL&&root->right == NULL){//TODO//只有一个节点的树的处理}queue<TreeNode *> queue0, queue1;queue0.push(root);TreeNode * pre;int op01 = 0;while (!queue0.empty() || !queue1.empty()){if (op01 == 0){//{////TODO////一行开始前的处理//}while (!queue0.empty()){pre = queue0.front();queue0.pop();//{////TODO//对行中的节点进行的处理//}if (pre->left != NULL)queue1.push(pre->left);if (pre->right != NULL)queue1.push(pre->right);}//{////TODO////一行结束时的处理//}op01 = 1;}else{//{////TODO////一行开始前的处理//}while (!queue1.empty()){pre = queue1.front();queue1.pop();//{////TODO//对行中的节点进行的处理//}if (pre->left != NULL)queue0.push(pre->left);if (pre->right != NULL)queue0.push(pre->right);}//{////TODO////一行结束时的处理//}op01 = 0;}}return ;}
1 0
- oj模板库(慢慢存储,主要是刚刚开始学习oj。发现身边好多人都有一个很好的模板库)
- OJ模板库
- 今天看了好多东西,主要发现了一个很好的网站叫慕课网
- oj类模板的使用
- 发现一个很好的AVR库
- oj类模板
- OJ类模板
- OJ 模板-java
- OJ模板-cpp
- 一个很好用的模板(截取网络数据包)
- 一个很好用的大数模板
- 刚刚开始学习j2me,目标是开发一个小游戏
- OJ嘻唰唰之类模板(1)类模板---求数组的最大值
- OJ嘻唰唰之类模板(2)求类中数据成员的最大值-类模板
- 发现httpsqs是一个学习unix下c编程的很好的范例
- 一个很好的练数学思维的oj
- 刚刚写的一个Win32 SDK的工程扩展模板
- 刚刚发现了一个很好地用户体验
- 【Foundation学习笔记】常用类--NSDictionary和NSMutableDictionary
- C++ 排序函数 sort(),qsort()的用法
- JSTL标签库中<c:choose></c:choose>不能放JSP页面<!-- -->注释
- mips语法入门
- 写在前面
- oj模板库(慢慢存储,主要是刚刚开始学习oj。发现身边好多人都有一个很好的模板库)
- CAP理论系列
- 在Ubuntu 14.04LTS版上以git方式源码安装odoo8.0(新手教程)
- qt编译cocos2dx中的CMakeLists.txt解读
- android apk 防止反编译技术第三篇-加密
- RFID第三次作业[7-2]
- 2014年3月份源码索引贴
- IOS JSON解析之JSONKit使用
- OTT 运营经验教训(一)