周口seo优化,网站文章优化技巧,2345网址大全浏览器主页,自动生成作文的软件hh第一次记录cf。
复盘 ab题目比较清晰#xff0c;只开了这两题#xff0c;后面看了下cd#xff0c;即使开了翻译也看不懂题目是什么意思#xff0c;最后放弃睡觉了。。 a是一道思维题#xff0c;翻了下别人写的发现大家写的各不相同hh b是一道数学题#xff0c;过程有点…hh第一次记录cf。
复盘 ab题目比较清晰只开了这两题后面看了下cd即使开了翻译也看不懂题目是什么意思最后放弃睡觉了。。 a是一道思维题翻了下别人写的发现大家写的各不相同hh b是一道数学题过程有点繁琐需要细心。 Problem - A - Codeforces
数学巧思 题意 仍然是t组测试哈给定一个数n问是否有abcna%3b%3c%3不为0如果存在输出yes并输出这三个数否则输出no。 设a3k1d1b3k2d2c3k3d3 显然d1d2d3只能是1或2 那么我们就只需要对余数进行讨论就行了 比如给定1和2这两个数当然是满足条件的只需要n-3%3不为0就好了也就是n-33*k1或2k1 这一个条件不足以涵盖所有情况也就是只要还需要n-(3*k1)n-(3*k2)即覆盖余数为0,1,2这三种情况 #includebits/stdc.h
signed main()
{int t;std::cint;while(t--){int x;std::cinx;if((x-3)%3(x-3)!1(x-3)!2(x-3)0){std::coutYES\n1 2 x-3\n;continue;}if((x-5)%3(x-5)!1(x-5)!4(x-5)0){std::coutYES\n1 4 x-5\n;continue;}if((x-7)%3(x-7)!2(x-7)!5(x-7)0){std::coutYES\n2 5 x-7\n;continue;}std::coutNO\n;}return 0;
} 但其实经过分析可以发现只需要上面两个if语句就够了n-3和n-5已经覆盖了所有情况。 常规循环 因为思路比较简单我就直接复制的别人的代码枚举前两个数范围是1-13然后对n-i-j进行判断就行。 #define ll long long
#includebits/stdc.h
using namespace std;void solve(){ll n;cinn;for(ll i1;i13;i){for(ll j1;j13;j){ll zn-i-j;if(z0 i!j i!z j!z i%3!0 j%3!0 z%3!0){coutYes\n;couti j z\n;return;}}}coutNo\n;
}int main(){ll n;cinn;while(n--)solve();
}
Problem - B - Codeforces 题目仍然是t个测试点 题目给出三个点pab要求以a和b分别为圆心以w为半径做两个圆 要求o到p在圆上有路 思路分析 #includebits/stdc.h
using namespace std;
int dis(int x1,int y1,int x2,int y2)
{return (x1-x2)*(x1-x2)(y1-y2)*(y1-y2);
}
signed main()
{int t;std::cint;while(t--){int p1,p2;int x1,y1;int x2,y2;std::cinp1p2x1y1x2y2;//只要源点和p都在圆上 //double s1min(max(dis(p1,p2,x1,y1),dis(0,0,x1,y1)),max(dis(p1,p2,x2,y2),dis(0,0,x2,y2)));double hh(double)dis(x1,y1,x2,y2)/4;double s2max(hh,(double)min(max(dis(p1,p2,x1,y1),dis(0,0,x2,y2) ),max(dis(p1,p2,x2,y2),dis(0,0,x1,y1))));double dmin(s1,s2);dsqrt(d);printf(%.10f\n,d);}return 0;
}