- 博客(9)
- 收藏
- 关注
原创 大数模板
#define MAXN 9999#define MAXSIZE 10#define DLEN 4class BigNum{ private: int a[500]; //可以控制大数的位数 int len; //大数长度public: BigNum(){ len = 1;memset(a,0,sizeof(a)); } //构造函数
2015-12-25 09:36:08
1074
原创 DP+滚动数组
题目: hdu 1024;for(i=1;i<=m;i++){ maxx=-1000000; for(j=i;j<=n;j++) { now[j]=max(now[j-1]+a[j],pre[j-1]+a[j]); //其中now[j-1]表示以j-1结尾的i个子段的数和,pre[j-1]表示前j-1个元素中i-1个子段的数和
2015-12-25 09:35:03
2270
原创 一些公式或者知识(不断补充)
斯特林公式(求n的阶乘的近似值) 普通计算:N!=1*2*3*……*N; 要计算N!后得到的数字的位数则是:lg(N)+1; 但当N很大时,可用斯特林公式进行优化: N!=sqrt(2*pi*N)*(N/e)^N; pi=3.1415926=acos(-1.0; e=2.7182818284590452354; lg(N!)+1=(lg(2*pi)+lgN)/2+N*(lg(N-
2015-12-25 09:23:44
15342
原创 树状DP
题目:hdu 1011;预:int roomNumber,trooperNumber;int cost[105][105];int dp[105[105];//dp[u][p]表示用p个兵占领以u为根节点的最大值vector<int> adj[105]; //图main:for(i=0;i<roomNumber;i++){ cin>>bug>>brain[i]; cost[
2015-12-25 09:07:52
416
原创 DFS+剪枝
题目: hdu 1010;预:char map[10][10];int flag,Xnum,Sx,Sy,Dx,Dy;int dir[4][2]={{0,1},{0,-1},{1,0},{-1,0}};DFS(int x,int y,int time):if(x<=0||x>n||y<=0||y>m) return;if(flag==1) return;if(x==Dx&&y==Dy&&tim
2015-12-25 08:54:38
5804
原创 最近点对(分治)
题目:hdu 1007;这题分为三种情况: 1.都在mid左边; 2.都在mid右边; 3.一个左,一个右。操作: 1.按x坐标排序求出左,右最小d1,d2; 2.取mid左右小于d1或d2的点,按y坐标排序; 3.求d3; 4.比较。递归
2015-12-25 08:42:29
4971
原创 map的简单用法
题目:hdu 1004#include <map>map<string, int>ballon;string color, maxColor;int n, max;while (cin>>n&&n){ ballon.clear(); while (n--) { cin >> color; ballon[color]++; }}
2015-12-07 09:37:32
6007
原创 矩阵乘法
知识点题目:hdu 1005。struct martic{ int data[2][2]; martic operator * (martic & rhs) { martic temp; for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++)
2015-12-07 09:31:54
9363
原创 快速幂
知识点题目:hdu 1005int quick_pow(int a, int n){ int re = 1; while (n) { if (n & 1) re *= a; //相当于n对2取余 a *= a; n >>= 1; //相当于n除以2 } return n;}
2015-12-07 09:19:59
10949
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人