传送门

文章目录

  • 题意:
  • 思路:

题意:

给你d,modd,modd,mod,让你求能构造出如下序列aaa的个数模modmodmod:

思路:

首先可以发现aaa的长度不能超过log2dlog_2dlog2​d,因为如果存在两个aaa的二进制位数相同的话,那么最高位异或之后一定会变成0,那么bbb一定小于之前的某个bbb,所以我们就看每个二进制位选或者不选来组合出来答案即可,比如当前二进制位是iii,那么他的方案就是(1<<(i+1))−(1<<i)+1(1<<(i+1))-(1<<i)+1(1<<(i+1))−(1<<i)+1,要注意到最后一位二进制的时候,需要特判一下n−(1<<i)+2n-(1<<i)+2n−(1<<i)+2,累乘起来就好辣。

// Problem: D. Dreamoon Likes Sequences
// Contest: Codeforces - Codeforces Round #631 (Div. 2) - Thanks, Denis aramis Shitov!
// URL: https://codeforces.com/contest/1330/problem/D
// Memory Limit: 256 MB
// Time Limit: 1000 ms
//
// Powered by CP Editor (https://cpeditor.org)//#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4.1,sse4.2,avx,avx2,popcnt,tune=native")
//#pragma GCC optimize(2)
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<map>
#include<cmath>
#include<cctype>
#include<vector>
#include<set>
#include<queue>
#include<algorithm>
#include<sstream>
#include<ctime>
#include<cstdlib>
#define X first
#define Y second
#define L (u<<1)
#define R (u<<1|1)
#define pb push_back
#define mk make_pair
#define Mid (tr[u].l+tr[u].r>>1)
#define Len(u) (tr[u].r-tr[u].l+1)
#define random(a,b) ((a)+rand()%((b)-(a)+1))
#define db puts("---")
using namespace std;//void rd_cre() { freopen("d://dp//data.txt","w",stdout); srand(time(NULL)); }
//void rd_ac() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//AC.txt","w",stdout); }
//void rd_wa() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//WA.txt","w",stdout); }typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int,int> PII;const int N=1000010,INF=0x3f3f3f3f;
const double eps=1e-6;int n,mod;
LL ans=1;int main()
{//  ios::sync_with_stdio(false);
//  cin.tie(0);int _; cin>>_;while(_--) {cin>>n>>mod;int d=(int)log2(n);ans=1%mod;for(int i=0;i<=d;i++) {if(i<d) ans*=((1ll<<(i+1))-(1ll<<i)+1)%mod,ans%=mod;else ans*=(n-(1ll<<i)+2)%mod,ans%=mod;}ans-=1; ans+=mod; ans%=mod;cout<<ans<<endl;}return 0;
}
/**/

