qbxt十一系列三

【题目分析】

这完全是个数学题啊,有些崩溃,上午考试写了两个小时,20分,于是乎 下午改啊改啊 改到10分....如果第二个圆的圆心在第一个圆.....呃 说不清楚 像下面这个图这样,两圆重叠部分中C2对应的扇形对应的圆心角(有些绕)是超过180的,所以我们先算这个角的一半再乘以2防止出现负数,然后求三角形面积的时候不要用海伦公式,如果你想用考虑考虑后果(还是会出现负数hh),好了这样我的AC道路就走了一半了,可以60(真相还在后面)。我是多么迫切的想要AC,于是乎开始找错误找错误....发现在判断两圆包含关系的时候没有sqrt!!!好,我们加上,继续评测,然而还是没有AC!!!好吧,在两个圆包含的情况中(就是第二个if那里)圆心间的距离是小于r1+r2 而不是小于等于!在我以为能A掉的时候,意外又出现了,查错查了半个小时发现少了个括号,累瘫

总结:细节!细节!细节!

#include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
const double pi=3.1415926535898;
int t;
double x1,y,r1,x2,y2,r2,s,a,b,c,k,m,w,p;
int main()
{
    freopen("standing.in","r",stdin);
    freopen("standing.out","w",stdout);
    scanf("%d",&t);
    while(t--){
        scanf("%lf%lf%lf%lf%lf%lf",&x1,&y,&r1,&x2,&y2,&r2);
        if(sqrt((x2-x1)*(x2-x1)+(y2-y)*(y2-y))>=(r1+r2))
            s=pi*r1*r1+pi*r2*r2;
        else if(sqrt((x2-x1)*(x2-x1)+(y2-y)*(y2-y))<abs(r1-r2))//here
            s=max(pi*r1*r1,pi*r2*r2);
        else
        {
            s=r1*r1*pi+pi*r2*r2;
            k=sqrt((x1-x2)*(x1-x2)+(y-y2)*(y-y2));

            w=(r1*r1+k*k-r2*r2)/(2*r1*k);
            p=2*acos(w);//圆心角的度数
            s-=((p*r1*r1)/2-sin(p)*r1*r1/2);//总面积-(扇形-三角形)

            w=(r2*r2+k*k-r1*r1)/(2*r2*k);
            p=2*acos(w);
            s-=((p*r2*r2)/2-sin(p)*r2*r2/2);
        }
        printf("%.3lf\n",s);
    }
    fclose(stdin);fclose(stdout);
    return 0;
}

3

【题目分析】

水题

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
#define maxn 100010
int n,k,cnt;
struct node{
    int f,t,p;
}num[maxn];
int main()
{
    freopen("resist.in","r",stdin);
    freopen("resist.out","w",stdout);
    scanf("%d%d",&n,&k);
    num[1].f=n;num[1].t=2;
    num[n].f=n-1;num[n].t=1;
    for(int i=2;i<n;i++)
        num[i].f=i-1,num[i].t=i+1;
    int x=1;
    while(x!=num[x].f&&x!=num[x].t)
    {
        cnt++;
        if(cnt==k)
        {
            num[num[x].f].t=num[x].t;
            num[num[x].t].f=num[x].f;
            cnt=0;
        }
        x=num[x].t;
    }
    printf("%d",x);
    fclose(stdin);fclose(stdout);
    return 0;
}

#include<iostream>
#include<cstdio>
#include<cmath>
#include<string>
#include<cstring>
#include<iostream>
#define MAXN 1005
using namespace std;
int n,m,maxn,minn;
int t1[MAXN],t2[MAXN];
bool fill1[MAXN],fill2[MAXN];
int main ()
{
    freopen ("neighbor.in","r",stdin);
    freopen ("neighbor.out","w",stdout);
    scanf ("%d%d",&n,&m);
    for (int i=1;i<=n;i++)
            scanf ("%d",&t1[i]);
    for (int i=1;i<=m;i++)
            scanf ("%d",&t2[i]);
    for (int i=1;i<=n;i++)
        for (int j=1;j<=m;j++)
        {
            maxn+=min(t1[i],t2[j]);
            if (t1[i]==t2[j]&&!fill1[i]&&!fill2[j])
            {
                minn+=t1[i];
                fill1[i]=true;
                fill2[j]=true;
            }
        }
    for (int i=1;i<=n;i++)
        if (!fill1[i])
            minn+=t1[i];
    for (int i=1;i<=m;i++)
        if (!fill2[i])
            minn+=t2[i];
    printf ("%d %d",minn,maxn);
    return 0;
}
时间: 2024-08-24 04:59:22

qbxt十一系列三的相关文章

qbxt十一系列四

关于考试:题目很难,T1和T3都失误,爆零orz 更正:第三组:不存在相同的字符|str|=26,26<=n<=100 [题目分析] 第一反应,组合数学:第二反应,有端倪:jn给了一道题GT考试 很多大神都做过,kmp+矩阵乘法 #include<cstdio> #include<cstring> #include<algorithm> #define ll long long using namespace std; const int N=1e5+7;

qbxt十一系列一

