SDUT1128 Autumn Single contest
2017-11-29 15:57
459 查看
CodeForces 140A New Year Table
这道题做过,标准原题。记得当时比赛就卡了没做出来是之后补的, 所以就继续找题看。
不知道当时写没写题解, 一块写了吧。
题意: R是大圆的半径, r是小圆的半径, n是想往大圆里放小圆的个数。 小圆必须贴边放, 即能直接接触到大圆。
sinΘ = r / (R-r);
Θ = arcsin(r / (R-r));
可放个数 = (2*π)/(2*Θ)
题意很简单,做法很简单,EPS很无奈。。。
比赛中尝试了1e-24 -23 -19 -15 -13and so on
WA了九发。。。 EPS太精确也会错。。
以后要EPS一般还是用1e-9吧
CodeForces 150A Win or Freeze
听不懂雨,看不透云,等不及风,读错了题。
还以为是如果有且两个不同因子才会输出2,
但其实只要总共的因子个数为两个就会输出2.
总共的因子个数只要大于2就输出1.
题意:1和2 两个人。 一个数为q, 轮到这个人时,写出一个q的因子
然后将该值更新为q。直到这个人写不出时这个人获胜。
CodeForces 77B Falling Anvils
比赛时倒是就看懂这道题了,不过没想到怎么做。
刚才以搜数学题的方式搜了下才想起来这种二元不等式画个二维的图最好想。。。我说画一维的怎么都想不出来答案。。。
求 p>= 4*q 的概率
p∈[0, a] q∈[-b, b]
画个图用面积求概率就好。
这道题做过,标准原题。记得当时比赛就卡了没做出来是之后补的, 所以就继续找题看。
不知道当时写没写题解, 一块写了吧。
题意: R是大圆的半径, r是小圆的半径, n是想往大圆里放小圆的个数。 小圆必须贴边放, 即能直接接触到大圆。
sinΘ = r / (R-r);
Θ = arcsin(r / (R-r));
可放个数 = (2*π)/(2*Θ)
题意很简单,做法很简单,EPS很无奈。。。
比赛中尝试了1e-24 -23 -19 -15 -13and so on
WA了九发。。。 EPS太精确也会错。。
以后要EPS一般还是用1e-9吧
#include <iostream> #include <cstdio> #include <cmath> #include <cstring> #include <queue> #include <vector> #include <algorithm> #define inf 0x3f3f3f3f #define ms(x) memset(x, 0, sizeof(x)) #define ll long long using namespace std; const int N = 101234; long double pi = 3.1415926535; const long double eps = 1e-9; int main() { int n; double R, r; scanf("%d%lf%lf",&n,&R,&r); long double dt = asin(r/(R-r)); double tm = pi/dt; // printf("%lf\n",tm); if(r>R) printf("NO\n"); else if(n==1&&R>=r) printf("YES\n"); else if(n==2&&R==2*r) printf("YES\n"); else if(pi/dt >= n - eps) { printf("YES\n"); } else printf("NO\n"); return 0; }
CodeForces 150A Win or Freeze
听不懂雨,看不透云,等不及风,读错了题。
还以为是如果有且两个不同因子才会输出2,
但其实只要总共的因子个数为两个就会输出2.
总共的因子个数只要大于2就输出1.
题意:1和2 两个人。 一个数为q, 轮到这个人时,写出一个q的因子
然后将该值更新为q。直到这个人写不出时这个人获胜。
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <vector> #define inf 0x3f3f3f3f #define ms(x) memset(x,0,sizeof(x)) #define ll long long using namespace std; int main() { ll q; vector<ll>v; cin>>q; if(q == 1) { cout<<"1"<<endl; cout<<"0"<<endl;return 0; } ll tmp = q; for(ll i=2; i<=sqrt(q); i++) { while(tmp%i==0) { tmp/=i; v.push_back(i); if(v.size()>2) break; } if(v.size()>2) break; } int ans = v.size(); if(tmp>1) { ans++; } if(ans == 1) { cout<<"1"<<endl; cout<<"0"<<endl; } else if(ans == 2) { cout<<"2"<<endl; } else { cout<<"1"<<endl; cout<<v[0]*v[1]<<endl; } return 0; }
CodeForces 77B Falling Anvils
比赛时倒是就看懂这道题了,不过没想到怎么做。
刚才以搜数学题的方式搜了下才想起来这种二元不等式画个二维的图最好想。。。我说画一维的怎么都想不出来答案。。。
求 p>= 4*q 的概率
p∈[0, a] q∈[-b, b]
画个图用面积求概率就好。
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <vector> #define inf 0x3f3f3f3f #define ms(x) memset(x,0,sizeof(x)) #define ll long long using namespace std; int main() { int T; double a, b; cin>>T; while(T--) { double t; cin>>a>>b; if(b == 0) { t = 1; } else if(a<4*b) { t = 0.5 + a/(16*b); } else { t = (a-b)/a; } printf("%.10lf\n",t); } return 0; }
相关文章推荐
- SDUT 2017 Autumn Single Contest O 周六场个人赛
- SDUT 2017 Autumn Single Contest N 模板场
- SDUT 2017 Autumn Single Contest K
- SDUT 2017 Autumn Single Contest K
- 20171116SDUTAutumn Single Contest
- 2017 12 10 cf 个人赛--题解 SDUT 2017 Autumn Single Contest L
- SDKD 2016 Summer Single Contest #13 .B
- SDUT 2162-The Android University ACM Team Selection Contest(模拟)
- Single Round Math sdut3260高精度除以低精度
- SDKD 2016 Summer Single Contest #13 .C
- SDUT 1128-河床(DFS)
- Sichuan University Programming Contest 2013 Final (Single)F题
- Sichuan University Programming Contest 2013 Final (Single)C题
- [原]sdut2624 Contest Print Server (大水+大坑)山东省第四届ACM省赛
- SDUT 1128 河床
- Cpp环境【SDUT1128】【Code[VS]1809】【CQYZOJ1823】河床
- sdut 2624 Contest Print Server (模拟)
- sdut3260——Single Round Math(大数模)
- sdut 2624 Contest Print Server
- sdut2624 Contest Print Server (大水+大坑)山东省第四届ACM省赛