SDUT_2012省赛选拔赛2 部分题目
2012-04-05 21:14
393 查看
http://acm.hdu.edu.cn/vcontest/vtl/problemlist/showproblemlist/vtlid/3367
1009 原来比赛做过的一个题目,由于最近写了几个字典树的题目,所以我对每个姓名编号的时候用字典树写的可是不知道哪里出了错误,老是wa弄得整个比赛的心情一团糟,最后我直接暴枚举力标号,已提交a了。。郁闷啊。。。
思路:输入A找与A有公共朋友最多的B,如果和A有公共朋友最多且相等的话就按字典序输出。。
注意:在找A的后继的后继B时,1:B不能是A本身:2:也不能是A的直接朋友。相当于一个模拟找的过程。。
View Code
1009 原来比赛做过的一个题目,由于最近写了几个字典树的题目,所以我对每个姓名编号的时候用字典树写的可是不知道哪里出了错误,老是wa弄得整个比赛的心情一团糟,最后我直接暴枚举力标号,已提交a了。。郁闷啊。。。
思路:输入A找与A有公共朋友最多的B,如果和A有公共朋友最多且相等的话就按字典序输出。。
注意:在找A的后继的后继B时,1:B不能是A本身:2:也不能是A的直接朋友。相当于一个模拟找的过程。。
View Code
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #define maxn 107 using namespace std; const double pi = 2*acos(-1.0); const double eps = 1e-8; int n; double a[maxn]; //cmp函数的书写更加清晰了 int cmp(double y) { if (y > eps) return 1; else if (y < -eps) return -1; else return 0; } double cal(double c) { double sum = 0.0; for (int i = 0; i < n; ++i) { // 首先满足三角形性质 if(cmp(c - (a[i] + a[i + 1])) >= 0) return 1; if(cmp(fabs(a[i] - a[i + 1]) - c) >= 0) return -1; double tmp = (a[i]*a[i] + a[i + 1]*a[i + 1] - c*c)/(2.0*a[i]*a[i + 1]); sum += acos(tmp); } if (cmp(sum - pi) > 0) return 1; else if (cmp(sum - pi) < 0) return -1; else return 0; } int main() { //freopen("in.txt","r",stdin); int i,t,cas = 1; scanf("%d",&t); while (t--) { scanf("%d",&n); for (i = 0; i < n; ++i) { scanf("%lf",&a[i]); } a = a[0]; double l = 0; double r = 10000; double m; bool flag = false; while (cmp(l - r) < 0) { m = (l + r)/2.0; int tmp = cal(m); //printf(">>%d\n",tmp); if (tmp > 0) r = m; else if (tmp < 0) l = m; else { flag = true; break; } } if (flag) { printf("Case %d: %.3lf\n",cas++,m); } else { printf("Case %d: impossible\n",cas++); } } return 0; }
相关文章推荐
- SDUT_2012省赛选拔赛3
- ZOJ Monthly, August 2012部分题目总结
- 迎接2012新赛季——HDOJ系列热身赛(5) 部分题目
- SDUT ACM 2013级选拔赛(部分题目)
- 2017年5月月赛-暨中南大学暑期集训选拔赛第一场-部分题目
- ZOJ Monthly, September 2012部分题目总结
- SDUT_2012省赛选拔赛1
- 数据结构练习题目(二叉树部分)
- 【2012长春区域赛】部分题解 hdu4420—4430
- 第六届蓝桥杯软件类省赛-JAVA部分题目
- 蓝桥杯(又蓝点杯)程序设计选拔赛题目解答(一)
- 剑指offer题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- noip2012提高组初赛(答案+选择题题目+个人分析)
- SDUT 3802 离散题目8
- SDUT 3812 离散题目18
- 【C++题目001】类的哪些部分不是由编译器自动生成的
- sdut-离散题目15
- 剑指offer部分题目整理
- 2013 蓝桥杯校内选拔赛 java本科B组(题目+答案)
- 【数据结构】网易2012校园招聘题目--平衡二叉树的插入问题