codeforces1A

题目链接:http://codeforces.com/problemset/problem/1/A

题意:给定一个n*m的矩形,然后给一个a*a的地板,求最少需要多少地板可以铺满这个矩形(不可以割断,可以重叠)

思路:做除法上取整,然后结果相乘即可,(注意相乘的结果用long long 保存)

【知识点】int数据范围

#include <bits/stdc++.h>
using namespace std;int n,m,a;int main(){while(~scanf("%d%d%d",&n,&m,&a)){int x = ceil(n*1.0 / a);int y = ceil(m*1.0 / a);printf("%lld\n",(long long)x*y);}return 0;
}
codeforces1B

题目链接:http://codeforces.com/problemset/problem/1/B

题意:excel表格有两种表示行列的方式,一种是BC23类型,另一种是RXCX,其中X表示数字,给定一种表示方式,请输出另一种对应的表示方式

思路:对比:十进制转换成二十六进制,二十六进制转换成十进制。

【知识点】进制转换的灵活运用

#include <bits/stdc++.h>
using namespace std;int t;
char str[30], word[30];int main(){for(int i = 1; i <= 26; i ++) word[i] = 'A' + (i - 1);scanf("%d",&t);while(t --){scanf("%s",str);int len = strlen(str);int flag = 0, indx, num1 = 0, num2 = 0;for(int i = 0; i < len; i ++){if(i == 0 && str[i] == 'R' && i + 1 < len && str[i+1] >= '0' && str[i+1] <= '9'){flag ++;}if(str[i] == 'C' && i-1 >= 0 && str[i-1] >= '0' && str[i-1] <= '9' && i+1 < len && str[i+1] >= '0' && str[i+1] <= '9'){flag ++; indx = i+1;}}if(flag == 2){//RXCXfor(int i = 1; i < indx-1; i ++){num2 = num2 * 10 + (str[i] - '0');}for(int i = indx; i < len; i ++){num1 = num1 * 10 + (str[i] - '0');}int temp[1000], k = 0;while(num1){if(num1 % 26 == 0){temp[k ++] = 26; num1 = num1 / 26 - 1;}else{temp[k ++] = num1 % 26;num1 /= 26;}}for(int i = k-1; i >= 0; i --){printf("%c",word[temp[i]]);}printf("%d\n",num2);}else{int i = 0;while(str[i] >= 'A' && str[i] <= 'Z' && i < len){num1 = num1 * 26 + (str[i] - 'A')  + 1;i ++;}while(str[i] >= '0' && str[i] <= '9' && i < len){num2 = num2 * 10 + (str[i] - '0');i ++;}printf("R%dC%d\n",num2,num1);}}return 0;
}
codeforces1C

题目链接:http://codeforces.com/problemset/problem/1/C

题意:给定一个正多边形的三个顶点坐标,求能够形成的面积最小的正多边形。

思路:对于一个正多边形来说,为了使其面积最小,则其边的数目应该尽量少(假设该正多边形存在一个外接圆,则形状越接近圆则面积越大,边的数目越多);

对于给定的三个顶点,一定不共线且存在外接圆,所以给定的三个顶点就是一个三角形,首先可以求出各个顶点之间的距离(即三角形的边长),然后通过海伦公式求解三角形的面积==>外接圆公式计算出外接圆的半径==>计算出三角形各个边之间的圆心角==>求出圆心角的最大公约数则是正多边形的圆心角(因为三角形的三个顶点都是正多边形的顶点且都在圆上, 所以三角形任意两边之间的圆心角都是正多边形的圆心角的倍数)==>求出正多边形的面积(拆分成n个等腰三角形求解即可)

【知识点】海伦公式

求外接圆半径

求外接圆的三角形的圆心

求浮点数的最大公约数

计算正多边形的面积

弧度和角度之间的相互转换

#include <bits/stdc++.h>
using namespace std;const double PI = acos(-1.0);
const double eps = 1e-2;    //因为最多有100条边struct Point{double x,y;
}p[4];double dist(double xa, double ya, double xb, double yb){return sqrt((xa-xb)*(xa-xb) + (ya-yb)*(ya-yb));
}double fgcd(double a, double b){if(fabs(a) < eps) return b;if(fabs(b) < eps) return a;return fgcd(b,fmod(a,b));
}int main(){for(int i = 0; i < 3; i ++) scanf("%lf%lf",&p[i].x,&p[i].y);double dis1 = dist(p[0].x,p[0].y,p[1].x,p[1].y);      //求三边的长度double dis2 = dist(p[0].x,p[0].y,p[2].x,p[2].y);double dis3 = dist(p[1].x,p[1].y,p[2].x,p[2].y);double p = (dis1 + dis2 + dis3) / 2;           //求半周长double area = sqrt(p*(p-dis1)*(p-dis2)*(p-dis3));//海伦公式求三角形面积double r = (dis1 * dis2 * dis3) / (4 * area);//求外接圆半径double angle1 = 2 * asin(dis1 / (2 * r)) * 180 / PI;    //求三角形的各个圆心角double angle2 = 2 * asin(dis2 / (2 * r)) * 180 / PI;double angle3 = 360 - angle2 - angle1;//使得图中三角形的个数应尽可能的少,则圆心角的角度应尽可能大,所以选择gcd();double e = 360 / fgcd(angle1, fgcd(angle2,angle3));  //三角形个数double angle = 360 / e;  //度数//求多边形面积printf("%.8lf\n",sin(angle * PI / 180) * r * r * e / 2);return 0;
}

codeforces #1 题解相关推荐

  1. Dominated Subarray[codeforces 1257C]题解

    Dominated Subarray[codeforces 1257C] CF-1257C(Dominated Subarray) 题目 输入 输出 题目大意 样例输入 样例输出 CF-1257C(D ...

  2. Codeforces 833B 题解(DP+线段树)

    题面 传送门:http://codeforces.com/problemset/problem/833/B B. The Bakery time limit per test2.5 seconds m ...

  3. Codeforces 1344 题解

    A 假设所有的 \((i+a_i)\) 模 \(n\) 意义下构成排列则答案为 YES,否则为 NO. 时间复杂度 \(O(n)\) 或 \(O(n\log n)\). 代码: 79150268 B ...

  4. Codeforces 1314 题解

    这场整体质量感觉可以算 2020 年度(目前为止)最垃圾. A 按数值从小到大扫描,维护一个优先队列,每遇到一个数加入队列,每次数值发生 \(+1\) 时弹掉队列中价值最大元素,然后把此时队列中所有元 ...

  5. Codeforces 1338 题解

    A 对于每个 \(i\) 我们求出 \(b_i\) 表示 \(i\) 这个数最少要增加多少(\(\max^i_{j=1}a_j-a_i\)),答案等于最小的 \(k\) 使得 \(2^k-1\ge \ ...

  6. Codeforces 1149 题解

    A 特判全是 \(2\),对于有 \(1\) 的情况把 \(1\) 放到第二个和最后. 时间复杂度 \(O(n)\). 代码: 76492031 B 考虑只有一次询问的情况,有一个 \(O(n^3)\ ...

  7. Codeforces 1025 题解

    A 若 \(n=1\) 则答案为 YES,否则答案为 YES 当且仅当存在两个相同的字符. 时间复杂度 \(O(n)\). 代码: 76484733 B 求出所有 \(\text{lcm}(a_i,b ...

  8. Codeforces 1188 题解

    A 首先对于 A1 题,可以加减任意实数,结论是答案为 YES 当且仅当没有度数为 \(2\) 的点.必要性显然,充分性通过下面的构造来证明. A2 题的构造:考虑随便找一个叶子节点为根,记为 \(r ...

  9. Codeforces #635题解

    Codeforces round 635赛后解题报告 A. Ichihime and Triangle 首先这是一道几何题 那么我们知道,在此题中, x , y , z x,y,z x,y,z 满足 ...

最新文章

  1. 『PyTorch』第五弹_深入理解autograd_中:Variable梯度探究
  2. python读取excelsheet-python读取excel文件中所有sheet表格
  3. 2013年计算机专业对口模拟试题二,计算机对口升学模拟试题全解.doc
  4. Android中读取NFC标签卡中的ID
  5. python中threading模块详解及常用方法_Python常用模块功能简介(二)threading
  6. rootfs 制作ubuntu_为n1制作aarcm64/arm64 ubuntu rootfs系统
  7. python传文件给java_python使用简单http协议来传送文件
  8. c# String 前面不足位数补零的方法 (转贴)
  9. static在php中,php中static关键字在类中的使用
  10. java thread与runnable联系区别
  11. 自动化测试——接口测试——增删改查
  12. 2Sigma OA prepare: Friends Circle
  13. Android租赁源码,AndroidUS六仔源码出租的配置文件操作封装
  14. drools规则引擎通过数据库存储规则
  15. 小米游戏本bios更新_小米游戏本 | 笔记本Air 13.3″ 四核 | 笔记本Air 12.5″ | 笔记本Pro 15.6″BIOS设置...
  16. 存货审计应注意的问题有哪些
  17. 前端开发-CSS快速掌握上手知识详细总结
  18. html 图片加载 占位,css实现图片未加载完成时占位显示
  19. java foreach 空指针_foreach循环报NPE空指针异常
  20. 王者荣耀告诉你什么是节流

热门文章

  1. python ssologin_Python sso
  2. NMock学习系列(三)--- NMock在DDD领域驱动的单元测试中的应用
  3. 高精度姿态传感器LPMS-NAV3系列
  4. std::move使用不当引起的copy elision
  5. 装饰及家具设计的主要材料
  6. 链塔智库|区块链产业要闻及动态周报(2021年8月第3周)
  7. Android获取手机WiFi IP地址,MAC地址和网关地址程序实例
  8. 解决微博SDK接入全平台支持
  9. 关于 ant-design-vue a-card 自定义title的问题
  10. 【违规举报】违规举报方法步骤