Codeforces Round #631 (Div. 2) D. Dreamoon Likes Sequences 思维 + 组合数学
传送门
文章目录
- 题意:
- 思路:
题意:
给你d,modd,modd,mod,让你求能构造出如下序列aaa的个数模modmodmod:
思路:
首先可以发现aaa的长度不能超过log2dlog_2dlog2d,因为如果存在两个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 思维 + 组合数学相关推荐
- Codeforces Round #631 (Div. 2) C. Dreamoon Likes Coloring 构造
传送门 文章目录 题意: 思路: 题意: 思路: 针灸思维不行,数据结构来凑呗. 一开始做的时候想简单了,一直wawawa,后来想到了hackhackhack样例,开始换思路构造,结果死活想不到O(m ...
- szu cf集训Codeforces Round #631 (Div. 2)A ~ D[贪心,数据结构,思维,dp]
A. Dreamoon and Ranking Collection 题意:题意不太好理解.简单来讲就是,给出一组数,能从1最多数到几,不够的用数来填,最多填x次.思路:代码很简单-先出现过的地方肯定 ...
- Codeforces Round #590 (Div. 3) E. Special Permutations 差分 + 思维
传送门 文章目录 题意: 思路: 题意: 思路: 直接考虑比较难想,这种公式题基本都是将部分答案看成一个整体,考虑xi,xi+1x_i,x_{i+1}xi,xi+1的贡献的. 假设当前的xi=x, ...
- Codeforces Round #726 (Div. 2) F. Figure Fixing 二分图 + 思维
传送门 文章目录 题意: 思路 题意: 给你一张nnn个点mmm条边的图,每个点都有一个当前值aia_iai,目标值bib_ibi,每次可以选择一条边(i,j)(i,j)(i,j),将ai,aja ...
- 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)的子 ...
- Codeforces Round #636 (Div. 3) D. Constant Palindrome Sum 思维 + 差分
传送门 文章目录 题意: 思路: 题意: 思路: 首先有一个显然的性质就是每组操作最多不会超过两次. 很容易想到一个很暴力的思路,就是枚举x∈[1,2∗k]x \in [1,2*k]x∈[1,2∗k] ...
- Codeforces Round #620 (Div. 2) E. 1-Trees and Queries 思维 + LCA
传送门 文章目录 题意 思路: 题意 思路: 照例,先考虑不加边怎么做.由于可以经过重复的边或点,设aaa与bbb之间长度为lenlenlen,那么需要len<=klen<=klen< ...
- Codeforces Round #631 (Div. 2) - Thanks, Denis aramis Shitov! E. Drazil Likes Heap(贪心+模拟)
题目链接 思路:这个题就是阅读理解题,能理解题意的话应该是秒出的那种,着重解释一下题意. 题意是给定一棵完全二叉树(共2^h-1个结点),这个二叉树满足大顶堆的性质也就是父亲结点a[i]大于等于儿子结 ...
- Codeforces Round #FF (Div. 1) A. DZY Loves Sequences
原题链接:http://codeforces.com/problemset/problem/446/A 题意:给一个长度为n的序列,最多可以修改一个位置的数,求最长连续上升子序列. 题解:当a[i+1 ...
最新文章
- c 宏定义用法#define
- 李开复写给中国学生的七封信之给中国学生的第七封信——21世纪最需要的7种人才续1...
- 最简单实现多线程的方法(Thread)
- springMVC 过滤器与拦截器的执行顺序问题。springboot一样参考
- BestCoder Round #85
- OpenVINO InferenceEngine之CNNNet、CNNLayer、Blob介绍
- LeetCode 3 Longest Substring Without Repeating Characters 区间,想法 难度:1
- mysql has gone away 自动连接_MySQL-出现 MySQL server has gone away 原因和解决方法
- [转] Batch Normalization
- 蓝桥杯 剪邮票(dfs枚举 + bfs)
- 任意多边形的面积(转)
- 一款GaN HEMT内匹配功率放大器设计过程详解
- 人机交互之Web界面设计与CNN大作业
- 【BZOJ3654】图样图森破【最长路】【后缀数组】【ST表】【回文串】【LCP】
- 我看肖老师的《明日世界-云端计算下的程序设计需求》视频时,做的简单笔记
- Modem相关知识__2019.12.03
- VHD轉換VHDX格式
- 电脑英语Computer English
- SQL回炉重造07_函数
- 漫威金刚狼男主弃影炒币了?
热门文章
- mysql查询今天_昨天_7天_近30天_本月_上一月 数据_mysql查询今天、昨天、7天、近30天、本月、上一月 数据...
- 程序员崩溃的40个瞬间!!!
- mysql null值和空格_MySQL中NULL与空字符串空格问题
- apk源码查看工具_如何查看Linux命令工具的源码?
- oracle数据库查看size,[oracle] 查看oracle数据库表空间使用率,定位数据size较大对象...
- acwing2060. 奶牛选美(bfs)
- 算法题目——最长连续序列
- 「软件项目管理」一文详解软件配置管理计划
- c语言 大数相加,c/c++开发分享C语言计算大数相加的方法
- java 变成题_Java 习题8 参考答案及解析