1003 pie

1003 pie

给n个蛋糕的半径,m+1个人,每个人的馅饼必须是整块的,不能拼接,求最大的。

最大那块的面积与0之间求二分.

#include <stdio.h>  
#include <string.h>  
#include <math.h>  
#include <algorithm>  
using namespace std;  
  
const double pi = acos(-1.0);  
double a[10005];  
int n,m;  
  
int check(double mid)  
{  
    int i;  
    int sum = 0;  
    for(i = 0; i<n; i++)  
    {  
        sum+=int(a[i]/mid);  
        if(sum>=m)  
            return 1;  
    }  
    return 0;  
}  
  
int cmp(double a,double b)  
{  
    return a>b;  
}  
  
int main()  
{  
    int t,i,j;  
    double l,r,mid;  
    scanf("%d",&t);  
    while(t--)  
    {  
        scanf("%d%d",&n,&m);  
        m++;  
        for(i = 0; i<n; i++)  
        {  
            scanf("%lf",&a[i]);  
            a[i] = a[i]*a[i]*pi;  
        }  
        sort(a,a+n,cmp);  
        l = 0;  
        r = a[0];  
        if(m<n)  
            n = m;  
        while(r-l>1e-5)  
        {  
            mid = (r+l)/2;  
            if(check(mid))  
                l = mid;  
            else  
                r = mid;  
        }  
        printf("%.4lf\n",l);  
    }  
  
    return 0;  
}  

