[USACO3.4.3 Electric Fences]
2012-03-03 18:34
501 查看
[关键字]:数学 解析几何
[题目大意]:给出n,m,p,问由(0,0)(n,m)(p,0)围成的三角形型内部有几个由整数构成的点。
//=============================================================================================
[分析]:据说有个皮克定律可以解决,但是本菜不会……所以就用了最笨的解析几何去做。计算出(0,0)和(n,m)构成的直线的解析式是:y=(xm)/n;(n,m)和(p,0)的解析式是:y=(p-x)m/(p-n)然后枚举x,求出对应的y。然后就可算出x这条直线上有几个可以选的点。要注意的是:1、计量避免浮点计算,否则很不好办;2、要分三种情况讨论:p>n p==n p<n,其实三种情况都很想代码也差不多,边界考虑清楚代码完全可也copy。
[代码]:
View Code
[题目大意]:给出n,m,p,问由(0,0)(n,m)(p,0)围成的三角形型内部有几个由整数构成的点。
//=============================================================================================
[分析]:据说有个皮克定律可以解决,但是本菜不会……所以就用了最笨的解析几何去做。计算出(0,0)和(n,m)构成的直线的解析式是:y=(xm)/n;(n,m)和(p,0)的解析式是:y=(p-x)m/(p-n)然后枚举x,求出对应的y。然后就可算出x这条直线上有几个可以选的点。要注意的是:1、计量避免浮点计算,否则很不好办;2、要分三种情况讨论:p>n p==n p<n,其实三种情况都很想代码也差不多,边界考虑清楚代码完全可也copy。
[代码]:
View Code
#include<iostream> #include<cstdlib> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int N,M,P,ans=0; int main() { scanf("%d%d%d",&N,&M,&P); //printf("%d %d %d\n",N,M,P); for (int i=1;i<=N;i++) { int y1=(i*M)/N; float y2=((float)i*M)/(float) N; //printf("%d %.2f %d\n",i,y2,y1); if (y1==y2) ans+=y1-1; else ans+=y1; } //printf("%d\n",ans); if (P>N) { for (int i=N+1;i<P;i++) { int y1=(M*(P-i))/(P-N); float y2=((float)M*(P-i))/(float) (P-N); //printf("%d %.2f %d\n",i,y2,y1); if (y1==y2) ans+=y1-1; else ans+=y1; } //printf("%d\n",ans); } if (P<=N) ans-=M-1; //printf("%d\n",(P<N)); if (P<N) { for (int i=P+1;i<N;i++) { int y1=(M*(P-i))/(P-N); //printf("%d %.2f %d\n",i,y2,y1); ans-=y1; } //printf("%d\n",ans); } printf("%d\n",ans); return 0; }
相关文章推荐
- usaco6.4.2 Electric Fences
- USACO 6.4.2 Electric Fences 三分算法
- usaco 5.2.2 Electric Fences
- usaco3.4.3 Raucous Rockers
- USACO3.4.3 Raucous Rockers (rockers)
- [USACO 6.4.2] Electric Fences
- Electric Fences_usaco3.4_皮克定理
- USACO Section 5.2 Electric Fences - 有意思的枚举+计算几何
- usaco 3.4.3
- USACO 3.4.3
- usaco3.4.3美国血统
- usaco training 3.4.3 fence9 题解
- USACO3.4.3 Raucous Rockers (rockers)
- USACO3.4.3--Electric Fence
- usaco traini 5.2.2 Electric Fences 题解
- USACO 3.4.3
- [USACO5.2.2 Electric Fences]
- USACO 3.4.3 American Heritage
- 【USACO题库】3.4.3 Electric Fence电网
- 【USACO3.4.3】电网