首页 > 其他分享 >POJ3252 Round Numbers

POJ3252 Round Numbers

时间:2022-11-25 17:58:22浏览次数:57  
标签:int lim sum zero ones zeros Numbers POJ3252 Round

终于一遍就写对了. 第一次没有注意读题导致了一个没有注意到什时候要开始统计.

Code

#include <iostream>
#include <string>
#define int long long
using namespace std;
#define F(i, a, b) for(int i=(a); i<=(b);i++)
#define Fd(i, a, b) for(int i=(a);i>=(b);i--)

int f[60][60][60][3][3];
int num[60];
int dp(int x, int zeros, int ones, int zero, int lim){
	#define rem f[x][zeros][ones][zero][lim]
	if(x==0) {
		if(zeros >= ones){
			return 1;
		}else{
			return 0;
		}
	}
	if( rem != -1 ) return rem;
	int sum = 0; int up = lim ? num[x]:1;
	F(i, 0, up){
		if(i==0){
			if(zero ==0 )
			sum += dp(x-1, zeros + 1, ones, (zero && (i==0)), (lim && (i==up)));
			else sum += dp(x-1, zeros, ones, (zero && (i==0)), (lim && (i==up)));
		}
		else if(i==1) sum += dp(x-1, zeros, ones + 1, (zero && (i==0)), (lim && (i==up)));
	}
	rem = sum;
	return sum;
}

int solve(int x){
	memset(f,-1,sizeof f);
    int pos=0;
    while(x){
        num[++pos]=x%2;
        x/=2;
    }
    return dp(pos,0,0,1,1);
}

signed main(){
	int n, m; cin>>n>>m;
	cout<<solve(m)-solve(n-1)<<endl;
}

标签:int,lim,sum,zero,ones,zeros,Numbers,POJ3252,Round
From: https://www.cnblogs.com/augpath/p/16925892.html

相关文章

  • Codeforces Round #615 (Div. 3) E
    E.ObtainaPermutation我们显然可以按列来看对于每一列我们发现我们求的就是一个模式串与模板串的最大匹配+位移贡献因为模板串肯定是不同元素我们直接对于模式串......
  • Public NOIP Round #4(Div. 1) 题解
    T1:容易发现每种药品之间互不影响,对每种药品分别计算,对于它所涉及到的区间开个vector存下来,离散化之后差分,然后前缀和,数出只有它一个线段覆盖的段即可。时间复杂度\(\m......
  • Codeforces Round #613 (Div. 2) D
    D.Dr.EvilUnderscores看完题发现是异或不难按位考虑观察样例发现好像要是只要是一个分支的时候就可以为消除这一位的影响我们直接建出字典树发现要是该位只有一个......
  • [数学记录][sosdp]CF449D Jzzhu and Numbers
    前几天做arc时连做两道高维前缀和,今天去看dp题单时发现这东西居然叫sosdp,来刷一下板子。粘一篇找到的blog,感觉引入那里非常自然!linktoCF|linktoLuogu给......
  • Codeforces Round #829 (Div. 2)
    A.TechnicalSupport#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefpair<ll,ll>pll;constllN=2e5+10;constllinf=1e18;constl......
  • Codeforces Round #418 (Div. 2) D. An overnight dance in discotheque 题解
    圆由于没有相交,之间的关系要么毫无关系,要么就是包含,所以能形成树。直接包含的就是父节点。如果只有一组,不分前半夜后半夜的话,那么舒适度就是每棵树的根节点(深度为0)面积......
  • FileNotFoundError: No file './飞机大战/res/images/background.png' found in worki
    问题某飞机大战代码弄好之后在VSCode中运行不报错,但是Pyinstaller打包之后报错解决FileNotFoundError:Nofile'./飞机大战/res/images/background.png'foundinwor......
  • Codeforces Round #621 (Div. 1 + Div. 2) D
    D.CowandFields对于每个点我们可以通过两次bfs求出他离1最近的距离和离n最近的距离对于连边就是让d1[i]+d2[j]+1去更新最短路我们要让d1[i]+d2[j]+1最大我们先直......
  • Codeforces Round #771 (Div. 2) E Colorful Operations
    ColorfulOperations珂朵莉树+树状数组||线段树单独维护点当前的值\(val\)和当前颜色的值\(tag\)这样就可以分开维护颜色和点的值,把复杂的操作\(2\)变成\(O(......
  • CodeTON Round 3【杂题】
    C.ComplementaryXOR给定两个长度均为\(n\)的\(\tt{01}\)串\(a,b\),你可以使用下面这种操作:选择两个下标\(l,r(1\lel\ler\len)\)。对于所有的\(i\in[l,r]\),......