Codeforces Round #631 (Div. 2) D. Dreamoon Likes Sequences 思维 + 组合数学相关推荐

  1. Codeforces Round #631 (Div. 2) C. Dreamoon Likes Coloring 构造

    传送门 文章目录 题意: 思路: 题意: 思路: 针灸思维不行,数据结构来凑呗. 一开始做的时候想简单了,一直wawawa,后来想到了hackhackhack样例,开始换思路构造,结果死活想不到O(m ...

  2. szu cf集训Codeforces Round #631 (Div. 2)A ~ D[贪心,数据结构,思维,dp]

    A. Dreamoon and Ranking Collection 题意:题意不太好理解.简单来讲就是,给出一组数,能从1最多数到几,不够的用数来填,最多填x次.思路:代码很简单-先出现过的地方肯定 ...

  3. Codeforces Round #590 (Div. 3) E. Special Permutations 差分 + 思维

    传送门 文章目录 题意: 思路: 题意: 思路: 直接考虑比较难想,这种公式题基本都是将部分答案看成一个整体,考虑xi,xi+1x_i,x_{i+1}xi​,xi+1​的贡献的. 假设当前的xi=x, ...

  4. Codeforces Round #726 (Div. 2) F. Figure Fixing 二分图 + 思维

    传送门 文章目录 题意: 思路 题意: 给你一张nnn个点mmm条边的图,每个点都有一个当前值aia_iai​,目标值bib_ibi​,每次可以选择一条边(i,j)(i,j)(i,j),将ai,aja ...

  5. Codeforces Round #598 (Div. 3) F. Equalizing Two Strings 思维 + 逆序对

    传送门 文章目录 题意: 思路: 题意: 给你两个长度为nnn的串a,ba,ba,b,每次可以同时翻转a,ba,ba,b中任意一段长度为L(1≤L≤n)L(1\le L\le n)L(1≤L≤n)的子 ...

  6. Codeforces Round #636 (Div. 3) D. Constant Palindrome Sum 思维 + 差分

    传送门 文章目录 题意: 思路: 题意: 思路: 首先有一个显然的性质就是每组操作最多不会超过两次. 很容易想到一个很暴力的思路,就是枚举x∈[1,2∗k]x \in [1,2*k]x∈[1,2∗k] ...

  7. Codeforces Round #620 (Div. 2) E. 1-Trees and Queries 思维 + LCA

    传送门 文章目录 题意 思路: 题意 思路: 照例,先考虑不加边怎么做.由于可以经过重复的边或点,设aaa与bbb之间长度为lenlenlen,那么需要len<=klen<=klen< ...

  8. Codeforces Round #631 (Div. 2) - Thanks, Denis aramis Shitov! E. Drazil Likes Heap(贪心+模拟)

    题目链接 思路:这个题就是阅读理解题,能理解题意的话应该是秒出的那种,着重解释一下题意. 题意是给定一棵完全二叉树(共2^h-1个结点),这个二叉树满足大顶堆的性质也就是父亲结点a[i]大于等于儿子结 ...

  9. Codeforces Round #FF (Div. 1) A. DZY Loves Sequences

    原题链接:http://codeforces.com/problemset/problem/446/A 题意:给一个长度为n的序列,最多可以修改一个位置的数,求最长连续上升子序列. 题解:当a[i+1 ...

最新文章

  1. c 宏定义用法#define
  2. 李开复写给中国学生的七封信之给中国学生的第七封信——21世纪最需要的7种人才续1...
  3. 最简单实现多线程的方法(Thread)
  4. springMVC 过滤器与拦截器的执行顺序问题。springboot一样参考
  5. BestCoder Round #85
  6. OpenVINO InferenceEngine之CNNNet、CNNLayer、Blob介绍
  7. LeetCode 3 Longest Substring Without Repeating Characters 区间,想法 难度:1
  8. mysql has gone away 自动连接_MySQL-出现 MySQL server has gone away 原因和解决方法
  9. [转] Batch Normalization
  10. 蓝桥杯 剪邮票(dfs枚举 + bfs)
  11. 任意多边形的面积(转)
  12. 一款GaN HEMT内匹配功率放大器设计过程详解
  13. 人机交互之Web界面设计与CNN大作业
  14. 【BZOJ3654】图样图森破【最长路】【后缀数组】【ST表】【回文串】【LCP】
  15. 我看肖老师的《明日世界-云端计算下的程序设计需求》视频时,做的简单笔记
  16. Modem相关知识__2019.12.03
  17. VHD轉換VHDX格式
  18. 电脑英语Computer English
  19. SQL回炉重造07_函数
  20. 漫威金刚狼男主弃影炒币了?

热门文章

  1. mysql查询今天_昨天_7天_近30天_本月_上一月 数据_mysql查询今天、昨天、7天、近30天、本月、上一月 数据...
  2. 程序员崩溃的40个瞬间!!!
  3. mysql null值和空格_MySQL中NULL与空字符串空格问题
  4. apk源码查看工具_如何查看Linux命令工具的源码?
  5. oracle数据库查看size,[oracle] 查看oracle数据库表空间使用率,定位数据size较大对象...
  6. acwing2060. 奶牛选美(bfs)
  7. 算法题目——最长连续序列
  8. 「软件项目管理」一文详解软件配置管理计划
  9. c语言 大数相加,c/c++开发分享C语言计算大数相加的方法
  10. java 变成题_Java 习题8 参考答案及解析