22/7/2012 ICPC培训 第七天

深度强化学习训练结果曲线绘制教程 使用python语言,只调用matplotlib库,绘制训练过程中保存的强化学习训练曲线。模仿经典论文中的训练曲线,多次训练取平均,并绘制出阴影区域。 阅读详情

又来吐糟了啦。。。

今天照样刷出来的题不多大哭。勉强也只能算个三题半吧!

 

上午在做上次比赛的B题。

要用数据结构,vector和deque。也第一次感受到了数据结构的魅力,的确把时间复杂度优化的很好。

按照出题者的思路写出了代码,TLE了。结果你懂得,各种纠结,再也想不到如何优化了。。。

然后,就在刚才,把出题人-—唐爽童鞋的代码拿来,居然也TLE了惊恐。神马情况。

 

快到中午,眼看没A题。唉,退而求其次,A一水题吧。

HDU2289,求圆台的高。

主要就是根据性质求出高和半径的关系。然后根据圆台体积公式得到体积和高的关系。最后就是二分

解方程了。坑爹的是这题要求的精度很高、pi不取好也很难A。。。

代码:

#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;

const double pi=3.1415926535897931;
const double accurate=1e-7;

double r,R,H,V,h;

double calculate(double x)
{
    return pi*x*(r*r+pow(r+(R-r)/H*x,2)+r*(r+(R-r)/H*x))/3.0;
}

void binSearch(double low,double high)
{
    double mid=(low+high)*1.0/2.0;
    
    if(high-low<=accurate)  //这句没加,超时了几次,二分查找对出口一定得判断好 
    {                       //但理论上我认为这是不对的,根本就没有逼近V,只是 
        h=mid;              //递归的出口,否则超时 
        return;
    }
    
    if(fabs(calculate(mid)-V)<=accurate)
    {
        h=mid;
        return;
    }
    else if(calculate(mid)>V)
    {
        binSearch(low,mid);
    }
    else
    {
        binSearch(mid,high);
    }
}

int main()
{
    int cas;
    
    cin>>cas;
    
    while(cas--)
    {
        cin>>r>>R>>H>>V;
        
        binSearch(0,H);
        
        cout<<setiosflags(ios::fixed)<<setprecision(6)<<h<<endl;
    }
    
    return 0;
}

 

下午刷了HDU4301。

用DP来做,其实我是看解题报告才懂得!

上次比赛,居然还搞3*n!!!果断做不出来。

我就不啰嗦了,不懂可直接看解题报告:点击打开链接

代码:

//dp[i][0][j]表示前i行分成j部分且第i行的两块属于同一部分
//dp[i][1][j]表示前i行分成j部分且第i行的两块属于不同部分           
#include<iostream>
#include<cstring>
using namespace std;

const int MAX=1010;
const int MOD=100000007;

__int64 dp[MAX][2][MAX*2];
int n,k;

void DP()
{
    memset(dp,0,sizeof(dp));
    
    dp[1][0][1]=dp[1][1][2]=1;  //初值 
    
    for(int i=1;i<=999;i++)
    {
        for(int j=1;j<=2000;j++)
        {
            //状态转移方程 
            dp[i+1][0][j]=(dp[i+1][0][j]+dp[i][0][j]+dp[i][1][j]*2)%MOD;
            dp[i+1][1][j]=(dp[i+1][1][j]+dp[i][1][j])%MOD;
            dp[i+1][0][j+1]=(dp[i+1][0][j+1]+dp[i][0][j]+dp[i][1][j])%MOD; 
            dp[i+1][1][j+1]=(dp[i+1][1][j+1]+dp[i][0][j]*2+dp[i][1][j]*2)%MOD;
            dp[i+1][1][j+2]=(dp[i+1][1][j+2]+dp[i][0][j]+dp[i][1][j])%MOD;
        }
    }
} 
            
int main()
{
    DP();
     
    int cas;
    
    cin>>cas;
    while(cas--)
    {
        cin>>n>>k;
        
        cout<<(dp[n][0][k]+dp[n][1][k])%MOD<<endl;
    }
    
    return 0;
} 

 

