GCJ

#include <bits/stdc++.h>

using namespace std;
#define maxn 105
#define INF 0x7ffffff

int dp[maxn][maxn];
int Q[maxn];
int p, q;

int main()
{
    while(~scanf("%d%d", &p, &q))
    {
        for(int i=1; i<=q; i++)
            cin>>Q[i];
        Q[0] = 0;
        Q[q+1] = p+1;
        for(int i=0; i<=q; i++)
            dp[i][i+1] = 0;

        for(int l=2; l<=q+1; l++)//根据j-i递增的顺序来递推
            for(int i=0; i+l<=q+1; i++)
        {
            int j = i + l;
            dp[i][j] = INF;
            for(int k=i+1; k<j; k++)
                dp[i][j] = min(dp[i][j], dp[i][k]+dp[k][j]+Q[j]-Q[i]-2);
        }
        cout<<dp[0][q+1]<<endl;
    }
    return 0;
}

### GCJ-02 转换为 CGCS2000 的方法 #### 方法概述 GCJ-02 是一种加密后的坐标系,而中国国家大地坐标系 2000 (CGCS2000) 则是一种基于地球中心的地心坐标系。两者之间的转换涉及复杂的算法和参数调整[^1]。由于 GCJ-02 并未公开其具体的转换公式,因此通常需要借助第三方工具或库来完成这一过程。 #### 使用工具实现转换 可以利用现有的开源项目或者在线服务来进行 GCJ-02 和 CGCS2000 之间的转换。例如 Python 中的 `pyproj` 库能够处理多种地理坐标系间的变换操作。以下是具体代码示例: ```python from pyproj import Transformer, CRS def gcj_to_cgcs(gcj_lon, gcj_lat): transformer = Transformer.from_crs( "+proj=latlong +ellps=WGS84", "+proj=geocent +datum=PZ90", always_xy=True ) # 将 GCJ-02 近似视为 WGS84 输入到中间状态 intermediate_x, intermediate_y, z = transformer.transform(gcj_lon, gcj_lat, 0) # 再次定义从 PZ90 地心转至 CGCS2000 final_transformer = Transformer.from_crs("+init=epsg:4978","+init=epsg:4490",always_xy=True) cgcs_lon,cgcs_lat,_ = final_transformer.transform(intermediate_x,intermediate_y,z) return round(cgcs_lon,6),round(cgcs_lat,6) # 测试数据 gcj_longitude = 116.397128 gcj_latitude = 39.907494 converted_coordinates = gcj_to_cgcs(gcj_longitude, gcj_latitude) print(f"Converted Coordinates(CGCS2000): {converted_coordinates}") ``` 此脚本通过两次投影变换实现了近似的 GCJ-02 至 CGCS2000 的转换。需要注意的是,这种做法仅适用于精度要求较低的应用场景;对于更高精度需求,则可能需采用商业级解决方案或联系测绘部门获取更精确的数据校正模型[^2]。 #### 注意事项 在实际应用过程中还需注意以下几点: - **法律合规性**: 对于敏感区域内的地理位置信息处理应遵循当地法律法规; - **误差范围**: 上述方法存在一定程度上的简化假设,可能导致最终结果存在一定偏差。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值