Please sign in first.
Submission #54119205
Source Code Expand
#pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#define _GLIBCXX_DEBUG
// kyopuro2.cpp : このファイルには 'main' 関数が含まれています。プログラム実行の開始と終了がそこで行われます。
//
#include <iostream>
#include <iomanip>
#include <cmath>
#include <string>
#include <algorithm>
#include <ctime>
#include <functional>
#include <vector>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <tuple>
#include <cassert>
#include <bitset>
#include <sstream>
#include <stdlib.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
#define eb emplace_back
const long long INF = 1LL << 60;
const long long MOD = 998244353;
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return true; } return false; }
template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return true; } return false; }
using ll = long long;
using ch = char;
using st = string;
using vi = vector<int>;
using vll = vector<ll>;
using vb = vector<bool>;
using vc = vector<ch>;
using vs = vector<st>;
using vvi = vector<vi>;
using vvll = vector<vll>;
using vvb = vector<vb>;
using vvc = vector<vc>;
using vvs = vector<vs>;
using P = pair<int, int>;
using Pll = pair<ll, ll>;
using vP = vector <P>;
using vPll = vector<Pll>;
using p_qi = priority_queue<int>;
// 深さ優先探索
vector<bool> seen(300009, false);
void dfs(const vvll& G, ll v, ll& c, ll& e) {
c++;
seen[v] = true; // v を訪問済にする
// v から行ける各頂点 next_v について
for (auto next_v : G[v]) {
e++;
if (seen[next_v]) continue;
dfs(G, next_v, c, e); // 再帰的に探索
}
}
///
ll powpow(ll x, ll n) {
if (n == 0) return 1;
ll val = powpow(x, n / 2);
val *= val;
if (n % 2 == 1) val *= x;
return val;
}
int dx[] = { -1,0,1,0 }; int dy[] = { 0,1,0,-1 };
char ldru[] = { 'L','D','R','U' };
int main() {
vll twos(63);
twos[0] = 1;
rep(g, 62) {
twos[g + 1] = twos[g] * 2;
}
ll N, M;
cin >> N >> M;
bitset<64> bs1(M);
ll ans = 0;
ll o = 0;
rep(i, 62) {
ll x = (twos[i+1]);
ll y = (twos[i]);
if (bs1[i]) {
ans += (N / x) * y;
ans %= MOD;
ans += max(o, (N % x) - y + 1);
ans %= MOD;
}
}
cout << ans;
}
// プログラムの実行: Ctrl + F5 または [デバッグ] > [デバッグなしで開始] メニュー
// プログラムのデバッグ: F5 または [デバッグ] > [デバッグの開始] メニュー
// 作業を開始するためのヒント:
// 1. ソリューション エクスプローラー ウィンドウを使用してファイルを追加/管理します
// 2. チーム エクスプローラー ウィンドウを使用してソース管理に接続します
// 3. 出力ウィンドウを使用して、ビルド出力とその他のメッセージを表示します
// 4. エラー一覧ウィンドウを使用してエラーを表示します
// 5. [プロジェクト] > [新しい項目の追加] と移動して新しいコード ファイルを作成するか、[プロジェクト] > [既存の項目の追加] と移動して既存のコード ファイルをプロジェクトに追加します
// 6. 後ほどこのプロジェクトを再び開く場合、[ファイル] > [開く] > [プロジェクト] と移動して .sln ファイルを選択します
Submission Info
| Submission Time | |
|---|---|
| Task | D - Masked Popcount |
| User | michael_80 |
| Language | C++ 20 (Clang 16.0.6) |
| Score | 400 |
| Code Size | 3714 Byte |
| Status | AC |
| Exec Time | 1 ms |
| Memory | 3736 KiB |
Compile Error
./Main.cpp:1:13: warning: unknown pragma ignored [-Wunknown-pragmas]
#pragma GCC target("avx2")
^
./Main.cpp:2:13: warning: unknown pragma ignored [-Wunknown-pragmas]
#pragma GCC optimize("O3")
^
./Main.cpp:3:13: warning: unknown pragma ignored [-Wunknown-pragmas]
#pragma GCC optimize("unroll-loops")
^
./Main.cpp:33:17: warning: unused variable 'INF' [-Wunused-const-variable]
const long long INF = 1LL << 60;
^
4 warnings generated.
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt |
| All | sample_01.txt, sample_02.txt, sample_03.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| sample_01.txt | AC | 1 ms | 3576 KiB |
| sample_02.txt | AC | 1 ms | 3592 KiB |
| sample_03.txt | AC | 1 ms | 3704 KiB |
| test_01.txt | AC | 1 ms | 3728 KiB |
| test_02.txt | AC | 1 ms | 3660 KiB |
| test_03.txt | AC | 1 ms | 3560 KiB |
| test_04.txt | AC | 1 ms | 3556 KiB |
| test_05.txt | AC | 1 ms | 3564 KiB |
| test_06.txt | AC | 1 ms | 3604 KiB |
| test_07.txt | AC | 1 ms | 3564 KiB |
| test_08.txt | AC | 1 ms | 3668 KiB |
| test_09.txt | AC | 1 ms | 3496 KiB |
| test_10.txt | AC | 1 ms | 3592 KiB |
| test_11.txt | AC | 1 ms | 3532 KiB |
| test_12.txt | AC | 1 ms | 3592 KiB |
| test_13.txt | AC | 1 ms | 3608 KiB |
| test_14.txt | AC | 1 ms | 3564 KiB |
| test_15.txt | AC | 1 ms | 3564 KiB |
| test_16.txt | AC | 1 ms | 3596 KiB |
| test_17.txt | AC | 1 ms | 3524 KiB |
| test_18.txt | AC | 1 ms | 3604 KiB |
| test_19.txt | AC | 1 ms | 3564 KiB |
| test_20.txt | AC | 1 ms | 3468 KiB |
| test_21.txt | AC | 1 ms | 3660 KiB |
| test_22.txt | AC | 1 ms | 3608 KiB |
| test_23.txt | AC | 1 ms | 3604 KiB |
| test_24.txt | AC | 1 ms | 3592 KiB |
| test_25.txt | AC | 1 ms | 3592 KiB |
| test_26.txt | AC | 1 ms | 3564 KiB |
| test_27.txt | AC | 1 ms | 3592 KiB |
| test_28.txt | AC | 1 ms | 3524 KiB |
| test_29.txt | AC | 1 ms | 3656 KiB |
| test_30.txt | AC | 1 ms | 3668 KiB |
| test_31.txt | AC | 1 ms | 3528 KiB |
| test_32.txt | AC | 1 ms | 3484 KiB |
| test_33.txt | AC | 1 ms | 3736 KiB |
| test_34.txt | AC | 1 ms | 3732 KiB |
| test_35.txt | AC | 1 ms | 3528 KiB |
| test_36.txt | AC | 1 ms | 3560 KiB |
| test_37.txt | AC | 1 ms | 3732 KiB |
| test_38.txt | AC | 1 ms | 3536 KiB |
| test_39.txt | AC | 1 ms | 3664 KiB |
| test_40.txt | AC | 1 ms | 3668 KiB |
| test_41.txt | AC | 1 ms | 3464 KiB |
| test_42.txt | AC | 1 ms | 3592 KiB |
| test_43.txt | AC | 1 ms | 3592 KiB |
| test_44.txt | AC | 1 ms | 3560 KiB |
| test_45.txt | AC | 1 ms | 3592 KiB |
| test_46.txt | AC | 1 ms | 3660 KiB |