希望[题目描述]网页浏览器者有后退与前进按钮,一种实现这两个功能的方式是用两个栈,“前进栈”.“后退栈”.这里你需要实现以下几个功能:BACK: 如果“后退栈”为空则忽略此命令. 否则将当前两面压入“前进栈”,从“后退栈”中取出栈顶页面,并设置为当前页面.FORWARD: 如果“前进栈”为空则忽略此命令.否则将当前两面压入“后退栈”,从“前进栈”中取出栈顶页面,并设置为当前页面.VISIT: 将当前页面压入“后退栈”. 并将当前页面置为指定页面, 并将“前进栈”置空.QUIT: 退出.假设此浏览

qbxt十一系列二

PA[题目描述]汉诺塔升级了:现在我们有N个圆盘和N个柱子,每个圆盘大小都不一样,大的圆盘不能放在小的圆盘上面,N个柱子从左到右排成一排.每次你可以将一个柱子上的最上面的圆盘移动到右边或者左边的柱子上 (如果移动之后是合法的话) . 现在告诉你初始时的状态, 你希望用最少的步数将第i小的盘子移动到第i根柱子上,问最小步数.[输入格式]第一行一个正整数T,代表询问的组数.接下来T组数据,每组数据第一行一个整数N.接下来一行每行N个正整数,代表每个柱子上圆盘的大小.[输出格式]输出共N行,代表每次的

Android高效率编码-第三方SDK详解系列(三)——JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送

Android高效率编码-第三方SDK详解系列(三)--JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送 很久没有更新第三方SDK这个系列了,所以更新一下这几天工作中使用到的推送,写这个系列真的很要命,你要去把他们的API文档大致的翻阅一遍,而且各种功能都实现一遍,解决各种bug各种坑,不得不说,极光推送真坑,大家使用还是要慎重,我们看一下极光推送的官网 https://www.jpush.cn/common/ 推送比较使用,很多软件有需要,所以在这个点拿出来多讲讲,我们本节

Exchange 2013SP1和O365混合部署系列三

继续,基本上大多数都是截图,在某些地方,会有一些提示. 下面就是和本地域进行同步,主要用到的是Dirsync工具. 全都是下一步. 继续下一步. 继续下一步. 这里输入的就是O365的管理员账号.也就是当时注册的那个. 本地管理员账号. 继续下一步. 开始自动配置. 开始同步本地的账户.到WAAD. 图上我们可以看到同步状态. 继续下面的操作,激活已同步的用户. 根据需要选择. 有印象没?安装同步工具的时候选的那个密码同步的选项. 先到这吧,下篇开始在本地Exchange 2013 SP1上配置

Spring Data 系列(三) Spring+JPA(spring-data-commons)

本章是Spring Data系列的第三篇.系列文章,重点不是讲解JPA语法,所以跑开了JPA的很多语法等,重点放在环境搭建,通过对比方式,快速体会Spring 对JPA的强大功能. 准备代码过程中,保持了每个例子的独立性,和简单性,准备的源码包,下载即可使用.如果,对JPA语法想深入研究的话,直接下载在此基础上进行测试. 前言 Spring Data 系列(一) 入门:简单介绍了原生态的SQL使用,以及JdbcTemplate的使用,在这里写SQL的活还需要自己准备. Spring Data 系

Cocos2d-x创建android项目(cocos2d-x系列三)

不例外.最显眼的就是,在文件的根目录中增加了一个名为setup.py的配置文件.运行它可以配置系统的一些环境变量. 2.创建项目 新的版本我们来动手创建一个新项目吧.找到tools文件夹....额 打包的那个名为create-project.py的文件似乎木有了!原来,在新版本中,创建新项目已经可以通过命令行来创建了,相对于先前版本的图形界面,命令行更简洁.我们要在setup.py中设置参数.以mac平台为例,我们进入到对应目录,运行脚本setup.py: Setting up cocos2d-

短信开发系列(三):短信接收引擎

短信开发系列目录: 短信开发系列(一):GSM手机短信开发初探短信开发系列(二):GSM手机短信开发之短信解码短信开发系列(三):短信接收引擎 之前写了短信接收处理的一些内容,今年事情实在太多了,就停顿了这么一大段的时间.接下来会继续完成相关的内容. 今天先写用之前写的短信类库的一个应用,短信接收引擎.可以用在处理一些短信的提醒:作为前面两篇文章的一个实战运用,可以作为一个多线程.委托和事件.串口等方面知识的一个综合运用. 先来分析一下整个程序的流程: - 启动线程 - 定时运行线程主函数 -

ping的实现(原始套接字系列三)

使用Raw Socket实现Ping 仅仅采用ICMP.DLL并不能完全实现ICMP灵活多变的各类报文,只有使用Raw Socket才是ICMP的终极解决之道. 使用Raw Socket发送ICMP报文前,我们要完全依靠自己的代码组装报文: //功能:初始化ICMP的报头, 给data部分填充数据, 计算校验和void init_ping_packet(ICMPHeader *icmp_hdr, int packet_size, int seq_no){ //设置ICMP报头字段 icmp_hd