- 浏览: 316860 次
- 性别:
- 来自: 珠海
文章分类
最新评论
-
xialluyouyue:
Ubuntu下搭建nodejs+express+mongodb环境简单教程 -
k317544294:
Good 陈迪峰
(开源游戏) DOTA音效版 俄罗斯方块 -
基德KID.1412:
su1216 写道竖线代表或者,不代表替换
对哦~ 谢谢你的提 ...
正则表达式中特殊字符的用法(收藏) -
su1216:
竖线代表或者,不代表替换
正则表达式中特殊字符的用法(收藏) -
qiqijianglu:
基德KID.1412 写道qiqijianglu 写道基德KI ...
【高斯消元 求期望】HDU 4418 Time travel
KIDx 的解题报告
http://codeforces.com/contest/1
以下省略头文件
A题
水题
B题
题意:在Excel中,一个格子的位置有2种表示:
例如第23行第55列
①R23C55
②BC23
第一种表示方法很直观。
第二种表示方法中BC表示列。23表示行。
1-26列:A, B, C...Z
27-?列:AA, AB, AC...AZ, BA, BB, BC...ZZ
?-?:AAA...ZZZ...
跟进制的转换很类似!
输入任意一种表示,你的任务是输出另一种表示
C题
参考白衣少年:http://hi.baidu.com/%B0%D7%D2%C2%C9%D9%C4%EA2012/blog/item/abb86a05be0953037bec2cfe.html
题意:有一个正n边形
输入正n边形的其中3个点
问正n边形可能存在的最小面积,已知n<=100
该题关键技巧就是要画外接圆,然后玩玩圆周角,圆心角这些概念,当个平面几何问题,先尽量多推出一些结论。
具体解法如下:
首先,随便画个正多少边形,画个外接圆。根据正弦定理,可以直接知道外接圆半径。把这三个点连成一个三角形,三个角都会是正x边形的一个边对应这个外接圆的圆周角的整数倍。由于x很小,枚举+判断就可以了。
三角形外接圆半径公式:
每条边所对应的圆心角 = 2*PI/n
所以圆周角 = 圆心角/2 = PI/n
正n边形面积:
http://codeforces.com/contest/1
以下省略头文件
A题
水题
int main() { LL n, m, a, res; while (~scanf ("%I64d%I64d%I64d", &n, &m, &a)) { res = ((n+a-1) / a) * ((m+a-1) / a); printf ("%I64d\n", res); } return 0; }
B题
题意:在Excel中,一个格子的位置有2种表示:
例如第23行第55列
①R23C55
②BC23
第一种表示方法很直观。
第二种表示方法中BC表示列。23表示行。
1-26列:A, B, C...Z
27-?列:AA, AB, AC...AZ, BA, BB, BC...ZZ
?-?:AAA...ZZZ...
跟进制的转换很类似!
输入任意一种表示,你的任务是输出另一种表示
int main() { char s[105]; int t, i, len, key, r, c, k; scanf ("%d", &t); while (t--) { scanf ("%s", s); len = strlen (s); key = 0; for (i = 1; i < len; i++) if (isalpha (s[i-1]) && !isalpha (s[i])) key++; if (key == 1) //输入的是第二种表示,如BC23 { c = 0; //求是第几列 for (i = 0; i < len; i++) { if (!isalpha (s[i])) break; c *= 26; c += s[i] - 'A' + 1; } r = 0; //求是第几行 for (; i < len; i++) r *= 10, r += s[i] - '0'; printf ("R%dC%d\n", r, c); } else //输入的是第一种表示,如R23C55 { r = 0; //求是第几行 for (i = 1; i < len; i++) { if (s[i] == 'C') break; r *= 10; r += s[i] - '0'; } i++; c = 0; //求是第几列 for (; i < len; i++) c *= 10, c += s[i] - '0'; k = 0; while (c) //将列转换成字母表示形式 { //跟普通的进制转换有区别! c--; //突破口!琢磨很久才出来的一个想法! s[k++] = c % 26 + 'A'; c /= 26; } for (i = k-1; i >= 0; i--) printf ("%c", s[i]); printf ("%d\n", r); } } return 0; }
C题
参考白衣少年:http://hi.baidu.com/%B0%D7%D2%C2%C9%D9%C4%EA2012/blog/item/abb86a05be0953037bec2cfe.html
题意:有一个正n边形
输入正n边形的其中3个点
问正n边形可能存在的最小面积,已知n<=100
该题关键技巧就是要画外接圆,然后玩玩圆周角,圆心角这些概念,当个平面几何问题,先尽量多推出一些结论。
具体解法如下:
首先,随便画个正多少边形,画个外接圆。根据正弦定理,可以直接知道外接圆半径。把这三个点连成一个三角形,三个角都会是正x边形的一个边对应这个外接圆的圆周角的整数倍。由于x很小,枚举+判断就可以了。
三角形外接圆半径公式:
每条边所对应的圆心角 = 2*PI/n
所以圆周角 = 圆心角/2 = PI/n
正n边形面积:
const double EP = 1e-3; const double PI = 3.1415926535897932384626433832795; struct point{ double x, y; }p[5]; double dist (point a, point b) { return sqrt ((a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y)); } double area2 (point a, point b, point c) { return fabs(a.x*b.y+b.x*c.y+c.x*a.y-c.x*b.y-b.x*a.y-a.x*c.y); } bool isok (int n, double ang) //判断三角形的角ang是不是边对应圆周角PI/n的整数倍 { double tp = n*ang/PI; //思路:判断相除的结果是不是整数 double x = floor(tp+EP); if (tp - x < EP) return true; return false; } int main() { int i, n; double r, a, b, c, s, A, B, C, Rang; while (~scanf ("%lf%lf", &p[0].x, &p[0].y)) { for (i = 1; i < 3; i++) scanf ("%lf%lf", &p[i].x, &p[i].y); a = dist (p[0], p[1]); b = dist (p[0], p[2]); c = dist (p[1], p[2]); A = acos ((b*b + c*c - a*a) / 2 / b / c); B = acos ((a*a + c*c - b*b) / 2 / a / c); C = acos ((b*b + a*a - c*c) / 2 / b / a); s = area2 (p[0], p[1], p[2]); //求三角形的面积的2倍 /*double p = (a+b+c)/2; s = sqrt (p*(p-a)*(p-b)*(p-c));*/ r = a*b*c/2/s; //由于s已经是三角形面积的2倍了,所以除以2即可 for (n = 3; n <= 100; n++) //枚举边数,边越小面积越小 if (isok (n, A) && isok (n, B) && isok (n, C)) break; Rang = PI/n; //中心角的一半 double res = n*r*r*sin(Rang)*cos(Rang); printf ("%.8f\n", res); } return 0; }
发表评论
-
【旋转卡壳】POJ 3608 Bridge Across Islands
2012-09-28 14:17 1512KIDx的解题报告 题目链接:http://poj ... -
hdu 4170 Supply Mission
2012-09-22 10:03 1279KIDx的解题报告 ... -
UVA 10202 + HDU 1270 小希的数表
2012-09-15 20:01 2759KIDx的解题报告 题目链接:http://ac ... -
HDU 1979 Fill the blanks
2012-08-20 12:40 1129KIDx的解题报告 题目链接:http://ac ... -
【数学】HDU 1719 Friend
2012-03-02 16:44 1207KIDx的解题报告 好久没写博客了,来题数学提提神 ... -
【BKDR_hash】HDU 2648 Shopping
2011-12-10 19:35 1828KIDx 的解题报告 题目链接:http://acm. ... -
Codeforces Beta Round #97 (Div. 2) 【完整题解】
2011-12-10 14:23 1533KIDx 的解题报告 题目链接:http://codeforc ... -
Codeforces Beta Round #96 (Div. 2)【完整题解】
2011-12-06 17:03 1477KIDx 的解题报告 题目链接:http://codeforc ... -
2011 ACM/ICPC 北京赛区现场赛 B题(hdu 4082)
2011-11-12 14:15 2113KIDx 的解题报告 题目链接:http://acm.hdu. ... -
Codeforces Beta Round #4 (Div. 2 Only) 【完整题解】
2011-11-08 00:33 1428KIDx 的解题报告 http://codeforces.c ... -
大连2011ACM网络赛【5道水题总结】……很黄很暴力
2011-09-04 18:04 2589KIDx 的解题报告 http://acm.hdu.ed ... -
【超级hash大法】HDU 1496 Equations
2011-08-10 21:21 3279http://acm.hdu.edu.cn/showprobl ... -
【凸包Graham_Scan算法】HDU 1348 Wall
2011-08-08 16:18 1473http://acm.hdu.edu.cn/showprobl ... -
【判线段相交】HDU 1086
2011-08-08 10:09 1558http://acm.hdu.edu.cn/showprobl ... -
【叉积+二分】POJ 2318 TOYS
2011-08-07 21:45 2847http://poj.org/problem?id=2318 ... -
【矩阵乘法+快速取幂模】HDU 1575 Tr A
2011-08-15 14:54 1591http://acm.hdu.edu.cn/showprobl ... -
【TMD的陷阱题】HDU 2143 box
2011-07-28 20:42 1473http://acm.hdu.edu.cn/showprobl ... -
【多边形重心/新增三角形叉积公式】HDU 1115 Lifting the Stone
2011-07-25 08:14 2418http://acm.hdu.edu.cn/showprobl ... -
HDU 2072 单词数
2011-07-23 18:31 1292http://acm.hdu.edu.cn/showprobl ... -
【让我悲催的水题】HDU 1070 Milk
2011-07-17 07:38 1629http://acm.hdu.edu.cn/showprobl ...
相关推荐
Codeforces Round #723 (Div. 2).md
E. Cyclic Components 题目链接-E. Cyclic Components 题目大意 给你nnn个点和mmm条边,求所构成图中单圈环的个数 ...并查集并查集并查集 很明显单圈环每个点的度都为222,所以我们可以用数组cnt[]记录每个点的度,...
开始位置在0,问能否跳到n+1位置 每步只能跳d 在1——n每个位置有方向,L,R,求d的最小值 思路: 只用找相邻两个R之间的最大值即可 代码: #include #include #include #include #include #include #include #...
传送门 题意: 一个长度为n的数组,为删除一些数后,剩下的数能否构成长度大于3的回文数组 思路: 只要能找到两个相等的数,且他们的间距大于2即可 o(n^2)的暴力就能过 比赛时写了一个o(n)的 就是把所有相等的数放到...
Codeforces Round #629 (Div. 3) E.Tree Queries (DFS) 思路:若ai 在路径上 ,则ai的父结点一定在路径上,若ai是路径上某个结点的子结点,则ai的父结点一定在路径上,综上只需考虑ai的父节点就行了。对每个ai判断...
Codeforces全球第十轮比赛是编程竞赛平台Codeforces举办的一场线上编程比赛,旨在挑战参赛者的算法设计、逻辑思维和编程技巧。在这个比赛中,参赛者通常需要解决一系列算法问题,涵盖数据结构、图论、动态规划、数学...
Codeforces 1925D Good Trip 题解
该网站提供了一系列服务于编程竞赛爱好者的功能,包括但不限于:定期参与短时间(通常为两小时)的竞赛,即“Codeforces Round”,大约每周举行一次;提供以往竞赛的问题供用户练习;拥有一个名为“Polygon”的功能...
### Codeforces Round #627 (Div. 3) D. Pair of Topics(二分,思维) #### 题目背景与概述 本题目来自Codeforces Round #627 (Div. 3),编号为D的题目“Pair of Topics”,这是一道结合了二分搜索与逻辑思维的...
题目链接:B. Longest Palindrome 题目 Returning back to problem solving, Gildong is now studying about palindromes. He learned that a palindrome is a string that is the same as its reverse....
题目“Anu Has a Function”源自Codeforces Round #618 (Div. 2)的一道竞赛编程问题,主要涉及进制转换、位运算和贪心算法。问题要求定义一个函数f(x, y) = (x | y) - y,并对数组进行排序,以最大化最后的结果。 ...
标题中的"Codeforces Round #629 (Div. 3) E – Tree Queries dfs序判祖先关系"指的是一场编程竞赛中的问题,涉及到树结构的查询和深度优先搜索(DFS)来判断节点间的祖先关系。这个问题的目标是设计算法来确定在...
C. Ehab and Path-etic MEXs 题意 给两两节点放一个数字(0~n-2 唯一) 给你一棵树,求所有任意两节点相连的路以外的路上的数字的最小值最小 思路 构造 若一个点连了三条边及以上,则这个点的边从最小值开始赋值。...
给一个长度为n的数组,两种操作,一个是把任意一个ai变成ai+2a_i变成a_i+2ai变成ai+2,另一个是如果所有数都大于0,可以把所有数减1,问通过这些操作能否把所有数变为0 思路: 如果任意两个数之差为奇数,那么就...
Codeforces Round 962 (Div. 3) 编程竞赛 Codeforces Round 962 (Div. 3) 编程竞赛 Codeforces Round 962 (Div. 3) 编程竞赛 Codeforces Round 962 (Div. 3) 编程竞赛
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output Returning back to problem solving, Gildong is now studying about palindromes. He learned that a...
1. **基础数据结构**:在Codeforces比赛中,常见数据结构如数组、链表、栈、队列、哈希表、二叉树、图等都会被用到。例如,A题通常是入门级别的,可能会用到数组和基本的循环控制;B题可能涉及到简单的链表或栈操作...
题解:6nlogn,先sort三个数组a,b,c, 六次枚举二分查找,再每次min找最小值,例如:先固定数组a,再在数组b,c中利用lower_bound找到第一个大于等于a[i]的数, #pragma GCC optimize(2) #include #define ll long long...
这样a,b两个数最大公因数为1,最小公倍数x-1,满足题意√ 附上代码 #include #define int long long #define lowbit(x) (x &(-x)) using namespace std; const int INF=0x3f3f3f3f; const double PI=acos(-1.0); ...