9.9 NOIP模拟题
9.9 NOIP模拟题
T1 两个圆的面积求并
/*
计算圆的面积并
多个圆要用辛普森积分解决
这里只有两个,模拟计算就好
两圆相交时,面积并等于中间两个扇形面积减去两个三角形面积
余弦定理求角度,算出三角形面积
*/
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const double PI=3.14159265358979323846264;
struct node{
double x,y;
double r;
}a[];
inline double getdis(node b,node c){
double xx=b.x-c.x;
double yy=b.y-c.y;
return sqrt(xx*xx+yy*yy);
} void deal(node b,node c)
{
double len=getdis(b,c);
if(len<=fabs(b.r-c.r)){
if(b.r<c.r) swap(b,c);
double t1=PI*b.r*b.r;
printf("%.3lf\n",t1);
return ;
}
double L=b.r+c.r;
double t1=PI*b.r*b.r;
double t2=PI*c.r*c.r;
if(L<=len){
printf("%.3lf\n",t1+t2);
return ;
}
double ang1=acos((b.r*b.r+len*len-c.r*c.r)/2.0/b.r/len);
double ang2=acos((c.r*c.r+len*len-b.r*b.r)/2.0/c.r/len);
double ret=ang1*b.r*b.r+ang2*c.r*c.r-len*b.r*sin(ang1);
printf("%.3lf\n",t1+t2-ret);
} int main()
{
freopen("standing.in","r",stdin);
freopen("standing.out","w",stdout);
int T;scanf("%d",&T);
while(T--){
scanf("%lf%lf%lf%lf%lf%lf",&a[].x,&a[].y,&a[].r,&a[].x,&a[].y,&a[].r);
deal(a[],a[]);
}
return ;
}
T2 约瑟夫问题
/*
其实也就是建好线段树
然后查找第m+1个数的位置,然后把这个位置到根的路径都-1.
*/
#include<cstdio>
#include <iostream>
#define N 100007 using namespace std;
struct SegTree
{
int l,r,m;
int num;
};
SegTree ltree[N<<];
int n,m,ln;int ans[N]; void init(int nowat, int tl, int tr)
{
ltree[nowat].l=tl;
ltree[nowat].r=tr;
ltree[nowat].m=(tl+tr)>>;
ltree[nowat].num=tr-tl+;
if(tl<tr)
{
init(nowat*,tl,ltree[nowat].m);
init(nowat*+,ltree[nowat].m+,tr);
}
} void del(int nowat, int tw)
{
--ltree[nowat].num;
if (ltree[nowat].l<ltree[nowat].r)
{
if (tw<=ltree[nowat].m) del(nowat*,tw);
else del(nowat*+,tw);
}
} int findcode(int tcode)
{
int i=;
int sum=;
while (ltree[i].l<ltree[i].r)
{
if(sum+ltree[i+i].num<tcode)
{
sum+=ltree[i+i].num;
i=i+i+;
}
else i=i+i;
}
return ltree[i].r;
} int main()
{
freopen("resist.in","r",stdin);
freopen("resist.out","w",stdout);
scanf("%d%d",&n,&m);
ln=;init(,,n);
int i,j,k=;int num=;
for (i=;i<=n;++i)
{
k=(k+m-)%(n-i+);
j=findcode(k+);ans[++num]=j;
del(, j);
if (i!=n)k=k%(n-i);
}
printf("%d\n",ans[num]);
fclose(stdin);fclose(stdout);
return ;
}
T3 给你矩阵的正视图和左视图中每个点的值 让你求俯视图和的范围
/*
最大值好求
最小值就是行和列出现同一个数后
那个出现次数多的出现的次数乘上这个数
*/
#include<iostream>
#include<cstdio>
#include<cstring> const int N=1e3+;
using namespace std;
int n,m,H[N],L[N],ans2,ans1;
int f[N],c[N]; int main()
{
freopen("neighbor.in","r",stdin);
freopen("neighbor.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=; i<=n; i++)scanf("%d",&H[i]);
for(int i=; i<=m; i++)scanf("%d",&L[i]);
for(int i=; i<=n; i++)
for(int j=; j<=m; j++)
ans2+=min(H[i],L[j]);
for(int i=; i<=n; i++)f[H[i]]++;
for(int i=; i<=m; i++)c[L[i]]++;
for(int i=; i<=; i++) ans1+=max(f[i],c[i])*i;
printf("%d %d\n",ans1,ans2);
return ;
}
9.9 NOIP模拟题的更多相关文章
- 【入门OJ】2003: [Noip模拟题]寻找羔羊
这里可以复制样例: 样例输入: agnusbgnus 样例输出: 6 这里是链接:[入门OJ]2003: [Noip模拟题]寻找羔羊 这里是题解: 题目是求子串个数,且要求简单去重. 对于一个例子(a ...
- NOIP模拟题汇总(加厚版)
\(NOIP\)模拟题汇总(加厚版) T1 string 描述 有一个仅由 '0' 和 '1' 组成的字符串 \(A\),可以对其执行下列两个操作: 删除 \(A\)中的第一个字符: 若 \(A\)中 ...
- 8.22 NOIP 模拟题
8.22 NOIP 模拟题 编译命令 g++ -o * *.cpp gcc -o * *.c fpc *.pas 编译器版本 g++/gcc fpc 评测环境 位 Linux, .3GHZ CPU ...
- NOIP模拟题17.9.26
B 君的任务(task)[题目描述]与君初相识,犹如故人归.B 君看到了Z 君的第一题,觉得很难.于是自己出了一个简单题.你需要完成n 个任务,第i 任务有2 个属性ai; bi.其中ai 是完成这个 ...
- noip模拟题题解集
最近做模拟题看到一些好的题及题解. 升格思想: 核电站问题 一个核电站有N个放核物质的坑,坑排列在一条直线上.如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质. 任务:对于给定 ...
- NOIP 模拟题
目录 T1 : grid T2 : ling T3 : threebody 数据可私信我. T1 : grid 题目:在一个\(n*n\)的方格中,你只能斜着走.为了让问题更简单,你还有一次上下左右走 ...
- 9.22 NOIP模拟题
吉林省信息学奥赛 2017 冬令营 ...
- 6.19 noip模拟题(题目及解析转自 hzwer 2014-3-15 NOIP模拟赛)
Problem 1 高级打字机(type.cpp/c/pas) [题目描述] 早苗入手了最新的高级打字机.最新款自然有着与以往不同的功能,那就是它具备撤销功能,厉害吧. 请为这种高级打字机设计一个程序 ...
- noip模拟题《迷》enc
[问题背景]zhx 和他的妹子聊天.[问题描述] 考虑一种简单的加密算法. 假定所有句子都由小写英文字母构成, 对于每一个字母, 我们将它唯一地映射到另一个字母.例如考虑映射规则:a- ...
随机推荐
- Luogu P2052 [NOI2011]道路修建
吐槽一下 我开了\(-O2\)优化结果跑的更慢了什么鬼???!!! 我怕不是吸了一口毒氧气 不要脸的放上我的博客,欢迎大家前来面基 题目大意 给定一棵有\(n\)个节点的树,树中有\({n-1}\)条 ...
- Manacher算法(马拉车算法)浅谈
什么是Manacher算法? 转载自百度百科 Manachar算法主要是处理字符串中关于回文串的问题的,它可以在 O(n) 的时间处理出以字符串中每一个字符为中心的回文串半径,由于将原字符串处理成两倍 ...
- <MyBatis>入门八 工作原理
1.获取sqlSessionFactory对象 首先拿到全局配置文件的流对象 创建SqlSessionFactoryBuilder对象,并调用build方法,把流传进去 build方法 创建一个XML ...
- mysql数据库主从操作记录
master数据库已投入生产一段时间后,做主从复制的操作记录 环境: master库:172.18.237.13slave库:172.18.237.14 mysql版本说明: master:mysql ...
- 使用 resultMap 实现高级结果集映射
resultMap 的基本配置项 属性 id 属性:resultMap 的唯一标识,此 id 值用于 select 元素 resultMap 属性的引用. type 属性:表示该 resultMap ...
- 利用WebUploader进行图片批量上传,在页面显示后选择多张图片压缩至指定路径【java】
WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件.在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览 ...
- python爬虫23 | 手机,这次要让你上来自己动了。这就是 Appium+Python 的牛x之处
你有没有想过让你的手机帮你自动完成某些事情 比如自动帮你抢红包 有些软件不是有签到活动么 这些傻瓜式的操作 能不能让手机自动签到呢? 自动帮你叫外卖 自动帮你打电话 等等 还有 对于手机上的一些比较难 ...
- c++行事准则
1.c++包含多种编程范式,每种范式遵循不同的准则: 2.除了#include和#ifdef之流,其他预处理器别用,多用enum和const: 3.函数声明定义多用const:
- spring cloud feign 坑
feign是啥? 很多人可能对于feign 不是很熟悉,可以看一下其他网友的实例分享:spring cloud feign简介 如果觉得上面这个比较难的话,还有一个简单入门的:spring cplou ...
- 【Codeforces 988D】Points and Powers of Two
[链接] 我是链接,点我呀:) [题意] 让你从一个集合中找出来一个子集 使得这个子集中任意两个数相减的绝对值是2^的整数次幂 且集合的大小最大 [题解] 考虑子集的个数为4个或4个以上 那么我们找到 ...