HDU 4033 4036 4039 The 36th ACM/ICPC Asia Regional Chengdu Site —— Online Contest

HDU2059龟兔赛跑-题解动态规划DP 龟兔赛跑<br />Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)<br />Total Submission(s): 3538    Accepted Submission(s): 1277<br /><br />Problem Description据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下沙某农业园卧薪尝胆潜心修 阅读详情

 都是队友写的,放在一起。

 

HDU 4033 Regular Polygon 

二分什么的。
代码:
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
using namespace std;

double dis[105];
int n;
const double eps=1e-8;
bool tt(double a,double b,double c){
    if((a+b>c&&abs(a-b)<c)&&(a+c>b&&abs(a-c)<b)&&(b+c>a&&abs(b-c)<a))
        return 1;
    return 0;
}
int ff(double a,double b,double c){
    if(a+b<=c)
        return 2;
    return 3;
}
int ok(double x){
    double a,b,c;
    double res=0;
    for(int i=1;i<n;i++){
        a=dis[i];
        b=dis[i+1];
        c=x;
        if(tt(a,b,c)){
            double det=acos((a*a+b*b-c*c)/(2.0*a*b));
            res+=det;
        }
        else 
            return ff(a,b,c);
    }
    a=dis[n];b=dis[1];c=x;
    if(tt(a,b,c)){
        double det=acos((a*a+b*b-c*c)/(2.0*a*b));
        res+=det;
    }
    else{
        return ff(a,b,c);
    }
    if(fabs(res-2*acos(-1))<1e-8)
        return 4;
    else if(res>2*acos(-1))
        return 5;
    return 6;
}
int main(){
    int T,tt=0;scanf("%d",&T);
    while(T--){
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%lf",&dis[i]);
        double tmp=eps;
        double l=eps,r=1000000000.0;
        for(int i=1;i<n;i++){
            if(dis[i]+dis[i+1]>tmp){
                tmp=dis[i]+dis[i+1];
                if(tmp<r)
                    r=tmp;
            }
        }
        printf("Case %d: ",++tt);
        double key;
        bool f=0;
        while(fabs(r-l)>eps){
            double mid=(l+r)/2;
            int x=ok(mid);
            if(x==4){
                key=mid;
                f=1;
                break;
            }
            if(x==2||x==5){
                r=mid;
            }
            else    
                l=mid;
        }
        if(f)
            printf("%.3lf\n",key);
        else
            printf("impossible\n");
    }
    return 0;
}

 
HDU 4036 Rolling Hongshu
据说是DP。
ps:其实他不太会DP^_^
代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<string>
#include<queue>
#include<stack>
#include<vector>
#include<map>
#include<set>
#include<iostream>
#include<algorithm>

#define inf 0x3f3f3f3f
#define eps 1e-8
#define pi acos(-1.0)
#define Max(x,y) (x>y?  x:y)
#define Min(x,y) (x<y?  x:y)
#define Seg(x) ((x>eps) - (x<-eps))
#define MAXN 1100
#define MAXM 10000100
#define g 20

using namespace std;

int t,n,m,cases=0;
double mm;

struct point
{
    double x,y;
    point(){}
    point(double xx,double yy){x=xx;y=yy;}
}p[MAXN];
    
struct blue
{
    double x,v,mm;
}ball[MAXN];
    
double dp[MAXN];

vector<int> vec[MAXN];

point Interpoint(point u1,point u2,point v1,point v2)//两相交直线交点
{
    point ret=u1;
    double t=((u1.x-v1.x)*(v1.y-v2.y)-(u1.y-v1.y)*(v1.x-v2.x))/
                ((u1.x-u2.x)*(v1.y-v2.y)-(u1.y-u2.y)*(v1.x-v2.x));
    ret.x+=(u2.x-u1.x)*t;
    ret.y+=(u2.y-u1.y)*t;
    return ret;
}


