A.Ribbon Gymnastics

题目要求四个点作圆,且圆与圆之间不能相交的半径之和的最大值。我当时想法很简单,只要两圆相切,它们的半径之和一定最大,但是要保证不能相交的话就只能取两两个点间距离和最短的作为半径和最大的。到现在也不是非常清楚为什么可以A,我们带错节奏了。。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#define exp 1e-10
using namespace std;
inline void RD(int &ret)
{
char c;
do
{
c=getchar();
}
while(c<'0'||c>'9');
ret=c-'0';
while((c=getchar())>='0'&&c<='9')
{
ret=ret*10+(c-'0');
}
}
inline void OT(int a)
{
if(a>=10)
{
OT(a/10);
}
putchar(a%10+'0');
}
double x[4],y[4];
double getdis(int i ,int j)
{
return sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
}
int main()
{
int i;
double s1,s2,s3;
while(scanf("%lf%lf",&x[0],&y[0])!=EOF)
{
for(i=1; i<4; i++)
{
scanf("%lf%lf",&x[i],&y[i]);
}
s1=getdis(0,1)+getdis(2,3);
s2=getdis(1,2)+getdis(0,3);
s3=getdis(0,2)+getdis(1,3);
printf("%.6f\n",min(s1,min(s2,s3)));
}
return 0 ;
}

E.Magnet Darts

一道计算几何题,计算落在距离要求点一个单位正方形范围内的点都需要得到一个分数,求期望。由于读错题意,想太复杂了。。。

我们可以枚举矩形内的所有整点,判断整点是否在要求的多边形内或边缘,计算整点周围区域面积乘以分数,相加求和,再与平面总面积相除,求期望。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#define exp 1e-10
using namespace std;
inline void RD(int &ret)
{
char c;
do
{
c=getchar();
}
while(c<'0'||c>'9');
ret=c-'0';
while((c=getchar())>='0'&&c<='9')
{
ret=ret*10+(c-'0');
}
}
inline void OT(int a)
{
if(a>=10)
{
OT(a/10);
}
putchar(a%10+'0');
}
struct xl
{
double x,y;
}p[22];
int n;
int f2(double x)//判断是否为零
{
if(fabs(x)<exp)
{
return 0;
}
else
{
if(x<0)
{
return -1;
}
else
{
return 1;
}
}
}
double f1(xl p1,xl p2,xl p0)//判断边缘
{
return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);
}
double f3(xl p1,xl p2,xl p0)//判断内部
{
return (p1.x-p0.x)*(p2.x-p0.x)+(p2.y-p0.y)*(p1.y-p0.y);
}
bool f(xl z)
{
int i,j=0;
xl p1,p2;
for(i=0;i<n;++i)
{
p1=p[i];
p2=p[(i+1)%n];
if(f2(f1(p1,p2,z))==0&&f2(f3(p1,p2,z))<=0)
{
return true;
}
if(f2(f1(p2,z,p1))>0&&f2(p1.y-z.y)<=0&&f2(p2.y-z.y)>0)
{
j++;
}
if(f2(f1(p2,z,p1))<0&&f2(p1.y-z.y)>0&&f2(p2.y-z.y)<=0)
{
j--;
}
}
if(j!=0)
{
return true;
}
else
{
return false;
}
}
int main()
{
xl a,b,z;
int i,j;
double sum,ans,lx,ly,hx,hy,A,B;
while(scanf("%lf%lf%lf%lf",&a.x,&a.y,&b.x,&b.y)!=EOF)
{
RD(n);
scanf("%lf%lf",&A,&B);
for(i=0;i<n;++i)
{
scanf("%lf%lf",&p[i].x,&p[i].y);
}
sum=(a.x-b.x)*(a.y-b.y);
ans=0.0;
for(i=a.x;i<=b.x;++i)
{
for(j=a.y;j<=b.y;++j)
{
z.x=i;
z.y=j;
if(f(z)==true)//求区域面积分数
{
lx=max(i-0.5,a.x);
ly=max(j-0.5,a.y);
hx=min(i+0.5,b.x);
hy=min(j+0.5,b.y);
ans+=(hx-lx)*(hy-ly)*(A*i+B*j);
}
}
}
printf("%.3f\n",ans/sum);
}
return 0;
}

