上一页 1 ··· 3 4 5 6 7 8 9 10 下一页
摘要: 题意:给你n个厂,每个厂有m个产品,产品有B(带宽),P(价格),现在要你求最大的B/P明显是枚举,当P大于一定值,B/P为零,可以用这个剪枝#include #include#includeusing namespace std;#define N 110#define INF 0xffffffint devb[N][N],devp[N][N];int b[N*100],tb;int main(int argc, char** argv) { int n,mi[N],i,j,t; int blen,minprice,sum,minb,maxb,curb; double dmax,tvalue 阅读全文
posted @ 2013-11-26 18:47 Teemo的技术blog 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 线段树 Segment_tree网上有人把线段树翻译成 Interval_TreeInterval_Tree 是另外一种数据结构 而且并非二叉树这个是线段树的标准E文翻译可以看wikipedia的原文 http://en.wikipedia.org/wiki/Segment_tree顾名思义 线段树存储的是连续的线段而非离散的节点先看一张经典的线段树图解这个就是标准的线段树既然是树形结构 我们就得先考虑怎么存储这棵树分析线段树的定义*线段树是一棵二叉树 记为T(a, b)*参数a,b表示区间[a,b] 其中b-a称为区间的长度 记为L*线段树T(a,b)也可递归定义为 -若L>1 [a, 阅读全文
posted @ 2013-11-22 19:56 Teemo的技术blog 阅读(335) 评论(0) 推荐(0) 编辑
摘要: ====================================================================一.凸集&凸包(下文中所有的集合 若不作特殊说明 都是指欧氏空间上的集合)凸集(Convex Set):任意两点的连线都在这个集合内的集合就是一个凸集.A set in Euclidean space is convex set if it contains all the line segments connecting any pair of its points.http://mathworld.wolfram.com/Convex.html凸包 阅读全文
posted @ 2013-11-20 21:11 Teemo的技术blog 阅读(618) 评论(0) 推荐(0) 编辑
摘要: 题意:问你冒泡排序第i次排序,一共排了多少次套公式K!((K + 1) ^ (N - K) - K ^ (N - K))#include #include#includeusing namespace std;#define LL long long#define N 1000010#define M 20100713LL a[N];int _pow(LL v,int k){ LL res=1; while(k){ if(k&1){ res=res*v; res%=M; } v=v*v; v%=M; k>>=1; } return res;}int main(int arg 阅读全文
posted @ 2013-11-13 22:35 Teemo的技术blog 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题意:略直接矩阵乘法就行了#include #include#includeusing namespace std;#define LL __int64#define N 30int n,m;struct node{ int mat[N][N]; node operator *(const node &x){ node tmp; memset(tmp.mat,0,sizeof(tmp.mat)); for(int i=0;i>=1; }}int main(int argc, char** argv) { int... 阅读全文
posted @ 2013-11-13 22:29 Teemo的技术blog 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 题意:略构造出矩阵就行了 | AX 0 AXBY AXBY 0 | | 0 BX AYBX AYBX 0 |{a[i-1] b[i-1] a[i-1]*b[i-1] AoD[i-1] 1}* | 0 0 AXBX AXBX 0 | = {a[i] b[i] a[i]*b[i] AoD[i] 1} | 0 0 0 1 ... 阅读全文
posted @ 2013-11-13 22:25 Teemo的技术blog 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 题意:略简单的矩阵快速幂就行了#include #include #include using namespace std;#define LL long long #define N 10int m;struct node{ int mat[N][N]; node operator *(const node &x){ node tmp; memset(tmp.mat,0,sizeof(tmp.mat)); for(int i=0;i>=1; } return b;}int main(int argc, char** argv) { int sum,n; int i,j; whi 阅读全文
posted @ 2013-11-13 22:20 Teemo的技术blog 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题意: 通过各种操作进行,给第i只猫花生,第i只猫吃光花生,第i只猫和第j只猫互换花生,问n次循环操作后结果是什么很明显是构建个矩阵,然后矩阵相乘就好了#include #include #includeusing namespace std; #define LL long long #define N 110LL n,m,d;struct node{ LL mat[N][N]; node operator*(const node &x){ node tmp; int i,j,k; memset(tmp.mat,0,sizeof(tmp.mat)); for(i=0;i>=1; 阅读全文
posted @ 2013-11-13 22:06 Teemo的技术blog 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个有向无环图,再给你图上的棋子,每人每次只能移动一个棋子,当轮到你不能移动棋子是就输了,棋子可以同时在一个点比赛时就差这题没ak,做了几天博弈终于搞懂了.#include #include #include#includeusing namespace std;#define N 1010vector adj[N]; int sg[N],n;int mex(int v){ bool vis[N]={0}; int i,w; for(i=0;i<adj[v].size();i++){ w=adj[v][i]; if(sg[w]==-1) sg[w]=mex(w); vis[.. 阅读全文
posted @ 2013-10-30 21:23 Teemo的技术blog 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题意:给你很n堆石头,k代表你有k种拿法,然后给出没堆石头的数量,求胜负直接套用模版找了好久之前写的代码贴上来#include#include#includeusing namespace std;int s[101],sg[100001],k;int mex(int m){ int vis[101]={0}; int i; for(i=0;i>k,k) { for(i=0;i<k;i++) scanf("%d",&s[i]); sort(s,s+k); memset(sg,-1,sizeof(sg)); sg[0]=0; scanf("%d& 阅读全文
posted @ 2013-10-29 21:04 Teemo的技术blog 阅读(108) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 下一页