最后一题(HDU1969)

这还是一道二分题。

还是被卡了一会的。主要因为对递归还是不太明白。

这样的题比较好。它不像在一维数组内查找一个数是否存在,它要求不仅要求出结果,还要是最大或最小的。

当然,是在一定精度范围内。

另外就是,这两类二分题其实在代码上都是有规律可循的。刷两道题,总结下即可。

代码:

#include<iostream>
#include<algorithm> 
using namespace std;

const double pi=3.1415926535897931;
const double accurate=1e-5;
const int MAX=10000;
 
double volume[MAX],maxPiece; 
int numPie,numFriend; 

inline double calculate(double r)
{
    return pi*r*r;
}
 
void input()
{
    int radii;
     
    for(int i=0;i<numPie;i++)
    {
        scanf("%d",&radii);
        volume[i]=calculate(radii);
    }

    sort(volume,volume+numPie); 
}
 
int calculateNum(double v)
{
    int num=0;
    
    for(int i=0;i<numPie;i++)
    {
        num+=int(volume[i]/v);
        
        if(num>numFriend+1) break;
    }
    
    if(num>=numFriend+1)
    {
        maxPiece=maxPiece>v?maxPiece:v;
    }
     
    return num;
}
 
void binSearch(double low,double high)
{
    double mid=(low+high)/2;  
     
    if(high-low<=accurate)
    {
         //maxPiece=maxPiece>mid?maxPiece:mid;
         return;
    }
    
    if(calculateNum(mid)>=numFriend+1)
    {
        binSearch(mid,high);
    }
    else
    {
        binSearch(low,mid);
    } 
}
         
int main()
{
    int cas;
    
    scanf("%d",&cas);
    while(cas--)
    {
        scanf("%d%d",&numPie,&numFriend);
        
        input();
        
        maxPiece=-1;
         
        binSearch(0,volume[numPie-1]);
        
        printf("%.4lf\n",maxPiece); 
     }
     
     return 0;
} 


 

最后,晚上张浩然同学给我们讲了下图论。最小生成树、最短路径、并查集、强连通分量。。。

各种算法,又有事干咯。

 

 

 

 

 


 

 

 

跨应用服务器的自定义 IDoc 传输实战:以 CATSDB 工时为例,打通两套 SAP 系统的数据通道 本文介绍了在企业多SAP系统环境下,使用SAP ALE/IDoc技术实现工时数据跨系统传输的解决方案。文章从技术选型、系统架构到具体配置步骤进行了详细说明,重点阐述了IDoc/ALE在异步传输、全链路追踪和数据重放方面的优势。 文章详细讲解了端到端实施流程,包括Logical System配置、RFC Destination创建、Message Type定义、Segment和Basic Type设计等关键步骤。同时提供了出站封装的ABAP代码示例,强调调用MASTER_IDOC_DISTRIBUTE函数后执 阅读详情

相关推荐

避坑指南:Abaqus网格划分中90%用户会遇到的5个质量陷阱(附解决方案)

本文深入剖析Abaqus网格划分中90%用户会遇到的5个典型质量陷阱,包括单元扭曲、扫掠网格失败、尺寸梯度控制等,并提供工程级解决方案。通过Python脚本和虚拟拓扑等技巧,帮助用户提升网格质量,确保有限元分析结果的可靠性,适用于CAE工程师和仿真分析师。

weixin_29243279的博客 101

HDU 2289 Cup

<br /> <br />http://acm.hdu.edu.cn/showproblem.php?pid=2289<br /> <br />题目大意:这道题就是给你一个圆台,里面装了一些水,现在告诉你圆台上下底半径,高度,水的体积,问你水的高度是多少。<br /> <br />解题思路:数学题,用到圆台求体积公式,照套就是,二分法逼近求值。<br /> <br />#include <stdio.h> #include <math.h> const double PI = acos(-1.0);

话别深秋 2124

OpenFOAM收敛问题排查指南:从参数设置到网格优化

