HDU-ACM“菜鸟先飞”冬训系列赛——第10场
Problem A
题意
给出l(房子宽度),d(pole距离房子的垂直距离),s(绳子长度),求可覆盖的面积

分析
一共四种情况
\]
\]
\]
\]
说一下第四种,第四种要减去一个重叠部分,重叠部分面积为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场的更多相关文章
- HDU-ACM“菜鸟先飞”冬训系列赛——第7场 H
Problem H Problem Description 小边为了寻找梦寐以求的骨头误入一个迷宫,它灵敏的嗅觉告诉它,在迷宫中的某一处有一块完美的骨头.由于迷宫会在一段时间后关闭,所以小边必须在一定 ...
- HDU-ACM“菜鸟先飞”冬训系列赛——第9场
Problem A 题意 一对兔子每月生一对兔子,兔子在\(m\)月后成熟,问\(d\)月后有多少兔子 分析 可以发现,第i月的兔子数量取决于第i-1月与i-m月,故 \(a[i]=a[i-1]+a[ ...
- HDU-ACM“菜鸟先飞”冬训系列赛——第8场(1004)
Problem D Time Limit : 3000/3000ms (Java/Other) Memory Limit : 65535/102400K (Java/Other) Problem De ...
- 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 ...
- Entity Framework菜鸟初飞
Entity Framework菜鸟初飞 http://blog.csdn.net/zezhi821/article/details/7235134
- hdu 5418 (Floyd+哈密顿) 飞向世界
http://acm.hdu.edu.cn/showproblem.php?pid=5418 题目大意是城市的编号是1到n,给出m条路线,表示从a城市飞到b城市飞机要耗多少油,最后问飞机从1出发飞过所 ...
- hdu acm 1166 敌兵布阵 (线段树)
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- hdu acm 2082 找单词
找单词 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- 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 ...
随机推荐
- codechef FUN WITH TREES
题目大意: 给一棵树root=1的树: 给一些操作:u v 的路径所有节点的node + val: 最后m个询问:u 节点(包括u) sum%mod 是多少. LCA + RMQ: 我们每次mark ...
- [Poj3744]Scout YYF I (概率dp + 矩阵乘法)
Scout YYF I Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9552 Accepted: 2793 Descr ...
- service mesh架构
service mesh 系列文章 https://my.oschina.net/iamlipeng/blog/1631575 http://developer.51cto.com/art/2018 ...
- Java根据百度API获得经纬度,然后根据经纬度在获得城市信息
原文:http://www.open-open.com/code/view/1421032487812 import java.io.BufferedReader; import java.io.IO ...
- WebLogic中"域"的概念
WebLogic 版权声明:本文为博主原创文章,未经博主允许不得转载. WebLogic Server中的域是逻辑上相关的一组 WebLogic Server 资源,可以作为一个单元进行管理.一个域中 ...
- DNS的工作原理及解析
DNS协议是互联网核心协议之一.不管是上网浏览,还是编程开发,都需要了解一点它的知识. 一.什么是DNS? DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次 ...
- Linux 思维导图
1.Linux学习路径: 2.Linux桌面介绍: 3.FHS(文件系统目录标准): 以上三张图,都是在学习实验楼上的课程--Linux 基础入门,教程里面看到的. 4.Linux需要特别注意的目录: ...
- 《从0到1》读书笔记第一章"未来的挑战"第1记:把握潮流风向
这几天刚到手当前炙手可热的来自PayPal创始人Peter Thiel的<Zero to One>.中文名<从0到1>,由高玉芳翻译.中信出版社出版.由于到货时刚好有事情在忙, ...
- Android系统改动时间格式为24小时制
1. frameworks/base/packages/SettingsProvider/res/values/defaults.xml 添加<stringname="time_12_ ...
- C#如何引用定义好的dll文件
1 添加引用,找到dll文件 2 引用类的名称空间,生成类的实例,调用类的方法,测试OK.