質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

425閲覧

atcoder エイジングプログラミングコンテスト D問題が解けない。

goro_gnm

総合スコア42

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/07/14 13:43

編集2020/07/14 14:17

atcoder エイジングプログラミングコンテスト D問題が解けず、解説を見て実装してみたのですが、うまくいきません。

https://atcoder.jp/contests/aising2020/tasks/aising2020_d

いろいろ試行錯誤し、RE や TLE は回避できたのですが、WA が出てしまいます。

よければ下のコードで何がおかしいのか指摘してもらえるとうれしいです。よろしくお願いします。

c++

1#include<iostream> 2#include<stdio.h> 3#include<algorithm> 4#include<string> 5#include<map> 6#include<vector> 7#define rep(i, n) for(int i=0; i<n; i++) 8#define rep_one(i, n) for(int i=1; i<n; i++) 9using namespace std; 10typedef long long ll; 11 12int solve(int x, int count){ 13 if(x == -1) return 0; 14 if(x == 0) return count; 15 int y = x; 16 int pc = 0; 17 while(y != 0){ 18 pc += y%2; 19 y /= 2; 20 } 21 return solve(x%pc, count+1); 22} 23 24int main(){ 25 int n; cin >> n; 26 string x; cin >> x; 27 ll xp=0, xm=0; 28 int pc=0; 29 int x_list[n]; 30 rep(i, n){ 31 x_list[i] = (int)(x[i]-'0'); 32 pc += x_list[i]; 33 } 34 rep(i, n){ 35 xp = (xp*2)%(pc+1); 36 xp += x_list[i]; 37 if(pc-1 > 0){ 38 xm = (xm*2)%(pc-1); 39 xm += x_list[i]; 40 } 41 } 42 int xi[n]; 43 ll tmp=1; 44 rep(i, n) tmp *= 2; 45 rep(i, n){ 46 tmp /= 2; 47 if(x_list[i]){ 48 if(pc-1 < 1){xi[i]=-1; continue;} 49 xi[i] = (xm-tmp+pc-1)%(pc-1); 50 }else{ 51 xi[i] = (xp+tmp)%(pc+1); 52 } 53 } 54 rep(i, n){ 55 cout << solve(xi[i], 1) << endl; 56 } 57}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

C++

1 ll tmp=1; 2 rep(i, n) tmp *= 2;

ここがオーバーフローします

投稿2020/07/14 15:40

yudedako67

総合スコア2047

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

goro_gnm

2020/07/15 14:07

変な勘違いをし、オーバーフローはないと思っていました、ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問