130921周赛结题报告

【python快速编程入门(第二版)黑马程序员课后编程题】 python快速编程入门(第二版)黑马程序员课后编程题 阅读详情

这是这学期第二次周赛的题目,第一周的题目略坑,还在研究中。

A. The area  

这道题题意是有一个开口向下的抛物线,与一条直线有两个交点,且交点位于抛物线顶点的两段。

给出两交点和顶点的坐标,求围成的面积。

就是一道简单的积分题。我写错了个变量,debug了很久。。sb了。。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
struct node
{
    double x;
    double y;
};
double a,b,c;
double K,B;
node p[4];
double gao(double x)
{
    double s=0;
    s=a*x*x*x+b*x*x+c*x;
    return s;
}
int main ()
{
    int t,i;
    cin>>t;
    double area;
    while(t--)
    {
        for (i=1; i<=3; i++)
            scanf("%lf%lf",&p[i].x,&p[i].y);
//        for (i=1; i<=3; i++)
//            printf("%lf %lf\n",p[i].x,p[i].y);
        b=p[1].x;
        c=p[1].y;
        a=(p[2].y-c)/((p[2].x-b)*(p[2].x-b));
        c=a*b*b+c;
        b=(-2.0)*a*b;
        K=(p[3].y-p[2].y)/(p[3].x-p[2].x);
        B=p[3].y-K*p[3].x;
        b=b-K;
        c=c-B;
//        cout<<a<<" "<<b<<" "<<c<<" "<<K<<" "<<B<<endl;
        a=a/3;
        b=b/2;
//        cout<<a<<" "<<b<<" "<<c<<endl;
        area=gao(p[3].x)-gao(p[2].x);
        printf("%.2f\n",area);
    }
    return 0;
}

B. AC Me

一道水题,立马体现出了自己基本概念吃的不够透。。

一开始既然T了。。

代码就不贴了。。


C. 回文数猜想

好久没有敲题了,既然没有将用过的字符串清空。。蛋疼。。RE了两次。而且写的很麻烦,一开始思路不清晰

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<ctype.h>
using namespace std;
int map[1000000];
char a[15],b[15];
int len;
void change()
{
    int i,j=0;
    for (i=len-1; i>=0; i--)
        b[j++]=a[i];
    b[j]='\0';
}
int main ()
{
    int i,j,k,s,num1,num2;
    while(scanf("%s",a)!=EOF)
    {
        s=0;
        len=strlen(a);
        change();
        if (strcmp(a,b)==0)
        {
            sscanf(a,"%d",&num1);
            map[s++]=num1;
        }
        else
        {
            change();
            while(1)
            {
                sscanf(a,"%d",&num1);
                map[s++]=num1;
                if (strcmp(a,b)==0) break;
                sscanf(b,"%d",&num2);
                num1=num2+num1;
                memset(b,0,sizeof(b));
                memset(a,0,sizeof(a));
                i=0;
                while(num1>0)
                {
                    b[i++]=num1%10+'0';
                    num1=num1/10;
                }
                b[i]='\n';
                len=i;
                j=0;
                for (i=len-1; i>=0; i--)
                    a[j++]=b[i];
                a[j]='\n';
//                puts(a);
//                puts(b);
            }
        }
        cout<<s-1<<endl;
        for (i=0; i<s-1; i++)
            cout<<map[i]<<"--->";
        cout<<map[s-1]<<endl;
    }
    return 0;
}

D. Lake Counting

HDU 1282 水题

裸的DFS

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
char map[105][105]={0};
int dir[8][2]={{-1,-1},{0,-1},{1,-1},{1,0},{1,1},{0,1},{-1,1},{-1,0}};
int n,m,visit[105][105]={0};
int in(int x, int y)
{
    if (x>=0 && x<n && y>=0 && y<m) return 1;
    return 0;
}
void dfs(int x, int y)
{
    int i,j,k,tx,ty;
    visit[x][y]=1;
    for (i=0; i<8; i++)
    {
        tx=x+dir[i][0];
        ty=y+dir[i][1];
        if (!visit[tx][ty] && in(tx,ty) && map[tx][ty]=='W')
        {
            dfs(tx,ty);
        }
    }
}
int main ()
{
    scanf("%d%d",&n,&m);
    int i,j,s=0;
    for (i=0; i<n; i++)
        for (j=0; j<m; j++)
            cin>>map[i][j];
    for (i=0; i<n; i++)
        for (j=0; j<m; j++)
            if (!visit[i][j] && map[i][j]=='W')
            {
                s++;
                dfs(i,j);
            }
    cout<<s<<endl;
    return 0;
}


