Welcome, Guest! Sign Up RSS

Clever Space

Friday, 11.22.2024
Main » 2013 » October » 11 » 【洛谷10.7模拟赛】偶数
7:05 AM
【洛谷10.7模拟赛】偶数

比赛时被卡了tot,结果拿了70

评测详情

编译成功

  • 测试点1:通过该数据点。得分10,耗时 0 ms,内存 1286 kb。
  • 测试点2:通过该数据点。得分10,耗时 15 ms,内存 1286 kb。
  • 测试点3:通过该数据点。得分10,耗时 0 ms,内存 1286 kb。
  • 测试点4:通过该数据点。得分10,耗时 0 ms,内存 1286 kb。
  • 测试点5:通过该数据点。得分10,耗时 15 ms,内存 1286 kb。
  • 测试点6:通过该数据点。得分10,耗时 0 ms,内存 1286 kb。
  • 测试点7:通过该数据点。得分10,耗时 0 ms,内存 1286 kb。
  • 测试点8:通过该数据点。得分10,耗时 0 ms,内存 1286 kb。
  • 测试点9:通过该数据点。得分10,耗时 0 ms,内存 1286 kb。
  • 测试点10:通过该数据点。得分10,耗时 0 ms,内存 1286 kb。
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<iostream>
#include<vector>
#include<set>
#include<map>
#include<string>
#include<algorithm>
#define FOR(i,a,b) for(i=(a);i<=(b);i++)
#define ROF(i,a,b) for(i=(a);i>=(b);i--)
#define pb push_back
#define mp make_pair
#define MOD 1000003
using namespace std;
typedef long long LL;
typedef long double LD;
LL power3(int x)
{
  if (x==0) return 1;
  if (x==1) return 3;
  LL tmp=power3(x/2)%MOD;
  if (x%2) return tmp*3%MOD*tmp%MOD;
  return tmp*tmp%MOD;
}
int a[301];
int main()
{
  ios::sync_with_stdio(false);
  LL n;
  cin>>n;
  LL tn=n;
  int i;
  int L=-1;
  while (tn) a[++L]=tn%2,tn/=2;
  LL ttn=n,tn1=n+1;
  if (ttn%2) tn1/=2;else ttn/=2;
  LL tot=(ttn%MOD)*(tn1%MOD);
  tot%=MOD;
  LL t=1;
  LL sum=0;
  ROF(i,L,0)
   if (a[i])
   {
     LL tt=power3(i)*t%MOD;
     sum=(sum+tt)%MOD;
     t=t*2%MOD;
   }
  LL ans=(tot-sum)%MOD;
  while (ans<0) ans+=MOD;
  cout<<ans<<endl;
  return 0;
}

Views: 426 | Added by: dhy0077 | Rating: 0.0/0
Total comments: 0
Only registered users can add comments.
[ Sign Up | Login ]