首页 > 其他分享 >CF-937(D,E)

CF-937(D,E)

时间:2024-04-03 23:22:54浏览次数:18  
标签:int CF tp -- while len 937 define

CF-937

在补题……

D

分析

我们发现这些因子都是二进制形式的十进制数,n的范围是$1e5$,16的二进制是$10000$,于是可以枚举1~16,把这些因子预处理出来,对于每个n就枚举因子再作除,看剩下的数每位是不是只有0与1

代码

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
#define db(x) cout<<x<<" "<<endl;
#define _db(a,n) for(int i=1;i<=n;i++) cout<<a[i]<<" ";cout<<endl;
#define mem(a) memset(a,0, sizeof(a))
#define rep(i,l,r) for(int i=l;i<=r;i++)
#define per(i,r,l) for(int i=r;i>=l;i--)
int s[16],b[33];
void solve(){
	int n;cin>>n;
	int tp=n,f=0;
	while(tp){
		if(tp%10>1) f=1;
		tp/=10;
	}
	if(f){
		rep(i,2,16){
			while(n%b[i]==0){
				n/=b[i];
			}
		}
		int tp=n,ff=1;
		while(tp){
			if(tp%10>1) ff=0;
			tp/=10;
		}
		if(ff) cout<<"YES";
		else cout<<"NO";		
	}
	else cout<<"YES";
	cout<<endl;
}
signed main()
{
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
	int e=0;
	rep(i,1,32){//预处理因子
		if(i&1){
			int x=i,res=0,k=0;
			while(x){
				s[k++]=x%2;
				x/=2;
			}
			per(j,k,0){
				res=res*10+s[j];
			}
			b[++e]=res;
		}
	}
    int t;cin>>t;while(t--)
    solve();
    return 0;
}

E

分析

因为所求长度一定是n的因子,我们可以暴力枚举长度$len$,再对遍历每个区间判断就行

操作

蒟蒻之前只会嵌套for循环把每个枚举到的对应区间取出来再遍历判断

标签:int,CF,tp,--,while,len,937,define
From: https://www.cnblogs.com/mono-4/p/18113700

相关文章

  • Codeforces Round 937 (Div. 4) D题(无脑做法)
    D.ProductofBinaryDecimals题目:提示:首先如果该数目都是1和0组成那肯定输出yes了,还有这个数如果是二进制的乘积也可以yes现在举个例子看看121=11x1114641=11x11x11x11显然也是yes,但是要如何做呢,下面介绍无脑做法。AC代码#include<bits/stdc++.h>usingnamespace......
  • cloudflare认识3(Typora结合picgo直接上传图片到CF)
    参考:https://juejin.cn/post/7259668331711152183在上一篇cloudflare认识2(picgo结合使用)  把picgo成功结合CF实现了图床功能后,为了后期用Typora写md方便,这回直接在Typora里面配置了picgo用来直接上传到CF上,具体操作如下按键组合ctrl+,进入设置选择“图像”,配置picgo路径最......
  • CF1909G Pumping Lemma 题解
    题目链接题目要求我们对合法三元组进行计数,直接做是困难的,因此考虑通过枚举确定一部分元素再进行判定求解,那我们固定什么呢?固定\(x\)和\(y+z\)的分界线没啥用,因此我们枚举确定\(S\)中\(x+y\)和\(z\)的分界线,这样能确定一长串\(y^{k-1}\)所在的区间。接着我们不难想......
  • CF490F Treeland Tour
    CF490FTreelandTour线段树合并考虑维护\(lis_{u,i}/lds_{u,i}\)当前子树\(u\)中以\(i\)结尾的上升子序列/下降子序列。考虑转移,实质上就是合并每个儿子的信息,用线段树合并即可。考虑如何统计答案,当枚举到儿子\(v\)时,维护答案分两种情况:选\(u\)点,那么就是前面的\(......
  • 状压dp板子(cf div4 #937)
    #include<bits/stdc++.h>usingnamespacestd;intn;vector<int>v[20];stringa[20],b[20];booldp[500010][20];voiddfs(ints,intnow){dp[s][now]=true;for(autonxt:v[now]){if(s&(1<<nxt))continue;......
  • CF1935D Exam in MAC 题解
    ExaminMAC题意\(t\)组数据。给定一个大小为\(n\)的集合\(s\)和一个整数\(c\),保证\(0\leqslants_i\leqslantc(1\leqslanti\leqslantn)\)。求有多少对整数数对\((x,y)\),满足:\(0\leqslantx\leqslanty\leqslantc\)。\(x+y\notins\)且\(y-x\not......
  • 「杂题乱刷」CF74E
    链接妙妙构造题。很容易可以看出要构造出一种可以交换相邻两格数的操作。这部分可以写个爆搜找到规律。然后就AC了。代码也不长。点击查看代码/*Tips:你数组开小了吗?你MLE了吗?你觉得是贪心,是不是该想想dp?一个小时没调出来,是不是该考虑换题?*/#include<bits/stdc++......
  • CCF CSP模拟真题解答示例
    CCFCSP(CertifiedSoftwareProfessional)是中国计算机学会主办的软件能力认证考试,旨在评估参赛者在计算机科学和软件工程方面的基本知识和实践能力。请注意,以下解答仅作为示例,并非针对实际真题的准确答案。实际考试中的题目和答案可能会有所不同,因此建议参考官方发布的真题......
  • P9537 [YsOI2023] CF1764B
    洛谷传送门很棒的题。考察终态,可以发现最后输的人拥有的数的数量大概率是比赢家的数量少的。唯一的例外是等差数列,因为一个长为\(n\)的等差数列只能组成\(n-1\)个不同的差值。考虑若一开始先手就是一个公差为\(d\)的\(n+1\)项等差数列,后手是一个公差为\(d\)的\(......
  • CF19D(树套树)
    一道非常有意思的树套树。一眼一个空间\(n\logn\)时间\(n\log^{2}n\)的树套树,发现过不了。考虑优化。我们发现在中间线段树的地方可以不用平衡树存下来,只记最大值即可。然后我们对于每个横坐标开一颗fhq,然后分出\(\logn\)段区间,这些区间的最大值大于给定点的纵坐标。然后用......