Problem A

题意

给出l(房子宽度),d(pole距离房子的垂直距离),s(绳子长度),求可覆盖的面积



分析

一共四种情况

\[1.s<=d
\]

\[2.s<=sqrt(d*d+l*l/2)
\]

\[3.s<=sqrt(d*d+l*l/2)+l/2
\]

\[4.s>sqrt(d*d+l*l/2)+l/2
\]

说一下第四种,第四种要减去一个重叠部分,重叠部分面积为2个(扇形-三角形),具体见代码

代码

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <string>
#include <map>
#include <queue>
using namespace std; #define ll long long
#define F(i,a,b) for(int i=a;i<=b;++i)
#define R(i,a,b) for(int i=a;i<b;++i)
#define mem(a,b) memset(a,b,sizeof(a))
#pragma comment(linker, "/STACK:102400000,102400000")
inline void read(int &x){x=0; char ch=getchar();while(ch<'0') ch=getchar();while(ch>='0'){x=x*10+ch-48; ch=getchar();}}
const double eps=1e-8;
const double pi=acos(-1.0);
int t;
double l,d,s;
void solve()
{
if(s-d<eps)//1
{
printf("%.2f\n",pi*s*s);return ;
}
double ret=sqrt(0.25*l*l+d*d),angle=acos(d/s);
if(s-ret<eps)//2
{ printf("%.2f\n",(pi-angle)*s*s+d*sqrt(s*s-d*d));
return ;
}
angle=asin(0.5*l/ret);
double ans=(pi-angle)*s*s+0.5*l*d;
s-=ret,angle+=pi*0.5;
ans+=angle*s*s;
if(s-0.5*l>eps)
{
double angle1=acos(0.5*l/s);
ans-=angle1*s*s-l*0.5*sqrt(s*s-l*l*0.25);
}
printf("%.2f\n",ans);
}
int main()
{
for(scanf("%d",&t);t--;)
{
scanf("%lf %lf %lf",&l,&d,&s);
solve();
}
return 0;
}

Problem B

题意

给出n个Merlin需要发短信的朋友,再给出m个Merlin不需要发短信的朋友,问Merlin需要发多少短信

分析

用map记录不需要发短信朋友,再扫一遍就OK了

Problem E

题意

帮助Max挑出可能符合条件的酒店

分析

看了blog,递归是个好东西,脑洞开了一点

代码

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <string>
#include <map>
#include <queue>
using namespace std; #define ll long long
#define F(i,a,b) for(int i=a;i<=b;++i)
#define R(i,a,b) for(int i=a;i<b;++i)
#define mem(a,b) memset(a,b,sizeof(a))
#pragma comment(linker, "/STACK:102400000,102400000")
inline void read(int &x){x=0; char ch=getchar();while(ch<'0') ch=getchar();while(ch>='0'){x=x*10+ch-48; ch=getchar();}} char a[55],b[55];
int n,lena,lenb,cnt;
bool check(int x,int y)
{
if((x==lena)&&(y==lenb)) return 1;
if((x==lena)||(y==lenb)) return 0;
if((a[x]=='?')||(a[x]==b[y])) return check(x+1,y+1);
if(a[x]=='*') for(int i=y;i<=lenb;++i) if(check(x+1,i)) return 1;
return 0;
}
int main()
{
while(scanf("%s",a)!=EOF)
{
//printf("a=%s\n",a);
lena=strlen(a);cnt=0;
scanf("%d",&n);
while(n--)
{
scanf("%s",b);
lenb=strlen(b);
if(check(0,0))
{
//printf("%s\n",b);
cnt++;
}
}
printf("%d\n",cnt);
}
return 0;
}

Problem F

题意

用给出的几个字符串组成最小的字符串

分析

string的比较学习了,需要\(a+b<b+a\),而不是\(a<b\)

资料

代码

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <string>
#include <map>
#include <queue>
using namespace std; #define ll long long
#define F(i,a,b) for(int i=a;i<=b;++i)
#define R(i,a,b) for(int i=a;i<b;++i)
#define mem(a,b) memset(a,b,sizeof(a))
#pragma comment(linker, "/STACK:102400000,102400000")
inline void read(int &x){x=0; char ch=getchar();while(ch<'0') ch=getchar();while(ch>='0'){x=x*10+ch-48; ch=getchar();}} int t,n;
string a[10],temp;
bool cmp(string a,string b)
{
return a+b<b+a;
}
int main()
{
for(scanf("%d",&t);t--;)
{
scanf("%d",&n);
F(i,1,n) cin>>a[i];
sort(a+1,a+1+n,cmp);
F(i,1,n) cout<<a[i];
puts("");
}
return 0;
}

