Tips

本文深入探讨了数学库中的π值计算方法及Map数据结构的应用,通过实例展示了如何使用Map进行数据映射、查询与操作,特别以POJ2263题为例,演示了Map在FLOYD变式中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Math库


Pi的定义 4 × atan(1.0)
             atan(1.0) = 45° = Pi/4 弧度


<Map>

#include <map>
map <string, int> s;  将string与int相互映射
            添加数据  s.insert( pair<string, int>(string, int) );
            查询数据的个数  s.count(string) == 0 表示不存在
            查询数据 s.find(string) -> second 找到对应的int
                           s.find(int)   -> first 找到对应的string
            删除数据 s.erase(s.find(string)) / s.erase(s.find(int))  (先保证该数据存在)
            清空数据 s.clear  

贴一道用Map映射写过的题 POJ 2263 (FLOYD 变式)Code如下:

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <map>
using namespace std;
#define foru(i, a, b) for (int i=a; i<=b; i++)
#define ford(i, a, b) for (int i=a; i>=b; i--)
#define N 210
#define M 40000

int n, m, w;
int s, t, T;
map <string, int> str;
int f[N][N];

int get(string s){
    if (str.count(s) == 0){
        w ++;
        str.insert(pair<string, int>(s, w));
        return w;
    }
    return str.find(s) -> second;
}

void init(){
    str.clear();
    char u[50], v[50]; w = 0;
    memset(f, 0, sizeof(f));
    foru(i, 1, m){
        int a, b, c;
        scanf("%s %s %d", &u, &v, &c);
        a = get((string)u); b = get((string)v);
        f[a][b] = f[b][a] = max(f[a][b], c);
    }
    scanf("%s %s", &u, &v);
    s = get(u); t = get(v);
}

void solve(){
    foru(k, 1, w)
        foru(i, 1, w)
            foru(j, 1, w)
                f[i][j] = max(f[i][j], min(f[i][k], f[k][j]));
    T++;
    printf("Scenario #%d\n", T);
    printf("%d tons\n\n", f[s][t]);
}

int main(){
    freopen("B.txt", "r", stdin);

    while ( scanf("%d %d", &n, &m) != EOF && n && m){

        init();
        solve();
    }

    return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值