河南省第十三届ICPC大学生程序设计竞赛 L 手动计算

本文介绍了一种通过在限定范围内密集采样来估算两个相交椭圆覆盖面积的方法。通过在-8到+8区间内以0.01的步长增加坐标值,并判断这些坐标点是否位于椭圆内部,进而估算椭圆的面积。

 

 

题意:题意很明显就不用说了?

思路,就疯狂打点?在-8 - +8的格子里面每次加0.01(因为要精确到小数点后一位),然后看有多少个点能够在椭圆的面积中,然后就椭圆面积的点/总点数  的比例再乘以整个取余的面积就是最后的结果。(一开始真的想不到!!!)

最后代码:

/**
*  ┏┓   ┏┓+ +
* ┏┛┻━━━┛┻┓ + +
* ┃       ┃
* ┃   ━   ┃ ++ + + +
*  ████━████+
*  ◥██◤ ◥██◤ +
* ┃   ┻   ┃
* ┃       ┃ + +
* ┗━┓   ┏━┛
*   ┃   ┃ + + + +Code is far away from  
*   ┃   ┃ + bug with the animal protecting
*   ┃    ┗━━━┓ 神兽保佑,代码无bug 
*   ┃  	    ┣┓
*    ┃        ┏┛
*     ┗┓┓┏━┳┓┏┛ + + + +
*    ┃┫┫ ┃┫┫
*    ┗┻┛ ┗┻┛+ + + +
*/
#include<cstdio>
#include <iostream>
#include <algorithm>
#include <string.h>
#include <string>
#include <math.h>
#include<vector>
#include<queue>
#include<map>
#define ll long long 
using namespace std;

const int N=1000000+100;
int n ,m,h;
ll s[N];


int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        double a,b,c,d;
		cin>>a>>b>>c>>d;
		double res=0;
		for(double x=-8;x<=8;x+=0.01)
			for(double y=-8;y<=8;y+=0.01)
			if(x*x/a/a+y*y/b/b<=1||x*x/c/c+y*y/d/d<=1)
			res++;
		printf("%.1lf\n",res/10000);	


    }
        
	
	return 0;
}

(图片如有侵权,请及时与本人沟通删除)

### 河南省第十五届ICPC大学生程序设计竞赛概述 河南省第十五届ICPC大学生程序设计竞赛是一项面向高校学生的高水平编程赛事,旨在通过解决复杂的算法问题来提升学生们的逻辑思维能力和编程技能。该赛事通常由省内知名大学承办,并吸引了来自全国各地的优秀团队参与。 #### 比赛时间和地点 关于2023年河南省第十五届ICPC大学生程序设计竞赛的具体时间与地点信息尚未完全公开,但根据往年的惯例,此类比赛一般安排在每年春季学期结束后的夏季举行[^1]。具体日期和举办城市需等待官方通知发布。 #### 赛题分析 本次比赛中的一道典型题目为“K 或的最大值”,这是一道涉及数组去重以及最大或运算计算的问题。此题的核心在于利用数学推导得出,在满足条件 \( 0 \leq \sum a_i \leq 10^8 \) 下,经过去重处理后剩余元素数量不会超过约 \( 10^4 \)[^1]。基于这一结论,可以采用暴力枚举方法求解两两组合间的按位或结果并找出其中的最大值。 以下是实现该算法的一个C++代码片段: ```cpp #include <iostream> #include <set> #include <vector> using namespace std; const int maxn = 1e5 + 5; int n; int main(){ cin >> n; set<int> S; for(int i=1, t; i<=n; ++i){ cin >> t; S.insert(t); } vector<int> a(S.begin(), S.end()); n = S.size(); int ans = 0; for(int i=0; i<n; ++i) for(int j=i+1; j<n; ++j) ans = max(ans, a[i] | a[j]); cout << ans << endl; return 0; } ``` #### 参赛队伍情况 虽然具体的参赛名单未被提及,但从以往经验来看,每支参赛队均由三名队员组成,他们共同协作完成所有给定的任务。这些选手大多来自于计算机科学及相关领域,具备扎实的基础知识与丰富的实战经历[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值