BestCoder Round #68 (div.2) 总结
2016-01-02 21:39
267 查看
A:
Accepts: 324
Submissions: 622
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
问题描述
输入描述
输出描述
输入样例
输出样例
Hint
geometry
Accepts: 324Submissions: 622
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
问题描述
在平面直角坐标系上有一个点PP, 他的坐标是(x, y)(x,y). 有一条直线y = kx + by=kx+b经过了PP, 且分别交x, yx,y正半轴于A, BA,B. 求|PA| * |PB|∣PA∣∗∣PB∣的最小值.
输入描述
第一行一个TT, 表示数据组数. 接下来TT行每行两个正整数x,yx,y, 表示PP的坐标. T=500, 0 < X, Y \leq 10000T=500,0<X,Y≤10000
输出描述
TT行,每行一个数字,表示每组数据的答案
输入样例
1 2 1
输出样例
4
Hint
样例中P(2,1)P(2,1), 取直线y = -x + 3y=−x+3, 他经过了PP并分别交x, yx,y正半轴于A(3,0), B(0,3)A(3,0),B(0,3).|PA|=\sqrt{2},|PB|=2\sqrt{2},|PA||PB|=4∣PA∣=√2,∣PB∣=2√2,∣PA∣∣PB∣=4,经验证确实是最小值.官方题解: 设y=kx+by=kx+b与xx轴负半轴的交角为\alphaα.因为y=kx+by=kx+b与x,yx,y正半轴相交,所以\alpha\in[0,\frac{\pi}{2})α∈[0,2π).那么|PA|=\frac{y}{\sin \alpha},|PB|=\frac{x}{\cos \alpha}∣PA∣=sinαy,∣PB∣=cosαx.那么|PA||PB|=\frac{xy}{\sin \alpha \cos \alpha}=\frac{2xy}{\sin 2\alpha}∣PA∣∣PB∣=sinαcosαxy=sin2α2xy.因为\sin 2\alpha \le 1sin2α≤1,所以最小值为2xy2xy输入描述#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; #define LL __int64 int main() { LL t; scanf("%I64d",&t); while(t--) { LL x,y; scanf("%I64d%I64d",&x,&y); LL m=(x*y)<<1; printf("%I64d\n",m); } return 0; }
B:tree
Accepts: 143 Submissions: 807 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)问题描述有一个树(nn个点, n-1n−1条边的联通图),点标号从11~nn,树的边权是00或11.求离每个点最近的点个数(包括自己).
第一行一个数字TT,表示TT组数据. 对于每组数据,第一行是一个nn,表示点个数,接下来n-1n−1,每行三个整数u,v,wu,v,w,表示一条边连接的两个点和边权. T = 50,1 \leq n \leq 100000, 1 \leq u,v \leq n,0 \leq w \leq 1T=50,1≤n≤100000,1≤u,v≤n,0≤w≤1.输出描述
对于每组数据,输出答案. 考虑到输出规模过大,设ans_iansi表示第ii个点的答案.你只需输出ans_1 \ xor \ ans_2 \ xor \ ans_3.. \ xor \ ans_nans1 xor ans2 xor ans3.. xor ansn即可.输入样例
1 3 1 2 0 2 3 1输出样例
1Hint
ans_1 = 2ans1=2 ans_2 = 2ans2=2 ans_3 = 1ans3=1 2 \ xor \ 2 \ xor \ 1=12 xor 2 xor 1=1, 因此输出11.
官方:把每条边权是1的边断开,发现每个点离他最近的点个数就是他所在的连通块大小.开一个并查集,每次读到边权是0的边就合并.最后Ans_i=size[findset(i)],sizeAnsi=size[findset(i)],size表示每个并查集根的sizesize.(我只查了他儿子,忘了查他爸,WA了12次,后来改改查他爸,AC了。。。。。。。。。。。,就一点错。。。。。。。。。。。啊啊啊#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; const int maxm=1e5+10; int u[maxm]; int v[maxm]; int w[maxm]; int p[maxm]; int num[maxm]; void Init() { for(int i=1; i<=maxm; i++) { p[i]=i; num[i]=1; } } int find(int x) { if(p[x]!=x) { p[x]=find(p[x]); } return p[x]; } int main() { int t; scanf("%d",&t); while(t--) { Init(); int n; scanf("%d",&n); for(int i=0; i<n-1; i++) { scanf("%d%d%d",&u[i],&v[i],&w[i]); int x=find(u[i]); int y=find(v[i]); if(w[i]==0) { p[y]=x; num[x]+=num[y]; } } int ans=num[find(1)]; for(int i=2; i<=n; i++) { ans^=num[find(i)]; } printf("%d\n",ans); } return 0; }
相关文章推荐
- 在Centos配置hadoop用户无密码sudo权限
- IOS UI基础控件总结
- Javascript显示和隐式类型转换
- Nancy 引用源码与NuGet安装差异
- Java代码显示昨天当前时刻
- ckfinder + ckeditor 路径配置详解
- vps折腾之旅
- 仲恺ACM 1075:笨鸟先飞【java】
- hibernate.cfg.xml的常用配置
- python coding style guide 的快速落地实践
- HDU 5607 graph 矩阵快速幂 + 快速幂
- TMS320F28335时钟(3) -----总结
- 工厂方法模式(factory method)
- iOS手势操作,拖动,轻击,捏合,旋转,长按,自定义(http://www.cnblogs.com/huangjianwu/p/4675648.html)
- HUOJ 5605
- iOS 代理设计模式
- 使用windows内存-VirtualAlloc
- 工厂三兄弟之简单工厂模式(三)
- 实战开发-Ashurol天气预报APP(三)
- Scrum与XP极限编程的不同之处