int main()
{
    int i,j;
    double ans;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d%lf",&n,&m,&mm);
        for(i=1;i<=n;i++)
            scanf("%lf%lf",&p[i].x,&p[i].y);
        
        for(i=1;i<=m;i++)
            scanf("%lf%lf%lf",&ball[i].x,&ball[i].v,&ball[i].mm);
        
        for(i=0;i<=n;i++)
            vec[i].clear();
        
        memset(dp,0,sizeof(dp));

        for(i=1;i<=m;i++)
            for(j=1;j<n;j++)
            {
                if(Seg(ball[i].x-p[j].x)>=0&&Seg(ball[i].x-p[j+1].x)==-1)
                    vec[j].push_back(i);
            }
        memset(dp,0,sizeof(dp));
        for(i=n-1;i>=1;i--)
        {
            if(vec[i].size()==0)
            {
                if(Seg(p[i].y-p[i+1].y)==1) //down
                {
                    double ww=mm*g*(p[i].y-p[i+1].y);
                    double www=0.5*mm*dp[i+1]*dp[i+1];
                    if(Seg(www-ww)==1)
                        dp[i]=sqrt(((www-ww)*2)/mm);
                    else
                        dp[i]=0;
                }
                else if(Seg(p[i].y-p[i+1].y)==-1)
                {
                    double ww=0.5*mm*dp[i+1]*dp[i+1]+mm*g*(p[i+1].y-p[i].y);
                    dp[i]=sqrt((ww*2)/mm);
                }
                else
                    dp[i]=Max(dp[i+1],dp[i]);
            }
            else
            {
                for(j=0;j<vec[i].size();j++)
                {
                    point now=Interpoint(p[i],p[i+1],point(ball[vec[i][j]].x,0),point(ball[vec[i][j]].x,1));
                    if(Seg(p[i].y-p[i+1].y)==1) //down
                    {
                        double a=ball[vec[i][j]].v*ball[vec[i][j]].v;
                        double b=2*g*(p[i].y-now.y);
                        double ww,www;
                        
                        if(Seg(a-b)<=0)    ww=0;
                        else    ww=sqrt(a-b);
                        
                        a=dp[i+1]*dp[i+1];
                        b=2*g*(p[i].y-p[i+1].y);
                        
                        if(Seg(a-b)<=0)    www=0;
                        else    www=sqrt(a-b);

                        dp[i]=Max(dp[i],ww);
                        dp[i]=Max(dp[i],www);
                    }
                    else  if(Seg(p[i].y-p[i+1].y)==-1)
                    {
                        double a=ball[vec[i][j]].v*ball[vec[i][j]].v;
                        double b=2*g*(now.y-p[i].y);
                        
                        double ww,www;
                        
                        if(Seg(a+b)<=0)    ww=0;
                        else    ww=sqrt(a+b);
                        
                        a=dp[i+1]*dp[i+1];
                        b=2*g*(p[i+1].y-p[i].y);
                        
                        if(Seg(a+b)<=0)    www=0;
                        else     www=sqrt(a+b);

                        dp[i]=Max(dp[i],ww);
                        dp[i]=Max(dp[i],www);
                    }
                    else 
                    {
                        dp[i]=Max(dp[i],ball[vec[i][j]].v);
                        dp[i]=Max(dp[i],dp[i+1]);
                    }
                }
            }
        }
        printf("Case %d: %.2lf\n",++cases,dp[1]);
    }
}