E. A Bug's Life
POJ 2492 并查集

这道题还挺有意思的,主要是要建立一个数组来记录性别

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#define maxn 2010
using namespace std;
int n,m,f[maxn]={0},sex[maxn]={0};
int find(int x)
{
    if (x==f[x]) return x;
    return (f[x]=find(f[x]));
}
void uni(int x, int y)
{
    x=find(x);
    y=find(y);
    f[x]=f[y];
}
int main ()
{
    int t,i,j,p=1;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d",&n,&m);
        for (i=1; i<=n; i++)
        {
            f[i]=i;
            sex[i]=0;
        }
        int flag=1;
        while(m--)
        {
            scanf("%d%d",&i,&j);
            int a,b;
            if (flag)
            {
                a=find(i);
                b=find(j);
                if (a==b) flag=0;
                else
                {
                    if (!sex[i]) sex[i]=j;
                    else uni(sex[i],j);
                    if (!sex[j]) sex[j]=i;
                    else uni(sex[j],i);
                }
            }
        }
        if (flag) printf("Scenario #%d:\nNo suspicious bugs found!\n",p++);
        else printf("Scenario #%d:\nSuspicious bugs found!\n",p++);
        cout<<endl;
    }
    return 0;
}

F 最短路

hdu 2544 最短路

裸题

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<queue>
#define MAXN 105
#define INF 1000000
using namespace std;
int map[MAXN][MAXN];
int n,m;
void init()
{
    int i,j,k;
    for (i=1; i<=n; i++)
    {
        for (j=1; j<=n; j++)
            map[i][j]=INF;
        map[i][i]=0;
    }
    while (m--)
    {
        int a,b,c;
        scanf("%d%d%d",&a,&b,&c);
        if (map[a][b]>c)
        {
            map[a][b]=c;
            map[b][a]=c;
        }
    }
}
void dijkstra(int s, int e)
{
    int i,j,k;
    int dist[MAXN];
    int visited[MAXN];
    memset(visited,0,sizeof(visited));
    visited[s]=1;
    for (i=1; i<=n; i++)
        dist[i]=map[s][i];
    dist[s]=0;
    for (j=1; j<=n-1; j++)
    {
        int temp=INF;
        for (i=1; i<=n; i++)
            if (!visited[i] && dist[i]<temp)
            {
                temp=dist[i];
                k=i;
            }
        visited[k]=1;
        for (i=1; i<=n; i++)
            if (!visited[i] && dist[k]+map[k][i]<dist[i])
                dist[i]=dist[k]+map[k][i];
    }
    printf("%d\n",dist[e]);
}
void spfa(int s, int e)
{
    queue<int> q;
    int i,j,k;
    int dist[MAXN];
    int visited[MAXN];
    for (i=1; i<=n; i++)
        dist[i]=INF;
    dist[s]=0;
    memset(visited,0,sizeof(visited));
    visited[s]=1;
    q.push(s);
    while (!q.empty())
    {
        int x=q.front();
        q.pop();
        visited[x]=0;
        for (i=1; i<=n; i++)
        {
            if (dist[i]>dist[x]+map[x][i])
            {
                dist[i]=dist[x]+map[x][i];
                if (!visited[i])
                {
                    q.push(i);
                    visited[i]=1;
                }
            }
        }
    }
    printf("%d\n",dist[e]);
}
int main ()
{
    while (cin>>n>>m)
    {
        if (n==0 && m==0)
            break;
        init();
        spfa(1,n);
        //dijkstra(1,n);

    }
    return 0;
}

G Crossing Rivers
HDU 3232 数学

这就是一个简单的数学题。每次走到河流岸边时,(河流长度为L),那么分配到每个点的概率为1/(L+1)(因为是从0到L)。而每个点可以向左和向右动,仔细观察发现向左和向右的路径之和为恒定的值(2L)。

然后就很简单了。。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int main ()
{
    int n,d,i,j,pk=1,p,l,v;
    while(scanf("%d%d",&n,&d)!=EOF)
    {
        if (n==0 && d==0) break;
        double t=0;
        int s=d;
        while(n>0)
        {
            scanf("%d%d%d",&p,&l,&v);
            s-=l;
            t+=1.0*(l*l)/((l)*(v));
            t+=l*1.0/v;
            n--;
        }
        t+=s;
        printf("Case %d: %.3f\n\n",pk++,t);
    }
    return 0;
}

