UVA 11971 - Polygon

这题解得太机智。  他是把一个棍子  连成一个圆。


然后 剪切。  每次切中点。 一边 则能保证围成一个多边形。 


#include <cstdio>
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <string>
#include <map>
#include <vector>
#include <set>
#include <queue>
#include <stack>
#include <cctype>
using namespace std;
#define ll long long
typedef unsigned long long ull;
#define maxn 100000+100
#define INF 1<<30
ll gcd(ll a, ll b){
    return b ? gcd(b,a%b) : a;
}
ll pow_(ll a, ll b){
    if(b == 0)
        return 1;
    ll x = pow_(a, b/2);
    ll ans = x*x;
    if(b % 2 == 1)
        ans = ans * a;
    return ans;
}
int main (){
    ll up[60];
    ll down[60];
    for(ll i = 1; i <= 50; i++){
        ll z = pow_(2,i);
        ll a = z - (i+1);
        ll b = z;
        if(a != 0){
            ll x = gcd(a,b);
            a /= x;
            b /= x;
        }
        if(a == 0)
            b = 1;
        up[i] = a;
        down[i] = b;
    }
    ll num;
    ll counts = 0;
    scanf("%lld",&num);
    while(num--){
        ll n,k;
        scanf("%lld%lld",&n,&k);
        printf("Case #%lld: %lld/%lld\n",++counts,up[k],down[k]);
    }
    return 0;
}


### Labelme AI-polygon 功能使用指南 Labelme 是一款强大的开源数据标注工具,广泛应用于计算机视觉领域中的图像分割任务。为了提升标注效率并引入智能化操作,Labelme 提供了 **AI-Polygon** 功能模块,该功能允许用户利用预训练模型生成初始的多边形轮廓,并在此基础上进行微调。 #### 虚拟环境配置 在开始之前,需确保 Python 版本为 3.8 或更高版本[^4]。推荐通过 Conda 创建独立的虚拟环境以避免依赖冲突: ```bash conda create -n labelme python=3.8 conda activate labelme ``` 安装必要的依赖库: ```bash pip install labelme pip install git+https://github.com/facebookresearch/segment-anything.git ``` 上述命令会安装 `labelme` 工具及其配套的 Segment Anything Model (SAM),后者是实现 AI-Polygon 功能的核心组件[^4]。 --- #### 启动 Labelme 并加载 AI-Polygon 插件 启动 Labelme 应用程序时,可以通过命令行参数启用插件支持: ```bash labelme --autolabeling-config ./config.yaml ``` 其中,`./config.yaml` 文件用于定义自动标注的行为逻辑。以下是 YAML 配置文件的一个简单示例: ```yaml model_type: sam sam_checkpoint: models/sam_vit_h_4b8939.pth device: cuda point_prompt: points_per_side: 16 point_grids: null mask_threshold: 0.0 dilation_kernel_size: null stability_score_thresh: 0.92 stability_score_offset: 1.0 box_nms_thresh: 0.7 crop_n_layers: 0 crop_nms_thresh: 0.7 crop_overlap_ratio: 512 / 1500 crop_n_points_downscale_factor: 1 min_mask_region_area: 100 output_dir: output/ ``` 此配置指定了 SAM 模型的位置 (`sam_checkpoint`) 及其运行设备(CPU/GPU)。如果硬件支持 CUDA,则应优先选择 GPU 加速模式[^4]。 --- #### 使用 AI-Polygon 进行标注 完成初始化设置后,在实际操作过程中遵循以下流程: 1. 打开目标图片; 2. 切换至 “Auto Labeling” 模式; 3. 单击鼠标左键标记感兴趣区域的关键点; 4. 系统将基于输入坐标预测完整的边界框或多边形[^4]; 5. 用户可手动调整生成的结果直至满意为止。 值得注意的是,尽管 AI-Polygon 显著提高了工作效率,但在复杂场景下仍可能需要人工干预校正错误部分[^2]。 --- #### 数据导出与格式转换 当所有样本均已完成标注之后,通常还需要将其转化为适合下游算法使用的标准格式(如 Pascal VOC 或 COCO JSON)。借助内置脚本即可轻松达成这一目的: ```bash python labelme2voc.py 输入目录 输出目录 --labels 标签列表.txt ``` 具体语法参见官方文档说明[^3]。 --- ### 注意事项 - 如果遇到兼容性问题,请确认所选 Python 解释器版本是否符合要求。 - 对于大规模生产环境而言,考虑部署更专业的解决方案比如 Labellerr,它不仅具备类似的自动化能力,而且提供了额外的企业级特性诸如 MLOps 整合、质量保障体系等[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值