NOIP模拟4
期望得分:20+100+100=220
实际得分:20+100+100=220

特判相离、内含
对于两圆相交的情况,一直在考虑求交点
实际上相交的面积可以用两个扇形减去两个三角形
正弦定理、余弦定理来搞搞

#include<cmath>
#include<cstdio>
#include<algorithm>
using namespace std;
const double pi=acos(-1.0);
const double eps=1e-;
double Two_point_dis(double x1,double yy1,double x2,double yy2)
{
return sqrt((x1-x2)*(x1-x2)+(yy1-yy2)*(yy1-yy2));
}
double circle_S(double r)
{
return pi*r*r;
}
int main()
{
freopen("standing.in","r",stdin);
freopen("standing.ans","w",stdout);
int T;
scanf("%d",&T);
double x1,yy1,r1,x2,yy2,r2;
while(T--)
{
scanf("%lf%lf%lf%lf%lf%lf",&x1,&yy1,&r1,&x2,&yy2,&r2);
double dis=Two_point_dis(x1,yy1,x2,yy2);
if(dis>=r1+r2)
{
printf("%.3lf\n",circle_S(r1)+circle_S(r2));
continue;
}
if(dis<=fabs(r1-r2))
{
printf("%.3lf\n",max(circle_S(r1),circle_S(r2)));
continue;
}
else
{
double ans=circle_S(r1)+circle_S(r2);
double j1=acos((r1*r1+dis*dis-r2*r2)/(*r1*dis));
double l1=j1**r1;
double j2=acos((r2*r2+dis*dis-r1*r1)/(*r2*dis));
double l2=j2**r2;
double s1=l1*r1*0.5;
double s2=l2*r2*0.5;
double s=r1*dis*sin(j1);
ans-=(s1+s2-s);
printf("%.3lf\n",ans);
}
}
}

约瑟夫环问题
公式推导:http://blog.csdn.net/u011500062/article/details/72855826?locationNum=6&fps=1
#include<cstdio>
using namespace std;
int main()
{
freopen("resist.in","r",stdin);
freopen("resist.out","w",stdout);
int n,k,ans=;
scanf("%d%d",&n,&k);
for(int i=;i<=n;i++)
ans=(ans+k)%i;
printf("%d",ans+);
}