H Jungles Road

裸的最小生成树

POJ 1251 MST

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define INF 10000
using namespace std;
int map[27][27]={0};
int n,s;
void init()
{
    int i,j,t;
    char ch;
    for (i=0; i<n; i++)
    {
        for (j=0; j<n; j++)
            map[i][j]=INF;
        map[i][i]=0;
    }
    for (i=0; i<n-1; i++)
    {
        cin>>ch>>t;
        while(t>0)
        {
            cin>>ch>>j;
            map[i][ch-'A']=map[ch-'A'][i]=j;
            t--;
        }
    }
}
void prime()
{
    int i,j,k=0;
    s=0;
    int visit[30]={0};
    int low[30]={0};
    for (i=0; i<n; i++)
        low[i]=map[0][i];
    visit[0]=1;
    for (i=1; i<n; i++)
    {
        int t=INF;
        for (j=0; j<n; j++)
            if (!visit[j] && low[j]<t)
            {
                k=j;
                t=low[j];
            }
        s=s+low[k];
        visit[k]=1;
        for (j=0; j<n; j++)
            if (!visit[j] && low[j]>map[k][j])
                low[j]=map[k][j];
    }
    cout<<s<<endl;
}
int main ()
{
    while(scanf("%d",&n)!=EOF)
    {
        if (n==0) break;
        init();
//        for (int i=0; i<n; i++)
//        {
//            for (int j=0; j<n; j++)
//                cout<<map[i][j]<<" ";
//            cout<<endl;
//        }
        prime();
    }
    return 0;
}

I Knight Moves
HDU 1372 BFS

这道也是很基础的BFS。做过挺多次了 不贴代码了

告别手动复制粘贴!用R语言脚本批量抓取TCMSP中药靶点基因(附完整代码) 本文介绍如何使用R语言脚本自动化抓取TCMSP数据库中的中药靶点基因数据,告别手动复制粘贴的低效操作。通过详细的代码示例和参数设置,帮助研究人员快速获取并过滤符合药代动力学标准的中药成分及其靶点基因,大幅提升研究效率。特别适合生物信息学和中药现代化研究领域的从业者。 阅读详情

相关推荐

Vivado新手必看:5分钟搞定FPGA程序固化到Flash(附MCS文件生成全流程)

本文为FPGA新手详细解析了如何将程序固化到Flash存储器的完整流程。核心在于理解SRAM工艺FPGA断电易失的特性,并利用Vivado工具将比特流文件转换为Flash可识别的MCS文件。文章重点拆解了生成MCS文件的关键配置步骤、硬件连接要点,以及通过JTAG烧写Flash的实战操作,并提供了常见启动失败问题的排查清单,帮助开发者实现设计从调试到产品部署的关键跨越。

weixin_29230901的博客 355

2014 Multi-University Training Contest 1

2014 Multi-University Training Contest 1 官方解题报告:http://blog.sina.com.cn/s/blog_6bddecdc0102uy9g.html A. HDU 4861 Couple doubi http://blog.youkuaiyun.com/sio__five/article/details/38050627

SIOFive的专栏 2204

差分信号_差分信号的原理及其在PCB的设计

差分线是 PCB 设计中非常重要的一部分信号线,信号处理要求也是相当严谨,今天为大家介绍下差分信号的原理以及其在 PCB 设计中的处理方法。 什么是差分信号 差分传输是一种信号传输的技术,区别于传统的一根信号线一根地线的做法,差分传输在这两根线上都传输信号,这两个信号的振幅相等,相位相差 180 度,极性相反。在这两根线上传输的信号就是差分...

weixin_31849185的博客 1812

POJ 1111 Image Perimeters (DFS)

Image Perimeters Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 6889   Accepted: 4104 Description Technicians in a pathology lab analyze digitized images of

SIOFive的专栏 1089

GD32 TIMER0 PWM输出死活没波形?别忘了这个关键配置(附完整代码)

本文详细解析了GD32 TIMER0 PWM输出无波形的常见问题,特别强调了高级定时器特有的主输出使能配置。通过完整的代码示例和调试技巧,帮助开发者快速解决PWM输出问题,适用于无刷电机控制等嵌入式应用场景。

weixin_30906185的博客 397

蓝桥杯算法:打印图形——六芒星

