首页 > 其他分享 >AT_abc134_d Preparing Boxes题解

AT_abc134_d Preparing Boxes题解

时间:2023-10-18 13:14:21浏览次数:37  
标签:le int 题解 Boxes abc134 序列

简述题意

这什么破翻译,看了
AtCoder 的英文才看懂。

给定一个长度为 \(n\) 序列 \(a\),要求构造一个数列 \(b\),使得对于任意 \(i\),满足:

  1. \(1 \le i \le n\)

  2. 将 \(b\) 序列下标为 \(i\) 的倍数的值相加使得这个总和模 2 等于 \(a_i\)。

求序列 \(b\) 中值为 1 的个数与值为 1 的个数的位置。

解题思路

考虑可以逆序构造序列 \(b\),因为判断条件只可能用到后面的值。
如果不满足条件 2,则让 \(b_i\) 等于 1,即可满足,并且计入答案;否则为 0.

AC CODE

#include<bits/stdc++.h>
using namespace std;
#define int long long
vector<int>ans;
int n,a[200005],cnt=0,b[200005];
signed main(){
	scanf("%lld",&n);
	for(int i=1;i<=n;i++)scanf("%lld",a+i);
	for(int i=n;i>=1;i--){
		int tmp=0;
		for(int j=i;j<=n;j+=i){
			tmp+=b[j];
		}
		if(tmp%2!=a[i]){
			b[i]=1;
			ans.push_back(i);
		}
	}
	printf("%lld\n",ans.size());
	for(auto x:ans){
		printf("%lld ",x);
	}
	return 0;
}

标签:le,int,题解,Boxes,abc134,序列
From: https://www.cnblogs.com/xdh2012/p/17771824.html

相关文章

  • P9700题解
    思路看数据范围,发现范围很小,直接用搜索。搜索时枚举每个点,如果有棋子就枚举方向,如果这个方向合法,则将剩余棋子数减一,继续搜索。搜索时参数只需要传当前棋子数就行了。有以下几点需要注意多组数据每次需要初始化。判断是否合法时要注意。每次记得回溯棋子。ACCODE......
  • SP26719题解
    考虑动态规划。思路设\(dp_{i,j}\)为\((1,1)\)到\((i,j)\)的方案数,而如果要到这个点,肯定是从左边和上边来。所以递推公式为:\(dp_{i,j}=dp_{i,j-1}+dp_{i-1,j}\)。预处理:将横或纵坐标为1的点赋值为1,因为到达这些点的只有一种方法。注意:每次需要清零数组。ACC......
  • CF1873B题解
    这题其实可以数学方法差小积大解决。差越小积越大,那肯定是让最小的数加一啦。将所有数的积除以最小值再乘上最小值加一。#include<bits/stdc++.h>usingnamespacestd;signedmain(){ intT; cin>>T; while(T--){ longlongcnt=0,n,a[10],minn=LONG_LONG_MAX,ans=1; c......
  • CF1868C Travel Plan 题解
    原题翻译发现所有长度相同的简单路径的权值可能情况相同,且最长的简单路径长度为\(O(\logn)\)级别,考虑维护所有长度的简单路径在一棵树上出现的次数,每种简单路径的权值在所有树上出现的次数,相乘即使答案。我们考虑长度为\(x\)的路径对答案的贡献,考虑枚举这条路径的贡献\(......
  • 【前缀和优化 dp】CF1542E2 Abnormal Permutation Pairs (hard version) 题解
    CF1542E2首先时间复杂度肯定是\(\mathcal{O}(n^3)\)的。容易想到先枚举最长公共前缀,然后枚举\(p_{len+1}\)和\(q_{len+1}\),再枚举逆序对数进行统计。令\(f_{i,j}\)表示有\(j\)个逆序对的\(i\)阶排列的个数。易得转移\(f_{i,j}=\sum\limits_{k=\max(j-i+1,0)}^{j}f......
  • 【根号分治】P9212 「蓬莱人形」 题解
    P9212看到除法相关容易想到根号分治。先对\(x,y\)进行讨论,不妨令\(0\lex,y<m\)。\(x<y\)时,当满足\(a_i+y<m\)或\(a_i+x\gem\)时,即当\(a_i<m-y\)或\(a_i\gem-x\)满足\((a_i+x)\bmodm<(a_i+y)\bmodm\),即\(a_i\bmodm\in[0,m-y-1]\bigcup[m-x,m......
  • 【dp】【竞赛图的性质】ARC163D Sum of SCC 题解
    ARC163D发现这个竞赛图一定能被分为两个集合\(A\),\(B\)。满足\(\forallu\inA,v\inB\),均有\(u\tov\inE\)。答案就是划分这两个集合的方案数。证明:首先,竞赛图缩完点后一定是一条链,对强连通分量进行标号,满足编号小的强连通分量指向编号大的强连通分量。不妨令竞赛图\(G\)......
  • 【dp】【进制】P3464 [POI2007] WAG-Quaternary Balance 题解
    P3464显然的,先将原数变为四进制的数。由于算的是进位/不进位的代价最小值和方案数,容易想到dp。这里假定该四进制数是从高位到低位的,顺序显然是由低位到高位。令\(f_{i,0/1}\)表示第\(i\)位进/不进位的最小代价,\(g_{i,0/1}\)表示的是最小代价下的方案数。转移是简单的......
  • [题解] CF1790E - XOR Tree
    CF1790E-XORTree题意给定一颗无根树,在可以改变任意一个点的点权操作基础上,让树上任意简单路径的异或和不为\(0\),问最少需要多少次操作。思路假设某个点为根,设\(pre_x\)为\(x\)点到根的树上前缀异或和,\(a_x\)为\(x\)的点权,则\(x\)和\(y\)之间简单路径的异或和......
  • [题解]CF514D R2D2 and Droid Army
    思路首先,可以转化题意,找到一个极长的区间\([l,r]\)使得(其中\(mx_i\)表示\([l,r]\)区间中属性\(i\)的最大值):\[\sum_{i=1}^{m}mx_i\leqk\]显然对于这个东西当\(l,r\)发生移动时,是极其好维护的,所以想到双指针。因为\(m\leq5\),所以我们可以直接开\(m\)个ST表......