E 挡光线 题解
来源:互联网 发布:linux查看磁盘使用情况 编辑:程序博客网 时间:2024/04/29 10:07
这其实就是一道简单的几何题。
正方形是一种特殊的几何图形,连接图中所有的正方形对角线,就会得到以下图形:
题目中说到,正方形的位置可以任意摆放,显然,这个图中的正方形还可以继续向两条直线的方向移动,增大黄色区域的面积。想象一下,这个时候,两个正方形对角线之间的距离就在慢慢缩小,直到下面这种情况:
这就是正方形的对角线在一条直线上的情况。
这时,如果正方形继续向上移动,光线就挡不住了,不符合题意。因此,当所有的正方形对角线都在一条直线上时,挡住光线的面积最大。
现在,问题就很好办了。
只需要运用一次函数中的数学知识,将各个点的坐标算出来即可。
总结:
1.变量要初始化;
2.最好使用double类型变量,尽量不用float,因为double有效位是16位,float是8位,误差小,否则很容易出毛病;
3.输出注意双精度浮点数的输出格式:%lf,单精度浮点数输出格式:%f。
附上丑代码:
#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>#include<algorithm>#include<iostream>using namespace std;int main(){ /*不要被这么多变量吓住了,自己照着题目再推一遍之后就会觉得很简单了*/ int n; double xa,xb,ya,yb,x1,k1,k2,tk,b,len=0,S=0,S_=0,sqr[12]; cin>>n; cin>>xa>>ya>>xb>>yb; for(int i=1;i<=n;i++){cin>>sqr[i];len+=sqr[i];S_+=sqr[i]*sqr[i];} k1=ya/xa,k2=yb/xb; if(k1<k2){tk=k1;k1=k2;k2=tk;} x1=((k2+1)*len)/(k1-k2); b=(k1+1)*x1; S=(b*len-S_)/2.0; printf("%.3lf",S); return 0;}
阅读全文
1 0
- E 挡光线 题解
- NKOJ-3514 挡光线<2017信息学夏令营第三场 E>
- CF 82E 题解 Corridor
- E - Y2K Accounting Bug 题解
- CodeM资格赛E 数码 题解
- 长沙邀请赛E题解题报告
- E - A very hard mathematic problem题解
- 2014 鞍山 现场赛 E题题解
- CF 87E 题解 Mogohu-Rea Idol
- CF 77E Martian Food题解
- CF 55E Very simple problem 题解
- 并查集训练题解(A-E)
- [CF 335E]Counting Skyscrapers题解翻译
- [CF 329E]Evil题解翻译
- 【leetcode题解】【28】【E】Palindrome Number
- 【E】【51】【leetcode题解】Rectangle Area
- 【E】【59】【leetcode题解】Valid Sudoku
- [E][79][leetcode题解]Longest Common Prefix
- 冒泡排序
- 【二维DP】最大子阵
- 考试题目讲解-【第3题】最少连通代价
- Python 的 and or not 操作符
- Django web框架
- E 挡光线 题解
- 在浏览器中显示TXT 文本中的换行(html/txt)
- iOS UIWebView仿微信H5页面实现长按保存图片功能
- 福州大学OJ 2260-Card Game (单调栈+DP)
- Collection接口
- #POJ1987#Distance Statistics(树+点分治)
- hdu 4511-AC自动机+DP
- 时间设置的相关命令
- Unity3D学习记录——关灯