【输入格式】 输入一行包含一个整数 n。 【输出格式】 输出一个六芒星,表示满足题意的图形。 【样例输入】 3 4 【样例输出】 【评测用例规模与约定】 对于所有评测用例,1 ≤ n ≤ 20。 总结: 第一次做图形题,做了蛮久,图形题有很多的方式去完成,它考验的是你能不能找到更简单的那一种方式. 我初看到这个图形,第一种想法是把这个六芒星当做六个小三角形来做,然后以某种规则排列一下,就能做出来,但是尝试了一下感觉太麻烦了。 然后我的第二种想法是,这个图形是对称图形,怎么能写出一半吗? 这样另一半想办

KeepCodeing 3840

[POJ 1704] Georgia and Bob (尼姆博弈变形)

POJ 1704 Georgia and Bob  (尼姆博弈变形) 题目链接: http://poj.org/problem?id=1704 题目大意: Georgia和Bob两个人玩游戏,他们设计了如下的的棋盘,有N块格子,从1开始标号。棋盘上不同的格子上有一些棋子,其中每个格子只能有一个棋子。然后他们开始轮流移动棋子,每次选择其中的一个向左移动,每次最少移动一格,最多只能移到前一个的右

SIOFive的专栏 1461

DDS信号发生器设计避坑指南:从AD9834配置到巴特沃斯滤波实战

本文详细解析了基于AD9834芯片的DDS信号发生器设计中的关键技术要点与常见陷阱,涵盖时钟源选择、寄存器配置时序、巴特沃斯滤波器设计等核心内容。针对中高频段信号质量优化,提供了实用的解决方案和代码示例,帮助工程师规避设计误区,提升信号发生器的性能和稳定性。

2y3u4i5o6p的博客 782

node 节点 kubelet 无法启动