F.Final Exam Arrangement

一道水贪心,找到相应区间标记下就行了。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#define exp 1e-10
using namespace std;
inline void RD(int &ret)
{
char c;
do
{
c=getchar();
}
while(c<'0'||c>'9');
ret=c-'0';
while((c=getchar())>='0'&&c<='9')
{
ret=ret*10+(c-'0');
}
}
inline void OT(int a)
{
if(a>=10)
{
OT(a/10);
}
putchar(a%10+'0');
}
struct xl
{
int x,y,id;
} s[100001];
bool cmp(xl x,xl y)//结构体排序
{
if(x.x==y.x)
{
return x.y<y.y;
}
return x.x<y.x;
}
int main()
{
int i,n,j,r;
bool v[100001];
while(scanf("%d",&n)!=EOF)
{
for(i=0; i<n; ++i)
{
RD(s[i].x);
RD(s[i].y);
s[i].id=i+1;
}
sort(s,s+n,cmp);
j=0;
r=-1;
for(i=0; i<n; ++i)
{
v[i]=false;//标记
if(s[i].x>=r)
{
r=s[i].y;
j++;
v[i]=true;
}
r=min(r,s[i].y);
}
OT(j);
for(i=0; i<n; ++i)
{
if(v[i])
{
printf("\n");
OT(s[i].id);
}
else
{
printf(" ");
OT(s[i].id);
}
}
printf("\n\n");
}
return 0;
}

J.Painting Storages

一道排列组合的题目,需要找到状态分解:

当dp[i-1]已经满足状况了:dp[i]=dp[i-1]*2;

当dp[i-1]还没满足状况,则[i-m+1,i]区间则用来满足条件,则i-m必为蓝色,所以dp[i-m-1]不能包括在内。所以需要dp[i-1]+pow(2,i-m-1)-dp[i-m-1];

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#define N 1000000007
using namespace std;
inline void RD(int &ret)
{
char c;
do
{
c=getchar();
}
while(c<'0'||c>'9');
ret=c-'0';
while((c=getchar())>='0'&&c<='9')
{
ret=ret*10+(c-'0');
}
}
inline void OT(int a)
{
if(a>=10)
{
OT(a/10);
}
putchar(a%10+'0');
}
long long dp[100001],a[100001];
void f()
{
a[0]=1;
int i;
for(i=1; i<100001; ++i)//构造2次幂表
{
a[i]=a[i-1]*2%N;
}
}
int main()
{
f();
int i,n,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
memset(dp,0,sizeof(dp));
dp[m]=1;
for(i=m+1; i<=n; ++i)
{
dp[i]=((dp[i-1]*2%N+a[i-m-1])%N-dp[i-m-1]+N)%N;//状态递推过程
}
cout<<dp[n]<<endl;
}
return 0 ;
}