不知道是什么^_^
代码:
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<string>
#include<map>
using namespace std;
int peo[2010][2010];
map<string,int> my;
char peop[2010][20];
int flag[2010];
struct Ans{
       char name[20];
};
Ans ans[2010];
bool cmp(Ans aa,Ans bb){
     int temp=strcmp(aa.name,bb.name);
     if(temp<0) return 1;
     else return 0;
}
main(){
     int i,ii,j,k,t,tt,n,q,plen,ansl,maxn;
     char a[20],b[20];
     scanf("%d",&t);
     for(tt=1;tt<=t;tt++){
         printf("Case %d:\n",tt);
         memset(peo,0,sizeof(peo));
         memset(peop,0,sizeof(peop));
         scanf("%d%d",&n,&q);
         my.clear();
         plen=0;
         for(i=1;i<=n;i++){
             memset(a,0,sizeof(a));
             memset(b,0,sizeof(b));
             scanf("%s %s",a,b);
             int tt1,tt2;
             if(my[a]==0){
                my[a]=++plen;
                strcpy(peop[plen],a);
             }
             if(my[b]==0){
                my[b]=++plen;
                strcpy(peop[plen],b);
             }
             tt1=my[a];tt2=my[b];
             peo[tt1][tt2]=peo[tt2][tt1]=1;
         }
         for(ii=1;ii<=q;ii++){
             memset(flag,0,sizeof(flag));
             memset(a,0,sizeof(a));
             scanf("%s",a);
             int temp=my[a];
             for(j=1;j<=plen;j++){
                 if(peo[temp][j]){
                    for(k=1;k<=plen;k++){
                        if(!peo[temp][k]&&temp!=k&&peo[j][k]) flag[k]++;
                    }
                 }
             }
             maxn=0;ansl=0;
             for(i=1;i<=plen;i++) if(flag[i]>maxn) maxn=flag[i];
             if(maxn==0) printf("-\n");
             else{
                  for(i=1;i<=plen;i++)
                      if(flag[i]==maxn){
                         memset(ans[ansl].name,0,sizeof(ans[ansl].name));
                         strcpy(ans[ansl++].name,peop[i]);
                      }
                  sort(ans,ans+ansl,cmp);
                  printf("%s",ans[0].name);
                  for(i=1;i<ansl;i++) printf(" %s",ans[i].name);
                  printf("\n");
             }
         }
     }
}

 
环形m段最大子段和 题解动态规划DP http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=10581环形m段最大子段和Time Limit: 5000ms, Special Time Limit:15000ms, Memory Limit:65536KB Total submit users: 3, Accepted users: 3 Problem 10581 : No special judgementProblem description  我想你已经做出了一维的最大子段 阅读详情

相关推荐

利用MATLAB 4f光学系统,在Python中进行弗劳恩霍夫衍射和傅里叶面滤波——用镜头模拟光学图像处理。.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

POJ 3155 Hard Life 最大密度子图

Hard Life Time Limit: 8000MS   Memory Limit: 65536K Total Submissions: 4345   Accepted: 1226 Case Time Limit: 2000MS

魔神翼 3909

工业互联网工控安全与工业质检AI大模型建设方案.pptx

工业互联网工控安全与工业质检AI大模型建设方案.pptx

HDU 4069 Squiggly Sudoku 数独DLX 福州网络赛

Squiggly Sudoku Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 644 Accepted Submiss

魔神翼 3899

通信行业CentOS 7内核网络栈优化:高并发连接下UDP/TCP性能调优与系统资源管理

内容概要:本文聚焦于CentOS 7系统在通信行业高并发场景下的性能调优实践,重点围绕内核网络栈优化展开,涵盖UDP/TCP缓冲区调整、文件句柄与连接跟踪表扩容、TIME_WAIT状态复用、软中断分布优化及tuned工具的自动化调优。通过具体配置参数和实际案例(如VoIP软交换系统)深入解析各项调优措施的设计原理与实施效果,有效解决高CPS下丢包、连接失败等问题,并展望了向云化、eBPF等动态智能调优方向的发展趋势。; 适合人群:从事通信系统运维、网络开发或Linux系统性能优化的技术人员,具备一定操作系统和网络基础知识,工作经验1年以上的中初级工程师。; 使用场景及目标:①应用于软交换、媒体网关、信令网关等高并发通信设备的系统调优;②解决UDP丢包、conntrack表满、TCP连接队列溢出等典型性能瓶颈;③提升系统在小包高频、低时延要求场景下的稳定性和吞吐能力。; 阅读建议:建议结合实际生产环境或测试平台同步验证文中配置,重点关注参数背后的物理意义(如BDP、softirq、conntrack机制),并配合ss、conntrack、dmesg等命令进行调优前后对比分析,确保安全可控地实施变更。

2024 《计算机网络》实验教学指导书.doc

2024 《计算机网络》实验教学指导书.doc

HDU 3696 FZU 2006 -- Farm Game SPFA最长路 2010福州区域赛

Farm Game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 62768/32768 K (Java/Others) Total Submission(s): 148 Accepted Submission(s): 65 Problem Description “Farm Game” is one of the m