本文系统性地介绍了OpenFOAM计算中收敛问题的排查方法。从理解收敛本质出发,详细讲解了如何通过调优求解控制参数(如松弛因子、离散格式)、合理设置时间步长与耦合算法,以及优化网格质量来解决发散难题。文章提供了从软件设置到硬件网格的完整排查路径,帮助用户实现稳定高效的计算流体力学模拟。

fern8的博客 792

HDU 2289(浮点二分+数学)

问题描述 WHU ACM团队有一个大杯子,每个成员都可以喝水。现在,我们知道杯子中的水量,您能告诉我们它的高度吗? 杯子的上下圆的半径是已知的,杯子的高度也是已知的。 输入项 输入包含几个测试用例。输入的第一行包含一个整数T,表示测试用例的数量。 每个测试用例都在一行上,由四个浮点数组成:r,R,H,V,分别表示热水的底部半径,顶部半径,高度和体积。 T ≤ 20. 1 ≤ r, R, H ≤ 100; 0 ≤ V ≤ 1000,000,000. r ≤ R. r,R,H,V由一个空格分隔。 相邻两个案例

ACM-ICPC 现役(铜牌) Codeforces Rating: 2172 417

华为手环实时心率数据导出到UWP项目中

hello大家好呀O(∩_∩)O最近在做毕设 其中有个小功能要用到实时心率数据。查找网上的资料发现只有小米手环的实时心率数据导出但是没有华为手环的,我试了华为手环但是并不能行得通哈哈哈。现在分享一下华为手环实时心率数据导出的代码。

apple_63713858的博客 1583

达梦数据库与sharding-jdbc的深度适配实践

本文详细介绍了达梦数据库与sharding-jdbc的深度适配实践,包括驱动与依赖管理、核心适配实现、注册与配置等关键步骤。通过扩展shardingSphere的方式,成功实现了达梦数据库的分库分表功能,并提供了常见问题解决方案和性能优化建议,助力企业级应用高效处理海量数据。

weixin_30300225的博客 624

hdu 2289 Cup 【二分】

题目 The WHU ACM Team has a big cup, with which every member drinks water. Now, we know the volume of the water in the cup, can you tell us it height? The radius of the cup’s top and bottom circle is known, the cup’s height is also known. 输入 The input con

QYQHxyh的博客 339

R语言coxph函数对加权数据集进行竞争风险模型拟合、regplot包的regplot函数可视化竞争风险回归模型的列线图nomogram、计算特定病例的事件概率(控制了竞争风险的累计事件概率)

R语言coxph函数对加权数据集进行竞争风险模型拟合、regplot包的regplot函数可视化竞争风险回归模型的列线图nomogram、计算特定病例的事件概率(控制了竞争风险的累计事件概率)

statistics+insight+vista+power 360

hdu 2289 CUP

