QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#728296#9572. Bingoucup-team3646#Compile Error//C++202.9kb2024-11-09 14:55:282024-11-09 14:55:29

Judging History

你现在查看的是最新测评结果

  • [2024-11-09 14:55:29]
  • 评测
  • [2024-11-09 14:55:28]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;

using ll = long long;
#define rep(i, n) for(ll i = 0; i < n; i++)
#define rep2(i, l, r) for(ll i = l; i < r; i++)

using vi = vector<int>;
using vvi = vector<vi>;
using vll = vector<ll>;

/* ---- */
#define all(A) A.begin(), A.end()
#define elif else if
using pii = pair<ll, ll>;

bool chmin(auto &a, const auto &b) {return a > b ? a = b, 1 : 0;}
bool chmax(auto &a, const auto &b) {return a < b ? a = b, 1 : 0;}

struct IOSetup {
  IOSetup() {
    cin.tie(0);
    ios::sync_with_stdio(0);
  }
} iosetup;

template<class T>
void print(vector<T> a) {
  for (auto x : a) cerr << x << ' ';
  cerr << endl;
}

void print(auto x) {
  cerr << x << endl;
}


template<class Head, class... Tail>
void print(Head&& head, Tail&&... tail) {
  cerr << head << ' ';
  print(forward<Tail>(tail)...);
}

#include<atcoder/modint>
#include<atcoder/convolution>
using namespace atcoder;
using mint=modint998244353;

int table_size=500000;

vector<mint>fac(table_size+1,1),finv(table_size+1,1);

void calc_binom_table(){
  for(int i=2;i<=table_size;i++){
    fac[i]=fac[i-1]*i;
  }
  finv[table_size]=fac[table_size].inv();
  for(int i=table_size-1;i>=0;i--){
    finv[i]=finv[i+1]*(i+1);
  }
}

mint binom(int n,int k){
  if(n<0||k<0||k>n)return 0;
  return fac[n]*finv[k]*finv[n-k];
}

using ld=long double;
void solve(){
  int n;
  ld x0,y0,d,t;
  ld pi=atan2(1.0,1.0)*4.0;
  cin>>n>>x0>>y0>>d>>t;
  long double theta=atan2(y0,x0);
  vector<pair<ld,ld>> P(n);
  for(int i=0;i<n;i++){
    ld x,y;
    cin>>x>>y;
    P[i].first=cos(-theta)*x-sin(-theta)*y;
    P[i].second=sin(-theta)*x+cos(-theta)*y;
  }
  map<ld,int> th;
  vector<ld> IN(n),OUT(n);
  for(int i=0;i<n;i++){
    ld r=P[i].first*P[i].first+P[i].second*P[i].second;
    double intx=sqrt(r-d*d);
    ld phi=atan2(d,intx);
    ld psi=atan2(P[i].second,P[i].first);
    ld L=psi-phi;
    ld R=psi+phi;

    if(L<0.0)L+=2*pi;
    if(R<0.0)R+=2*pi;
    th[L]=1;
    th[R]=1;
    IN[i]=L;
    OUT[i]=R;
  }
  long long k = t / (2*pi);
  ld T=t-k*(2*pi);
  th[T]=1;
  int cnt=0;
  th[0]=1;
  th[2*pi]=1;
  vector<ld> realt;
  for(auto [key,val]:th){
    th[key]=cnt;
    realt.push_back(key);
    cnt++;
  }
  vector<int> D(cnt,0);
  for(int i=0;i<cnt;i++){
    int L=th[IN[i]];
    int R=th[OUT[i]];
    cout<<L<<" "<<R<<endl
      for(int p=L;p<R;p++){
        D[p]++;
      }
    }
    else{
      for(int p=L;p<cnt;p++){
        D[p]++;
      }
      for(int p=0;p<R;p++){
        D[p]++;
      }
    }
  }
  for(int i=0;i<cnt;i++)cout<<D[i]<<" \n";
  ld an=0;
  for(int i=0;i<cnt-1;i++){
    ld len=realt[i+1]-realt[i];
    if(D[i]>0){
      if(i<th[T])an+=len*(k+1);
      else an+=len*k;
    }
    
  }
  cout<<fixed<<setprecision(15)<<an<<endl;
}

int main(){
  calc_binom_table();

  solve();
}
ad

詳細信息

answer.code:44:9: fatal error: atcoder/modint: No such file or directory
   44 | #include<atcoder/modint>
      |         ^~~~~~~~~~~~~~~~
compilation terminated.