Problem G

题意

找出出现了一次的数

分析

怎么都能做

sort,map都行

HDU-ACM“菜鸟先飞”冬训系列赛——第10场的更多相关文章

  1. HDU-ACM“菜鸟先飞”冬训系列赛——第7场 H

    Problem H Problem Description 小边为了寻找梦寐以求的骨头误入一个迷宫,它灵敏的嗅觉告诉它,在迷宫中的某一处有一块完美的骨头.由于迷宫会在一段时间后关闭,所以小边必须在一定 ...

  2. HDU-ACM“菜鸟先飞”冬训系列赛——第9场

    Problem A 题意 一对兔子每月生一对兔子,兔子在\(m\)月后成熟,问\(d\)月后有多少兔子 分析 可以发现,第i月的兔子数量取决于第i-1月与i-m月,故 \(a[i]=a[i-1]+a[ ...

  3. HDU-ACM“菜鸟先飞”冬训系列赛——第8场(1004)

    Problem D Time Limit : 3000/3000ms (Java/Other) Memory Limit : 65535/102400K (Java/Other) Problem De ...

  4. hdu acm 1028 数字拆分Ignatius and the Princess III

    Ignatius and the Princess III Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K ...

  5. Entity Framework菜鸟初飞

    Entity Framework菜鸟初飞 http://blog.csdn.net/zezhi821/article/details/7235134

  6. hdu 5418 (Floyd+哈密顿) 飞向世界

    http://acm.hdu.edu.cn/showproblem.php?pid=5418 题目大意是城市的编号是1到n,给出m条路线,表示从a城市飞到b城市飞机要耗多少油,最后问飞机从1出发飞过所 ...

  7. hdu acm 1166 敌兵布阵 (线段树)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  8. hdu acm 2082 找单词

    找单词 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  9. HDU ACM 1325 / POJ 1308 Is It A Tree?

    Is It A Tree? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

随机推荐

  1. nginx 安装过程中的not found

    linux 发行版本:centos zlib not found openssl not found yum install zlib-devel yum install openssl-devel

  2. IText 生成pdf,处理table cell列跨页缺失的问题

    /**     * 创建(table)PDF,处理cell 跨页处理     * @param savePath(需要保存的pdf路径)     * @param pmbs (数据库查询的数据)    ...

  3. C#高级编程第9版 第二章 核心C# 读后笔记

    System命名空间包含了最常用的.NET类型.对应前面第一章的.NET基类.可以这样理解:.NET类提供了大部分的功能,而C#语言本身是提供了规则. pseudo-code,哈哈,秀逗code.伪代 ...

  4. A. Link/Cut Tree--cf614A ()

    这个题卡精度了  刚开始是2的57次方都已经有误差了  不知道怎么弄 后来加个求余就好了 #include<stdio.h> #include<math.h> #include ...

  5. java开发面试大全刷题整理

    题目源自Java团长公众号,内容个人整理,来源于各大博客,未经允许,不准摘抄,仅供分享,不做商业使用. 本分享多数为浅层知识体系,更为底层的还请自行多写写代码,若有不对之处,望广大的人才指点,不喜勿喷 ...

  6. java内存区域和对象的产生

    一直被java中内存组成弄的头晕眼花,这里总结下都有哪些,先上图片 程序计数器 小块内存,线程执行字节码的信号指示器,以此获取下一条需要执行的字节码指令,分支,循环,跳转,异常处理,线程恢复都要依赖他 ...

  7. iOS远程推送原理

    远程推送 就是从远程server推送消息给client的通知.当然须要联网. 远程推送服务APNs (Apple Push NotificationServices) 为什么须要远程推送通知? 传统获 ...

  8. Android双向seekbar(带刻度)

    ※效果 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/disso ...

  9. hibernate4中HHH000273的错误

    今天配置hibernate4.发现报 17:55:06,815 INFO AbstractPoolBackedDataSource:522 - Initializing c3p0 pool... co ...

  10. jQuery经典面试题及答案精选

    jQuery是一款非常流行的Javascript框架,如果你想要从事Web前端开发这个岗位,那么jQuery是你必须掌握而且能够熟练应用的一门技术.本文整理了一些关于jQuery的经典面试题及答案,分 ...