贪心
最大值:
什么视图要求为x,就把对应的位置全弄成x
所以最后每个位置的高度为min(left[j],front[i])
最小值:
先看主视图
如果主视图i=左视图j,且之前第j列没有高度能满足左视图j,那么(i,j)的高度就是主视图i
否则,任选一个左视图j>=主视图i的j,(i,j)的高度为主视图i
再看左视图
j已经被满足,忽略
否则,任选一个主视图i<=左视图j的i,(i,j)的高度为左视图j
#include<cstdio>
#include<iostream>
#define N 1011
using namespace std;
int n,m;
int front[N],leftt[N];
int maxn[N][N],minn[N][N];
int sumd,sumx;
bool have[N];
void read(int &x)
{
x=; char c=getchar();
while(!isdigit(c)) c=getchar();
while(isdigit(c)) { x=x*+c-''; c=getchar();}
}
int main()
{
freopen("neighbor.in","r",stdin);
freopen("neighbor.out","w",stdout);
read(n); read(m);
for(int i=;i<=n;i++) read(front[i]);
for(int i=m;i;i--) read(leftt[i]);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
maxn[i][j]=front[i];
for(int j=;j<=m;j++)
for(int i=;i<=n;i++)
maxn[i][j]=min(maxn[i][j],leftt[j]);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
sumd+=maxn[i][j]; bool ok;
for(int i=;i<=n;i++)
{
ok=false;
for(int j=;j<=m;j++)
{
if(have[j]) continue;
if(leftt[j]==front[i]) { minn[i][j]=front[i]; have[j]=ok=true; break; }
}
if(ok) continue;
for(int j=;j<=m;j++)
if(leftt[j]>=front[i]) { minn[i][j]=front[i]; break; }
}
for(int j=;j<=m;j++)
{
ok=false;
for(int i=;i<=n;i++)
if(minn[i][j]==leftt[j]) { ok=true; break; }
if(ok) continue;
for(int i=;i<=n;i++)
if(minn[i-][j]==leftt[j]) { minn[i-][j]=; minn[i][j]=leftt[j]; ok=true; break; }
if(ok) continue;
for(int i=;i<=n;i++)
if(leftt[j]<=front[i]) { minn[i][j]=leftt[j]; break; }
}
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
sumx+=minn[i][j];
printf("%d %d",sumx,sumd);
}
NOIP模拟4的更多相关文章
- NOIP模拟赛20161022
NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...
- contesthunter暑假NOIP模拟赛第一场题解
contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...
- NOIP模拟赛 by hzwer
2015年10月04日NOIP模拟赛 by hzwer (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...
- 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程
数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...
- 队爷的讲学计划 CH Round #59 - OrzCC杯NOIP模拟赛day1
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的讲学计划 题解:刚开始理解题意理解了好半天,然后发 ...
- 队爷的Au Plan CH Round #59 - OrzCC杯NOIP模拟赛day1
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的Au%20Plan 题解:看了题之后觉得肯定是DP ...
- 队爷的新书 CH Round #59 - OrzCC杯NOIP模拟赛day1
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的新书 题解:看到这题就想到了 poetize 的封 ...
- CH Round #58 - OrzCC杯noip模拟赛day2
A:颜色问题 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2358%20-%20OrzCC杯noip模拟赛day2/颜色问题 题解:算一下每个仆人到它的目的地 ...
- CH Round #52 - Thinking Bear #1 (NOIP模拟赛)
A.拆地毯 题目:http://www.contesthunter.org/contest/CH%20Round%20%2352%20-%20Thinking%20Bear%20%231%20(NOI ...
- CH Round #49 - Streaming #4 (NOIP模拟赛Day2)
A.二叉树的的根 题目:http://www.contesthunter.org/contest/CH%20Round%20%2349%20-%20Streaming%20%234%20(NOIP 模 ...
随机推荐
- 王者荣耀交流协会final发布WBS+PSP
WBS: PSP: 时间为估计,大致精确. 类型 personal software process stages 预估时间 实际花费时间 planning 计划 4h 4h estimate 4h ...
- 第一次c++团队合作项目第三篇随笔
这次终于想出来了上次问题的解决方法,就是用多态的方法,让小兵,建筑和英雄继承于Object类,通过指针能实现信息的传递. 同时我也完善了地图中每个Pane类的信息,包括每个格子的位置信息,state( ...
- SVN版本合并技巧
公司使用了bug管理系统,项目添加新功能时,建一个主工单,再分成多个子工单,将子工单分给多个程序员来开发. 开发人员完成一部分就提交一部分,多个小功能模块就分多次提交到测试主干,然后用测试主干项目发布 ...
- EF 联合查询
EF 文章表和标签表联合查询标签id在dis中的文章,还不知道性能如何 var query = tagRepo.Entities.Include("Tags").Where(t = ...
- 对IT行业的一些思考
阅读完两篇报道,从“2014年十大最热门行业和职业排行榜”可以看出最热门的行业是IT行业,可以看出IT行业在未来的发展前景很乐观,选择IT行业的人也会越来越多,IT行业也会越来越庞大.但是 ...
- C++11 锁 lock
转自:https://www.cnblogs.com/diegodu/p/7099300.html 互斥(Mutex: Mutual Exclusion) 下面的代码中两个线程连续的往int_set中 ...
- IPv4编址及子网划分
在讨论IP编址之前,我们需要讨论一下主机与路由器连入网络的方法.一台主机通常只有一条链路链接到网络:当主机中的IP想发送一个数据报时,它就在链路上发送,主机与物理链路之间的边界叫做接口(interfa ...
- inline函数的总结
在函数返回类型前加上关键字inline就可以将函数指定为内联函数: inline const string& shortString(const string &s1, const s ...
- UVA11734_Big Number of Teams will Solve This
题意很简单,本身也是个水题. 给你两个字符串,如果两个串完全相同,那么输出yes:如果两串只是空格的不同,出去空格后完全相同,那么输出Output Format Error,否则输出Wrong Ans ...
- 洛谷 P2888 [USACO07NOV]牛栏Cow Hurdles
题目戳 题目描述 Farmer John wants the cows to prepare for the county jumping competition, so Bessie and the ...