随笔分类 -  数字模型

摘要:1 /*uva11134 2 在N*N(113 #include 14 #include 15 #include 16 #include 17 #include 18 #include 19 #include 20 #include 21 #define maxn 501022 using namespace std;23 24 int N;25 struct L1{26 int l,r,k;27 bool operatorX.l;else return r>X.r;35 }36 };37 int posX[maxn*2],posY[maxn*2],pos[maxn*... 阅读全文
posted @ 2014-04-07 14:31 little_w 阅读(310) 评论(0) 推荐(0)
摘要:1 /*UVA10905 思维 2 题目大意: 3 给定n个正整数,你的任务是把它们练成一个最大的数 4 思考: 5 这道题目应该是在考察归纳的思维吧 6 我一开始的思路是将两个字符串按位比较,当位数有剩余时,再分类讨论大小。 7 但是这样写,细节上很容易出错. 8 但是,如果换一种方法,忽略细节,直接连成s1+s2和s2+s1,这样尾数一定相同,直接按位比较,若s1+s213 #include 14 #include 15 #include 16 #include 17 #include 18 #include 19 #include 20 #define maxn 11021 using. 阅读全文
posted @ 2014-04-06 13:21 little_w 阅读(520) 评论(0) 推荐(0)
摘要:1 //uva10917 dij单源最短路预处理+构造新图(DAG)+求图上路径数 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #define maxn 1100 13 #define INF 100000000 14 using namespace std; 15 16 vectorG[maxn]; 17 int d[maxn];//DAG上dfs记忆化,存储i到终点的路径数 18 st... 阅读全文
posted @ 2014-03-08 14:06 little_w 阅读(441) 评论(0) 推荐(0)
摘要:1 /*LA3485: 2 求解积分方程 3 关于这道题的数学模型: 4 给定抛物线长度L,抛物线函数f(x)=a(x-d)(x+d),求解 |a*d*d|的值,a>0,曲线积分函数lf(x)=sqrt(1+f'(x)^2) 5 a越大,|a*d*d|越大,L越长,所以可以二分求解 6 7 辛普森算法解函数f(x)在区间(a,b)上的积分: 8 模板如下: 9 double simpsonF(double a,double b);//返回测试值10 double simpsonM(double a,double b,eps,double A);//自适应simpson递归11 / 阅读全文
posted @ 2014-02-26 21:30 little_w 阅读(611) 评论(0) 推荐(0)
摘要:UVALive3905流星https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=283&page=show_problem&problem=1906【题目描述】:在夜空下,放置一个摄像头,已知,摄像头左下角在(0,0),右上角由输入给定(w,h)。再给出n颗流星的初始位置(夜空范围内,不一定在摄像头范围内),矢量速度(VX,VY),求从开始,整个过程中,镜头内最多看到几颗流星。注意,在流星在边框上时看不到。【思路分析】:【一】遇到物理问题一般退化 阅读全文
posted @ 2014-01-18 17:46 little_w 阅读(167) 评论(0) 推荐(0)
摘要:UVA11997【题目描述】:给定k组数,每组k个数,从每组数中各取出一个数,然后把他们加和,在不的加和组合中,求其中的最小的k的数。K 6 7 #include 8 9 #include 10 11 #include 12 13 #include 14 15 #include 16 17 #include 18 19 #include 20 21 #include 22 23 #define MAXN 755+10 24 25 #define MAXM 20000+5 26 27 #define oo 9556531 28 29 #define eps 0.0... 阅读全文
posted @ 2014-01-18 17:15 little_w 阅读(1039) 评论(0) 推荐(0)
摘要:UVA10635【题目描述】:王子和公主一个王子和公主在n*n的格子中行走,这些格子是有1....n^2的编号的。现在给定p+1个数,再给定q+1个数,公主和王子可以选择其中某些格子行走,求他们最多能走几个相同的格子。【算法分析】:这道题读题是关键,然后我们发现需要的是公共的格子,又需要是这个步数最大化,可以想到最长公共子序列的模型。序列长度小于等于62500,最长公共子序列复杂度是n^2,超时,书上提供了把公共子序列退化到最长上升子序列的方法。以第一个系列为参照,编号1.....p+1,因为格子的数字是不重复的,且最大编号是62500,空间上满足。给第二个序列重新标号,求最长上升子序列就可以 阅读全文
posted @ 2014-01-18 17:12 little_w 阅读(394) 评论(0) 推荐(0)
摘要:UVA10382【题目描述】:喷水设置有一块草坪,长为l,宽为w,在草坪的中心线上,放置规格不一的喷水装置,给定每个装置的安置中心,辐射半径(pos,rad)。求最少几个喷水装置可以辐射整块草坪?【算法分析】:把二维退化到一维问题,我们要考虑的辐射边界,pos+(-)sqrt(rad^2-w^2/4),想象一下,如果边界辐射到了,中间一定辐射到了,若rad 2 3 #include 4 5 #include 6 7 #include 8 9 #include 10 11 #include 12 13 #include 14 15 #include 16 17 #... 阅读全文
posted @ 2014-01-18 17:07 little_w 阅读(237) 评论(0) 推荐(0)
摘要:LA2965http://122.207.68.93:9090/csuacmtrain/problem/viewProblem.action?id=3148§【题目描述】:给定n个大写字母组成的连续字符串,(n 2 3 #include 4 5 #include 6 7 #include 8 9 #include 10 11 #include 12 13 #include 14 15 #include 16 17 #include 18 19 #include 20 21 #define MAXN 100+5 22 23 #define MAXM 100+... 阅读全文
posted @ 2014-01-18 17:04 little_w 阅读(226) 评论(0) 推荐(0)
摘要:LA2965侏罗纪http://122.207.68.93:9090/csuacmtrain/problem/viewProblem.action?id=3148【题目描述】:给定n个大写字母组成的连续字符串,(n#include#include#include#include#include#include#include#include#include#defineMAXN100+5#defineMAXM100+5#defineoo1e9#defineeps0.001#definePIacos(-1.0)//这个精确度高一些#defineREP1(i,n)for(inti=0;i=1;i- 阅读全文
posted @ 2014-01-15 20:00 little_w 阅读(298) 评论(0) 推荐(0)
摘要:LA3029最大子矩阵https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1030【题目描述】:给定m*n的矩阵,其中一些格子是空格F,其他是墙R。找出一个全部由空地组成的面积最大的子矩阵,输出面积。【算法分析】:【决策方案】:所有的子矩阵,C(n,2)*C(m,2)种,加上确认空地,大约N^6的复杂度【限制条件】:所有的方块都是空地【最优评判准则】:面积最大【思路分析】:朴素算法的复杂度是N^6,肯定不能接受,所以我 阅读全文
posted @ 2014-01-15 17:00 little_w 阅读(178) 评论(0) 推荐(0)
摘要:1 //http://www.cnblogs.com/yefeng1627/archive/2013/04/24/3040112.html 2 #include 3 #include//最好开这个库//数学计算交c++更快 4 #include 5 #include 6 #include 7 #define maxn 410000 8 double F[maxn]; 9 void builtF()10 {11 F[1]=0;12 for(int i=1;i log(C(m,n))=log(n!)-log(m!)-log((n-m)!) 要知道log(10000!)都是很小的,... 阅读全文
posted @ 2013-10-31 13:22 little_w 阅读(372) 评论(0) 推荐(0)
摘要:double func(double a, double b, double x) { double r = a * exp(- x*x) + b * sqrt(x); return r*r;//return的积分常数,例如这里f(x*x)dx|[0,h]}double integrate(double a, double b, double h) { unsigned long steps = 1, it = 1; double V = h * (func(a, b, 0) + func(a, b, h)) / 2.0; double Vold; do { double t... 阅读全文
posted @ 2013-10-20 17:03 little_w 阅读(402) 评论(0) 推荐(0)
摘要:通过条件约束模拟后续全状态+暴力枚举决定变量==不超时{或者说,一边边求解一边判断正误以减少不必要的运算}统一代码风格 1 #include 2 #include 3 #include 4 using namespace std; 5 int f[4][2]={{0,-1},{0,1},{-1,0}}; 6 const int maxn=20; 7 int ans; 8 int addcha; 9 int cnt=0;10 int a[maxn][maxn];11 bool check(int n)12 {13 int aa[maxn][maxn];14 for(int i=0... 阅读全文
posted @ 2013-09-27 17:34 little_w 阅读(264) 评论(0) 推荐(0)
摘要:思维题区间内点的移动(形象)保持原有顺序+重新排序后记录初始位置(容易思路不清)+想象等效模型 1 #include 2 #include 3 #include 4 #include 5 #define maxn 10000+10 6 using namespace std; 7 struct ant 8 { 9 int ord;//记录原始位置10 int f;//-1 : L , 1 : R11 int p;12 bool operator l)55 {56 printf("Fell o... 阅读全文
posted @ 2013-09-27 17:30 little_w 阅读(273) 评论(0) 推荐(0)
摘要:枚举例子+归纳推理数轴处理曲线+固定点(将同一个点放在数轴首尾)#include#include#include#include#define eps 0.000001#define maxn 2020double a[maxn];double b[maxn];using namespace std;double abss(double n){ if (n>=0) return n;else return -n;}int main(){ int n,m; while(~scanf("%d%d",&n,&m)) { double k1=1/(n+0.0) 阅读全文
posted @ 2013-09-27 10:58 little_w 阅读(283) 评论(0) 推荐(0)
摘要:初步解题原理:代数运算+单元素极值代数运算:xi表示第i个给i-1的数量,正负表示给或得c=(a1+a2+a3....an)/na1-x1+x2=c -->x2=x1-a1+ca2-x2+x3=c -->x3=x1-a1-a2+2ca3-x3+x4=c -->x4=x1-a1-a2-a3+3c......an-xn+x1=c -->xn=x1-a1-a2-a3....-a(n-1)+(n-1)cans=max{|x1|+|x2|+|x3|+....|xn|=|x1-0|+|x1-a1+c|+|x1-a1-a2+2c|.......|x1-a1-a2-a3....-a(n 阅读全文
posted @ 2013-09-26 23:19 little_w 阅读(221) 评论(0) 推荐(0)