Mocha and Railgun 本题是思路想错了,但是计算的方式是对的。还是应该回到长度最大是多少这个点来思考。点 Q绕原点旋转,从而使得电磁炮方向竖直向上(即 y 轴正方向),AB在OQ所对应的线段上。
代码:
#include
#define int long long
#define endl '\n'
using namespace std;
double r,x,y,d;
signed main()
{
int t;cin>>t;
while(t--){
scanf("%lf%lf%lf%lf",&r,&x,&y,&d);
double dis=sqrt(x*x+y*y);
double ans=r*((acos((dis-d)/r))-acos((dis+d)/r));
printf("%.12f\n",ans);
}
return 0;
}
B. Difference of GCDs 看错题意了,我说怎么检查为什么都是错。我以为l~r区间中每个数字只能使用一次,所以开了unordered_map来记录是否出现,强行给题目上了难度。。。可能是因为这段时间有难度的题目看多了
#include
#define int long long
#define endl '\n'
#define pii pair
using namespace std;
const int N=1e6+6;
unordered_mapmp;
int n,l,r,ans[N];
signed main()
{
int t;cin>>t;
while(t--)
{
mp.clear();
cin>>n>>l>>r;
int flag=0;
for(int i=1;i
关注
打赏