130804组队练习赛ZOJ校赛的更多相关文章

  1. ZOJ 3955 Saddle Point 校赛 一道计数题

    ZOJ3955 题意是这样的 给定一个n*m的整数矩阵 n和m均小于1000 对这个矩阵删去任意行和列后剩余一个矩阵为M{x1,x2,,,,xm;y1,y2,,,,,yn}表示删除任意的M行N列 对于 ...

  2. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  3. SCNU省选校赛第二场B题题解

    今晚的校赛又告一段落啦,终于"开斋"了! AC了两题,还算是满意的,英语还是硬伤. 来看题目吧! B. Array time limit per test 2 seconds me ...

  4. 2014上半年acm总结(1)(入门+校赛)

    大一下学期才开始了acm,不得不说有一点迟,但是acm确实使我的生活充实了很多,,不至于像以前一样经常没事干=  = 上学期的颓废使我的c语言学的渣的一笔..靠考前突击才基本掌握了语法 寒假突然醒悟, ...

  5. 2017CUIT校赛-线上赛

    2017Pwnhub杯-CUIT校赛 这是CUIT第十三届校赛啦,也是我参加的第一次校赛. 在被虐到崩溃的过程中也学到了一些东西. 这次比赛是从5.27早上十点打到5.28晚上十点,共36小时,中间睡 ...

  6. HZNU第十二届校赛赛后补题

    愉快的校赛翻皮水! 题解 A 温暖的签到,注意用gets #include <map> #include <set> #include <ctime> #inclu ...

  7. 校赛F

    问题描述 例如对于数列[1 2 3 4 5 6],排序后变为[6 1 5 2 4 3].换句话说,对于一个有序递增的序列a1, a2, a3, ……, an,排序后为an, a1, an-1, a2, ...

  8. PKU2018校赛 H题 Safe Upper Bound

    http://poj.openjudge.cn/practice/C18H 题目 算平均数用到公式\[\bar{x}=\frac{x_1+x_2+x_3+\cdots+x_n}{n}\] 但如果用in ...

  9. 【魔改】hdu6325 多校赛3G xy排序凸包+llvector模板

    凸包算法前的预处理,可以极角排序,也可以按X,Y轴排序, 极角排序需要找到角落里的一个点,Xy轴排序要跑两遍凸包 而本题的要求只要一个上半凸包,并且有X轴从小到大以及字典序限制,完全符合xy排序,直接 ...

随机推荐

  1. 纯手工 CheckboxTree 实现

    数据结构及页面显示格式: INSERT INTO AS_CombRules VALUES('', '', '', '', '', '', '') 实现 CheckboxTree 功能: html代码: ...

  2. 转:nginx入门指南,快速搭建静态文件服务器和代理服务器

    本文介绍 Nginx 入门基础知识,让你迅速搭建 Nginx 服务器.主要内容包括 Nginx 安装和简单使用.Nginx的简单原理.Nginx 配置文件的结构.如何使用 Nginx 来提供静态文件服 ...

  3. 学习正则表达式及c#应用

    1.0正则表达式语法   正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”).模式描述在搜索文本时要匹配的一个或多个字符串. 正则表达式示例   表达式 ...

  4. 【bzoj3196-二逼平衡树】线段树套平衡树

    http://acm.hust.edu.cn/vjudge/problem/42297 [题目描述] 写一种数据结构,来维护一个有序数列,其中需要提供以下操作: 1.查询k在区间内的排名 2.查询区间 ...

  5. COGS727 [网络流24题] 太空飞行计划

    [问题描述] W 教授正在为国家航天中心计划一系列的太空飞行.每次太空飞行可进行一系列商业性实验而获取利润.现已确定了一个可供选择的实验集合E={E1,E2,…,Em},和进行这些实验需要使用的全部仪 ...

  6. hdu 2817 A sequence of numbers(快速幂取余)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2817 题目大意:给出三个数,来判断是等差还是等比数列,再输入一个n,来计算第n个数的值. #inclu ...

  7. TCP/IP Http的区别

    TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据. 关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:“我们在传输数据时,可以 ...

  8. mysql 四 表操作

    表介绍 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段 id,name,qq,age称为字段,其余的,一行内容称为一条记录 本节重点: 1 创建 ...

  9. import module与from module import * 两种模块导入有何区别

    #原创,转载请留言联系 区别1 import module 引用共享变量时,要使用module.变量名. 而from module import * 直接使用变量名即可 区别2(有点绕) import ...

  10. Selenium2+python自动化68-html报告乱码问题【转载】

    前言 python2用HTMLTestRunner生成测试报告时,有中文输出情况会出现乱码,这个主要是编码格式不统一,改下编码格式就行. 下载地址:http://tungwaiyip.info/sof ...