from flask import Flask, render_template from pyecharts import options as opts from pyecharts.charts import Bar, Pie, Rose, Scatter from pyecharts.commons.utils import JsCode from pyecharts.globals import ThemeType app = Flask(__name__) # 任务一:条形图呈现"Top10城市商家数量" @app.route("/task1") def task1(): # 模拟数据 cities = ["北京", "上海", "广州", "深圳", "成都", "杭州", "重庆", "武汉", "西安", "苏州"] counts = [12500, 11800, 9800, 9500, 8700, 8500, 8200, 8000, 7800, 7500] # 打印控制台输出 print("==任务一:Top10城市商家数量==") for i, (city, count) in enumerate(zip(cities, counts), 1): print(f"=={i}.城市:{city},商家{count}个==") # 创建条形图 bar = ( Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)) .add_xaxis(cities) .add_yaxis("商家数量", counts) .reversal_axis() .set_global_opts( title_opts=opts.TitleOpts(title="城市商家数量 Top10"), xaxis_opts=opts.AxisOpts(name="商家数量"), yaxis_opts=opts.AxisOpts(name="城市名称"), ) ) return render_template("pyecharts.html", chart=bar.dump_options()) # 任务二:柱状图呈现审核效率 @app.route("/task2") def task2(): # 模拟数据 auditors = ["A1001", "A1002", "A1003", "A1004", "A1005", "A1006", "A1007", "A1008", "A1009", "A1010"] names = ["张三", "李四", "王五", "赵六", "钱七", "孙八", "周九", "吴十", "郑十一", "王十二"] counts = [1250, 1180, 980, 950, 870, 850, 820, 800, 780, 750] # 打印控制台输出 print("\n==任务二:Top10明星审核员==") for i, (auditor, count) in enumerate(zip(auditors, counts), 1): print(f"=={i}.二级审核人id:{auditor},审批数量:{count}条==") # 创建柱状图 bar = ( Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)) .add_xaxis(names) .add_yaxis("审核记录数", counts) .set_global_opts( title_opts=opts.TitleOpts(title="Top10明星审核员"), xaxis_opts=opts.AxisOpts(name="审核人姓名"), yaxis_opts=opts.AxisOpts(name="审核记录数"), ) ) return render_template("pyecharts.html", chart=bar.dump_options()) # 任务三:双饼图呈现业务包属性占比 @app.route("/task3") def task3(): # 模拟数据 categories = ["大客户", "白领", "小客户", "高校", "家庭", "其他"] beijing_data = [3200, 2800, 2500, 1800, 1500, 700] shenzhen_data = [2800, 3100, 2200, 1600, 1200, 600] # 打印控制台输出 print("\n==任务三:北京与深圳商户业务包属性占比==") print("==北京:") for i, (category, count) in enumerate(zip(categories, beijing_data), 1): print(f"=={i}.商户业务包:{category},商家数量:{count}家==") print("==深圳:") for i, (category, count) in enumerate(zip(categories, shenzhen_data), 1): print(f"=={i}.商户业务包:{category},商家数量:{count}家==") # 创建双饼图 pie1 = ( Pie() .add( "北京", [list(z) for z in zip(categories, beijing_data)], center=["25%", "50%"], radius=[30, 70], ) .set_global_opts(title_opts=opts.TitleOpts(title="北京商户业务包属性占比")) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c} ({d}%)")) ) pie2 = ( Pie() .add( "深圳", [list(z) for z in zip(categories, shenzhen_data)], center=["75%", "50%"], radius=[30, 70], ) .set_global_opts(title_opts=opts.TitleOpts(title="深圳商户业务包属性占比")) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c} ({d}%)")) ) return render_template("pyecharts_dual.html", chart1=pie1.dump_options(), chart2=pie2.dump_options()) # 任务四:玫瑰图呈现投诉占比 @app.route("/task4") def task4(): # 模拟数据 categories = ["大客户", "白领", "小客户", "高校", "家庭", "其他"] complaints = [320, 280, 250, 180, 150, 70] # 打印控制台输出 print("\n==任务四:北京商户业务包投诉占比==") for i, (category, count) in enumerate(zip(categories, complaints), 1): print(f"=={i}.商户业务包:{category},投诉数量:{count}家==") # 创建玫瑰图 rose = ( Rose(init_opts=opts.InitOpts(width="800px", height="600px")) .add( "投诉数量", [list(z) for z in zip(categories, complaints)], radius=["30%", "75%"], center=["50%", "50%"], rosetype="radius", ) .set_global_opts(title_opts=opts.TitleOpts(title="北京商户业务包投诉占比")) ) return render_template("pyecharts.html", chart=rose.dump_options()) # 任务五:柱状堆叠图呈现审核结果比例 @app.route("/task5") def task5(): # 模拟数据 auditors = ["A1001", "A1002", "A1003", "A1004", "A1005", "A1006", "A1007", "A1008", "A1009", "A1010"] approved = [850, 780, 650, 620, 580, 550, 520, 500, 480, 450] rejected = [400, 400, 330, 330, 290, 300, 300, 300, 300, 300] # 打印控制台输出 print("\n==任务五:审核通过与拒绝对比==") for i, (auditor, app, rej) in enumerate(zip(auditors, approved, rejected), 1): total = app + rej print(f"=={i}.二级审核人id:{auditor},审批数量:{total}条,其中通过{app}条,拒绝{rej}条==") # 创建柱状堆叠图 bar = ( Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)) .add_xaxis(auditors) .add_yaxis("通过", approved, stack="stack1", itemstyle_opts=opts.ItemStyleOpts(color="#1E90FF")) .add_yaxis("拒绝", rejected, stack="stack1", itemstyle_opts=opts.ItemStyleOpts(color="#FF4500")) .set_global_opts( title_opts=opts.TitleOpts(title="审核通过与拒绝对比"), xaxis_opts=opts.AxisOpts(name="审核人id"), yaxis_opts=opts.AxisOpts(name="审核记录数"), ) ) return render_template("pyecharts.html", chart=bar.dump_options()) # 任务六:散点地图呈现各城市商家数量分布 @app.route("/task6") def task6(): # 模拟数据 cities = ["北京", "上海", "广州", "深圳", "成都", "杭州", "重庆", "武汉", "西安", "苏州"] counts = [12500, 11800, 9800, 9500, 8700, 8500, 8200, 8000, 7800, 7500] geo_coords = { "北京": [116.46, 39.92], "上海": [121.48, 31.22], "广州": [113.23, 23.16], "深圳": [114.07, 22.62], "成都": [104.06, 30.67], "杭州": [120.19, 30.26], "重庆": [106.54, 29.59], "武汉": [114.31, 30.52], "西安": [108.95, 34.27], "苏州": [120.62, 31.32] } # 打印控制台输出 print("\n==任务六:各城市商家数量==") for i, (city, count) in enumerate(zip(cities, counts), 1): print(f"=={i}.城市:{city},商家{count}个==") # 创建散点地图 scatter = ( Scatter(init_opts=opts.InitOpts(width="1000px", height="600px")) .add_dataset( source=[ {"name": city, "value": geo_coords[city] + [count]} for city, count in zip(cities, counts) ] ) .add( series_name="商家数量", symbol_size=JsCode( "function(data) {return Math.sqrt(data[2]) / 5;}" ), encode={"lng": 0, "lat": 1, "value": 2}, label_opts=opts.LabelOpts( formatter=JsCode( "function(data) {return data.name + ': ' + data.value[2];}" ) ), ) .set_global_opts( title_opts=opts.TitleOpts(title="各城市商家数量散点地图"), visualmap_opts=opts.VisualMapOpts( dimension=2, min=min(counts), max=max(counts), range_text=["高", "低"], is_piecewise=True, pos_top="50", pos_left="30", ), ) ) return render_template("pyecharts.html", chart=scatter.dump_options()) @app.route("/") def index(): return """ <h1>外卖平台数据分析可视化</h1> <ul> <li><a href="/task1">任务一: Top10城市商家数量(条形图)</a></li> <li><a href="/task2">任务二: Top10明星审核员(柱状图)</a></li> <li><a href="/task3">任务三: 北京与深圳商户业务包属性占比(双饼图)</a></li> <li><a href="/task4">任务四: 北京商户业务包投诉占比(玫瑰图)</a></li> <li><a href="/task5">任务五: 审核通过与拒绝对比(柱状堆叠图)</a></li> <li><a href="/task6">任务六: 各城市商家数量散点地图</a></li> </ul> """ if __name__ == "__main__": app.run(debug=True)。显示这段代码的运行图片
06-24
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值