魔神翼 3708

不平衡电网下自抗扰顺序模型预测PWM整流器控制仿真模型(Simulink仿真实现)

内容概要:本文围绕面向城市空中交通的多无人机路径规划问题展开研究,提出了一套融合全局规划、动态避障与局部协同调整的综合路径规划方法。研究内容涵盖基于改进RRT算法与图论的全局路径规划、基于动态风险场和动态窗口法(DWA)的模型预测控制实现动态避障,以及基于分布式协同控制的多无人机局部路径协同策略。通过Matlab平台构建仿真环境,在多种典型城市交通场景下对所提方法进行了系统性验证,结果表明该方法在路径安全性、编队稳定性与任务效率方面表现优异。文章还深入探讨了算法的创新点与未来研究方向,为复杂城市环境下多无人机系统的自主协同提供了理论支撑与技术路径。; 适合人群:具备自动化、控制理论、计算机科学或相关领域基础知识,从事无人机系统、智能交通、路径规划、多智能体协同控制等方向研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①为城市空中交通系统中的多无人机安全、高效飞行提供可靠的路径规划解决方案;②支持在复杂、动态的城市场景中开展无人机自主导航、编队飞行与协同控制的技术研究与仿真验证。; 阅读建议:建议结合提供的Matlab代码进行实践操作,重点关注算法的具体实现细节、参数配置对性能的影响以及不同仿真场景下的实验设计,以深入理解各模块的集成逻辑与实际应用效果。

SOJ2113: 数字游戏题解动态规划DP

2113: 数字游戏Submit your solution     Discuss this problem     Best solutionsDescription 【问题描述】 丁丁最近沉迷于一个数字游戏之中。这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易。游戏是这样的,在你面前有一圈整数(一共n个),你要按顺序将其分为m个部分,各部分内的数字相加,相加所得的m个结果对10取模后再相乘,最终得到一个数k。游戏的要求是使你所得的k最大或者最小。 例如,对

魔神翼 3589

FMQL开发环境实战:从零构建国产FPGA SoC的软件基石

本文详细解析了构建国产复旦微FMQL FPGA SoC软件开发环境的完整流程。针对开发者在环境搭建中遇到的核心痛点,文章深入剖析了Procise、IAR与Vivado三大工具的协同角色与版本选择,提供了从软件下载、安装避坑到核心配置的实战指南,并总结了常见问题的排查方法,旨在帮助开发者高效跨过FMQL开发的“第一道坎”。

weixin_29215391的博客 125

STM32CubeMX 6.4.0 + STM32F407ZGT6 实战:基于YT8512C PHY的lwIP以太网配置与调试

本文详细介绍了使用STM32CubeMX 6.4.0为STM32F407ZGT6微控制器配置YT8512C PHY芯片,并成功移植lwIP以太网协议栈的实战过程。文章从硬件差异分析入手,逐步讲解时钟配置、ETH外设设置、PHY寄存器适配以及lwIP协议栈剪裁等关键步骤,旨在帮助开发者解决非标准PHY芯片的联网难题,最终实现网络连通与Ping测试。

n8m7b6v5c4的博客 592

[SCOI2009]windy数 题解动态规划DP

[SCOI2009]windy数 Time Limit:1000MS  Memory Limit:165536KTotal Submit:162 Accepted:74 Descriptionwindy定义了一种windy数。 不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 windy想知道,在A和B之间,包括A和B,总共有多少个windy数? Input包含两个整数,A B。 Output一个整数。 Sample Input【输入样例一】 1 10 【输入样例二】 25 50

魔神翼 3430

DoubletFinder实战:如何优化参数提升scRNA-seq双细胞识别准确率?

本文深入探讨了如何通过优化DoubletFinder参数提升scRNA-seq双细胞识别准确率。详细解析了pK和nExp参数的影响机制,提供了系统化的参数优化流程和多样本整合策略,并结合真实数据集演示了验证方法与高级应用场景,帮助研究人员获得更可靠的分析结果。

weixin_28523493的博客 339

POJ3662 Telephone Lines 二分+最短路

Telephone Lines Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3468   Accepted: 1245 Description Farmer John wants to set up a telephone line at his farm.