2、如果是 systemd ,docker 配置也需要添加 "exec-opts": ["native.cgroupdriver=systemd"]和 Docker 的 cgroup driver 必须一致。,而 Docker 配置的 cgroup driver 是。字段,看值是 cgroupfs 还是 systemd,配置的 cgroup driver 是。1、 查看 kubelet 配置文件(如。3、重装配置,重启服务,查看状态。Kubernetes 要求。

weixin_48096142的博客 297

PM1132-220V转5V电源芯片:SOT-23-3封装的高效电源解决方案

在现代电子设备小型化和高效化的趋势下,PM1132芯片凭借其的能力与特性,成为工业控制IoT设备及便携电器的理想电源管理方案。以下从核心技术设计挑战和应用实践展开分析。

M_D13Z476I000l的博客 806

YOLOv11改进策略【Neck】| arXiv 2025 分层多头注意力HMHA 子空间拆分提多样 + 通道重排降冗余,强化目标检测精度

HMHA(Hierarchical Multi-Head Attention,分层多头注意力)旨在解决传统多头注意力(MHA)在图像恢复任务中的核心缺陷——特征冗余。传统MHA将通道均匀拆分给各个头,导致不同头学习的子空间信息相似,进而出现多头关注同一区域、忽略退化区域修复的问题,限制了模型的特征表达能力。HMHA通过“分层子空间拆分+通道重排序”策略,让每个头学习差异化、互补的上下文特征,从根源上缓解冗余,提升图像恢复任务中对复杂退化场景的特征捕捉能力。

Limiiiing的博客 779

mysql 超长记录_mysql慢日志中查询时间超长

# Time: 130921 18:29:34# User@Host: weather[weather] @ [192.168.1.133]# Query_time: 1.083025 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 0SET timestamp=1379759374;commit;# Time: 130922 1:29:57...

weixin_35758982的博客 554

【C语言笔记初级篇】第一章:C语言快速入门及注意事项

(1)第一个C语言程序 A:利用vs2010写C语言程序 1:按以下步骤新建工程 2:添加源文件,“.c”文件 B:第一个C语言代码 1:以下是基本的C语言程序 2:由于没有设置连接器,所以打印结果没有显示,按照如下步骤链接控制台 (2)数据类型 A:基本数据类型及占用字节 B:一些概念的梳理 概念一:关于计算机的单位 位(bit):计算机通过电路的开关和闭合处理信息,电路通...

快乐江湖的博客 3737

yiic.php,php - yiic迁移错误,无法打开流 - 堆栈内存溢出

尝试使用Yii进行数据库迁移时,我是新来的一个问题。首先,我使用:: :: / yiic migration create tr创建一个新的迁移这给了我以下输出。Yii迁移工具v1.0(基于Yii v1.1.14)创建新的迁移'/var/www/html/Trackstar/protected/migrations/m130921_101251_tr.php'? (是|否)[否]:是已成功创建新...

weixin_42341237的博客 266

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

2024年中华人民共和国县以上行政区划代码

2024年中华人民共和国县以上行政区划代码

草率小猿的博客 2万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

oracle 数据棒还原,Oracle数据库通过数据泵(expdp/impdp)还原DMP文件

1.首先在D盘创建一个 dump 的文件夹,然后将 DMP 文件放到 dump 文件夹里:2.打开PL/SQL,在SQL窗口输入(或者链接SqlPlus,输入) ,创建泵目录:create directory dump_dir as 'd:\dump';3.然后输入(SQL窗口输入,或者SqlPlus输入):create tablespace BDCDJ13loggingdatafile 'D:...

weixin_33602696的博客 313

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

全国省市区及其编码React、Vue、小程序通用

全国省市区及其编码 const options = [ { value: 130000, label: '河北省', children: [ { value: 130200, label: '唐山市', children: [ { value: 130202, label: '路南区' }, { value: 130203, label: '路北区' }, {

刻痕 4140

Sonar + IOS 安装失败。

今天尝试在IOS上 用sonar, 结果又是悲剧了。   1. 下载SonarQube 2. brew installsonar-runner 3. brew installxctool 4. brew install https://gist.githubusercontent.com/TonyAnhTran/e1522b93853c5a456b74/raw/157549c7a77

passionboyxie的专栏 1905

java时间随机数_java生成随机数、四舍五入、当前时间的方法

(1)生成随机数:java中Math类中有个方法random()用于生成0.0-1.0之间的双精度小数。但有时我们需要生成更多范围内的随机数,怎么办呢?其实在java.util.*中有个Random类,其实例有很多方法可以运用:nextInt(a+1)用于返回0-a之间的整数,不包括a。其他还有nextDouble(),nextLong()等方法,如果参数为空则返回任意数。例如:doublea=M...

weixin_33253503的博客 715

[工具]行政区划编码表(原格式、HashMap格式)

工具文章,随时取用

AndyJuseKing的博客 1740

Java第一本书第七章上机题目_书本第七章丶Java教程网-IT开发者们的技术天堂

一、 /*@Author: 潘振宇@Date: 2020-12-08 12:58:52@LastEditTime: 2020-12-08 13:11:30@LastEditors: Please set LastEditors@Description: In User Settings Edit@FilePath: \undefinedc:\Users\潘振宇\Desktop\代码\书本作业第七章...

weixin_36053398的博客 201

nvram 驱动和应用

3、或者直接修改 /kernel/arch/arm64/configs/rockchip_linux_defconfig。2、修改/kernel/drivers/mtd/maps/makefile。3、修改/kernel/drivers/mtd/maps/kconfig。1、/kernel/drivers/mtd/maps添加文件。添加CONFIG_MTD_NVRAM=y。

Jayson 博客 1321

无聊,无题

[code="ruby"] LOCATION_CODE = %w{110000 110100 110101 110102 110103 110104 110105 110106 110107 110108 110109 110111 110112 110113 110114 110115 110116 110117 110200 110228 110229 120000 120100 12010...

徐祥军 345

2022年中华人民共和国县以上行政区划代码

2022年中华人民共和国县以上行政区划代码

草率小猿的博客 3143

使用xtrabackup备份MySQL数据库

前言 Xtrabackup提供了两种命令行工具: xtrabackup:专用于备份InnoDB和XtraDB引擎的数据; innobackupex:是一个perl脚本,在执行过程中会调用xtrabackup命令,这个命令即可以实现备份InnoDB,也可以备份Myisam引擎的对象。 xtrabackup是由percona提供的MySQL数据库备份工具,其备份速度快并且可靠;备份过程不会打断...

lvjianzhaoa的博客 765

idinfo.txt

110000,北京110101,东城区110102,西城区110105,朝阳区110106,丰台区110107,石景山区110108,海淀区110109,门头沟区110111,房山区110112,通州区110113,顺义区110114,昌平区110115,大兴区110116,怀柔区110117,平谷区110228,密云县110229,延庆县120000,天津120101,和平区12010...

dijuyue9784的博客 526
上一篇: 最长递增子序列O(NlogN)
下一篇: Stones (2013.09.15周赛)
SIO__Five
博客等级 码龄14年 29粉丝 225原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值