Cup Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1089    Accepted Submission(s

codeStone 1400

[QMT和ptrade量化交易小白入门]-120、卖出深度虚值期权的三重过滤策略

本专栏主要是介绍QMT和ptrade的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写200篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 285

量化交易:如何在QMT中运行Python策略并在VSCode中高效调试?

哈喽,大家好,我是木头左!

木头大左的博客 3761

hdu 2289 基础二分

本以为二分的题嘛,有了模板一切都好说,这道题发出来其实有抄袭的嫌疑,算是给自己写的纠正性文章了,原来的想法每次二分的条件是相似边比的立方大于体积比,后来发现计算多误差大,然后就变成了所求水的体积大于实际水的体积,结果因为强行套模板,还是错55555.。。所以模板不是看懂会用就行了,还是要懂其中的思想啊。。。 WA: #include #include #include #include usi

王甲评的博客 455

Dify搭建AI测试用例生成器

1、获取产品需求文档2、解读、分析、挖掘需求点,提炼为测试点3、依据测试点,生成详细的测试用例4、输出测试用例1、打开 Dify 控制台,依次点击【工作室】-【ChatFlow】-【创建空白应用】。

十二测试录 1372

HDU2289

题意:那么好理解的题就不用写了吧 #include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<cmath> #define eps 1e-7 using namespace std; int n; double c; doub...

Yuzzzzzz的博客 386

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

[HDU2289]Cup_每日一题5_28

Problem - 2289 (hdu.edu.cn)

yanhanshui的博客 213

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

HDU-2289 Cup

#include #include #include using namespace std; const double eps = 1e-9; const double pi = acos(-1.0); double r1, r2, H, V; int t; inline double volume(double h) { double R = h / H * (r2 - r1

Kiyonami Yu 905

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

算法岗面试题目整理

鄙人才疏学浅。有整理不到位的,勿喷。整理的题目为大类型,面试中可能极可能会出现类似的变形,大同小异,认真思考就会出结果(勿慌)。 1、链表操作 最基本 C++ 指针与引用 类继承,多态(不懂的百度吧) 正则表达式 (矩阵)快速幂 筛素数(了解) 二叉树前、中、后序遍历(递归、非递归形式(较难)) 第一节 链表操作相关 注: 该节需要写代码实现 1. 反转链表(前插) 2. 遍...

一花一世界 一叶一菩提 4559

hdu 2289(数学+几何+二分)

Cup Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4857    Accepted Submission(s): 1547 Problem Description The WHU ACM Team has a big

llin-黎辰 620

hdu2289 Cup

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2289 #include #include #define EPS 1e-8 const double PI=3.14159265; double r,R,H,V; double Cal(double x) { double r0=(R-r)*x/H+r; return PI*x*

不可不戒 756

hdu2289(简单二分)

虽说是简单二分,但是我还是wa死了  题意:

u013509299的专栏 642

【hdu2289】Cup——二分

题目: Cup Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 6303    Accepted Submission(s): 1994 Problem Description The WHU ACM Tea

CFhM_R's Blog 485

HDU 2289 Cup【高精度,二分】

Cup Time Limit: 3000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8942Accepted Submission(s): 2744 Problem Description The WHU ACM ...

weixin_34004576的博客 132

hdu 2289

简单二分 主要是圆台体积公式 水平面的半径u可以根据直角梯形的面积求出: (r+u)*h + (u+R)*(H-h) = (r+R)*H 得出(R-r)*h = (u-r)*H 得 u = r + (R-r)*h/H 圆台体积计算公式:V= π*h*( R^2 + R*u + u^2 ) / 3 #include #include #include #include #in

bayaksha 610

19/7/2012 ICPC培训 第四天

今天只刷出来三题。 明天下午组内又有测试了,肿么办呀,搜索和DP。 说说今天吧。 这三题都是以前看过但没做出来的题,也根本就没尝试去做,就觉得做不出来! 第一题(HDU4039)。 这题花了6个小时左右。其实,前两个小时代码就搞定了,可是有一处小错,一直TLE呀。 在Floyd()中把两个if判断条件没写好呀。明明算法是对的,可是代码逻辑就是没能那样写出来! 这种错误还很难找!!!

ON THE WAY TO GEEK 4078

25/7/2012 ICPC培训 第十天

啦啦啦 又来喽 今天一直在做小生成树问题。总共刷了7题,用来两种算法,prime和kurskal。 而且还都是HDU畅通工程系列的。   上午把prime算法的模板谢了出来,然后用模板刷了三题。 HDU1863、HDU1233、HDU1879 由于代码神似呀,这里只贴1863的代码了。 代码: #include #include #include using namespace

ON THE WAY TO GEEK 3880

23/7/2012 ICPC培训 第八天

今天真的都有点不想写了!!! 上午做一题(HDU1829),没刷出来。下午在做一题(HDU3635),还是没刷出来。。。 这两题都是关于并查集的。题目可以理解,大部分要求都能实现,可是就一直卡在一些细节上! 或者WA,或者狠下心来暴力一把TLE。。。 纠结呀!!!   不过今天还是有收获滴。 今天把上次比赛的题目都搞定啦。感谢唐爽童鞋、张浩然童鞋的指导。 我还发现B题的一个错,标程

ON THE WAY TO GEEK 3484
上一篇: 21/7/2012 ICPC培训 第六天
下一篇: 23/7/2012 ICPC培训 第八天
lulipeng_cpp
博客等级 码龄15年 169粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值