oj上的“%lf"

今天拍了一道很简单的计算几何凸包的题目POJ 2187 Beauty Contest;想涨涨自信滴呀~没想到wrong得我蛋蛋碎了一地。后来才发现啃爹的poj在g++编译环境下不能用 %lf 输出浮点数的答案 (在c++环境下可以~~~)

#define fi freopen("in.txt","r",stdin)
#define fo freopen("output.txt","w",stdout)
#include <stdio.h>   
#include <iostream>
#include <string.h>   
#include <cmath>
#include <vector>
#include <set>
#include <map>
#include <algorithm>   
#include <string>
using namespace std;
/*my_template*/
/*data type*/
typedef pair<int,int> pii;
typedef long long ll; typedef double dl;
typedef vector<pii> vii;
typedef set<pii> sii;
/*sim_operarion*/
#define sfint(x) scanf("%d",&x)
#define sfint2(x,y) scanf("%d%d",&x,&y)
#define sfint3(x,y,z) scanf("%d%d%d",&x,&y,&z)
#define sfstr(c) scanf("%s",c)
#define pfint(x) printf("%d\n",x)
#define fr(i,s,n) for(int i=s;i<n;++i)
#define _fr(i,n,s) for(int i=n-1;i>=s;--i)
#define cl(a) memset(a,0,sizeof(a))
/*bitmask*/
#define _ni(x) (1<<(x))
#define _niL(x) (1LL<<(x))
#define _has(s,x) ((s&(_ni(x)))!=0)
#define _hasL(s,x) ((s&(_niL(x)))!=0LL)
template<class T> inline T _lowbit(const int &x){ return (x^(x-1))&x; }  
template<class T> inline int _bitsize(const T &x){ return (x==0)?0:(1+_bitsize(x&(x-1))); }
/*CONST VALUE*/
const dl _pi=acos(-1.0);
const dl _eps=1e-6;
/*my_template*/

const int N = 100010;
struct Point{
	double x,y;
	Point(double _x=0,double _y=0){
		x=_x,y=_y;
	}
	void read(){
		scanf("%lf%lf",&x,&y);
	}
}p[N],chs[N];
int n;

double multiply(Point op,Point sp ,Point ep){
	return ((sp.x-op.x)*(ep.y-op.y)-(ep.x-op.x)*(sp.y-op.y));
}
double dist_2(Point p1,Point p2){
	return ((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
}
double dist(Point p1,Point p2){
	return sqrt(dist_2(p1,p2));
}
bool gramhap_cmp(Point a,Point b){
	double k = multiply(p[0],a,b);
	if (fabs(k)<_eps) return dist(a,p[0])<dist(p[0],b);
	else if (k>0) return 1;
	else return 0;
}

int graham(){
	int mny = p[0].y ,idx = 0;
	fr(i,1,n){
		if (p[i].y < mny) mny = p[i].y,idx = i;
		else if (p[i].y == mny &&p[i].x <p[idx].x) idx = i;
	}
	Point tmp = p[idx];
	p[idx] = p[0];p[0] = tmp;
	sort(p+1,p+n,gramhap_cmp);
	chs[0] = p[n-1];
	chs[1] = p[0];

	int stop = 1,pos =1;
	while(pos<=n-1){
		double d = multiply(chs[stop],chs[stop-1],p[pos]);
		if (d<=0) chs[++stop] = p[pos++];
		else stop--;
	}
	return stop+1;
}
int main(){
#ifdef local
	fi;
#endif
	sfint(n);
	fr(i,0,n){
		p[i].read();
	}
	int chn = graham();
	double ans = 0;
	for (int i=0;i<chn;i++)
		for (int j=i+1;j<chn;j++)
			if (ans<dist_2(chs[i],chs[j]))
				ans=dist_2(chs[i],chs[j]);
	printf("%.0f\n",ans+0.003);
	return 0;
}


【Koopman】遍历论、动态模态分解和库普曼算子谱特性的计算研究(Matlab代码实现)内容概要:本文围绕【Koopman】遍历论、动态模态分解和库普曼算子谱特性的计算研究展开,重点介绍基于Matlab的代码实现方法。文章系统阐述了遍历理论的基本概念、动态模态分解(DMD)的数学原理及其与库普曼算子谱特性之间的内在联系,展示了如何通过数值计算手段分析非线性动力系统的演化行为。文中提供了完整的Matlab代码示例,涵盖数据驱动的模态分解、谱分析及可视化过程,帮助读者理解并复现相关算法。同时,文档还列举了多个相关的科研方向和技术应用场景,体现出该方法在复杂系统建模与分析中的广泛适用性。; 适合人群:具备一定动力系统、线性代数与数值分析基础,熟悉Matlab编程,从事控制理论、流体力学、信号处理或数据驱动建模等领域研究的研究生、博士生及科研人员。; 使用场景及目标:①深入理解库普曼算子理论及其在非线性系统分析中的应用;②掌握动态模态分解(DMD)算法的实现与优化;③应用于流体动力学、气候建模、生物系统、电力系统等领域的时空模态提取与预测;④支撑高水平论文复现与科研项目开发。; 阅读建议:建议读者结合Matlab代码逐段调试运行,对照理论推导加深理解;推荐参考文中提及的相关研究方向拓展应用场景;鼓励在实际数据上验证算法性能,并尝试改进与扩展算法功能。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值