O(n)暴力即可
#include<bits/stdc++.h> using namespace std; typedef long long int LL; const LL N=1,M=1,MOD=1; int main() {//freopen("t.txt","r",stdin); int c,v0,v1,a,l; scanf("%d%d%d%d%d",&c,&v0,&v1,&a,&l); int nv=0,nr=v0; int ans=0; while(nv<c) { nv+=v0; ans++; if(nv>=c){printf("%d\n",ans);return 0;} v0+=a; v0=min(v0,v1); nv-=l; nv=max(0,nv); } return 0; }
B Mister B and Angle in Polygon
把正n边形放到圆内看,每个边的圆周角是相等的。剩下的,大家都懂。
做了这么多年题第一次碰到考平面几何的。。。。
#include <iostream> int main(){ int N,A; std::cin>>N>>A; std::cout<<"2 1 "<<std::max(3,std::min(N,(N*A+90)/180+2))<<std::endl; return 0; }
考虑对于每一个数可以预知在右移某些步数的范围内使答案变好,其余范围使答案不变或者变差,于是可以用线段树维护,然后求和。
但是n有100w 时限只有2s O(nlogn)可能超时 应该有O(n)的算法。
E Mister B and Beacons on Field
时间: 2024-10-04 13:35:02