魔神翼 3200

Matlab实战:用DQN算法让机器人学会自主避障(附完整代码)

本文详细介绍了如何使用Matlab实现DQN(深度Q网络)算法,使机器人在复杂环境中学会自主避障。通过环境建模、网络架构设计、奖励函数优化及实战调试,提供了完整的代码实现和训练策略,帮助开发者快速应用于机器人路径规划项目。

t8u9v0w1x的博客 232

别再到处找资源了!WinCC 7.5 SP2官方下载与Windows 10保姆级安装避坑指南

本文提供了WinCC 7.5 SP2在Windows 10上的官方下载与安装全流程指南,重点解决了资源获取难、系统兼容性问题及分卷压缩处理等常见痛点。通过详细的步骤和实用技巧,帮助用户顺利完成安装并优化配置,适用于工控领域的学习者和从业者。

weixin_32924297的博客 473

POJ3186Treats for the Cows题解动态规划DP

Treats for the CowsTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 2686 Accepted: 1280<br />DescriptionFJ has purchased N (1 <= N <= 2000) yummy treats for the cows who get money for giving vast amounts of milk. FJ sells one treat per day and wan

魔神翼 3032

Redmi K30 5G刷 LineageOS17.1

前言 买手机前就观望了Xdr论坛,看Redmi K30 5G有LineageOS17.1的Rom并且还挺热,应该还不错,就入手了。晚上就刷机了。买了小米就是为了折腾,为发烧而生。 在开始前还请先安装adb工具,因为我自己是做Android开发的,自带adb,不会安装的可以百度“Android安装adb工具”。还有下载刷机文件:百度云 密码:2a0f 刷机的系统是刚买来的低版本,没有升级过Rom,如果高版本慎刷。 还有这个Rom是5G版本的,4G版本的不要刷。 建议没有刷过机器的最好不要尝试,变砖后果自负。

u010436867的博客 1万+

POJ1651Multiplication Puzzle题解动态规划DP

Multiplication PuzzleTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 3460 Accepted: 2034<br />DescriptionThe multiplication puzzle is played with a row of cards, each containing a single positive integer. During the move player takes one card out

魔神翼 2831

SAP CDS View association 的工作原理,与数据库传统 join 操作的区别讲解

笔者前一篇教程,介绍了 SAP CDS View 里如何创建 association:本文就来一一对这些问题进行解答。首先我们来研究如何消费创建好的 SAP CDS View 中的 association 数据。在上图 ABAP Development Tool 里展示的 CDS View 界面,点击 F8 快捷键,进入 Data Preview 即数据预览界面。我们随便选中一条行项目,右键,发现右键菜单里,赫然有一条的菜单项。看来这个功能肯定和 association 相关了。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 996

2024年CSP-X复赛真题题解(T1:购物)

2024年CSP-X复赛真题题解(T1:购物)

王老师青少年编程 1177

HDU2821 Pusher HDU3500 Fling DFS搜索

Pusher Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/65536 K (Java/Others) Total Submission(s): 169 Accepted Submission(s): 6

魔神翼 2685

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

HDU4067 Random Maze 最小费用最大流 福州网络赛

Random Maze Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 243 Accepted Submission

魔神翼 2668

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

POJ1018Communication System题解动态规划DP

Communication SystemTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 12607 Accepted: 4377<br />DescriptionWe have received an order from Pizoor Communications Inc. for a special communication system. The system consists of several devices. For eac

魔神翼 2217

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

HDU 3605 Escape 最大流or二分图多重匹配 2010 ACM-ICPC Multi-University Training Contest(17)——Host by ZSTU

Escape Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1122 Accepted Submission(s):

魔神翼 2058

HDU 3681 Prison Break 二分+搜索 The 35th ACM-ICPC Asia Regional Contest (Hangzhou)

Prison Break Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1076 Accepted Submissio

魔神翼 2028
上一篇: HDU 4038 Stone The 36th ACM/ICPC Asia Regional Chengdu Site —— Online Contest
下一篇: POJ 2396 Budget 有源汇上下界可行流
power721
博客等级 码龄18年 176粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值