首页 > 其他分享 >【代码源 Div1 - 106】#456. 选数(抽屉原理) POJ2356

【代码源 Div1 - 106】#456. 选数(抽屉原理) POJ2356

时间:2023-02-09 15:03:48浏览次数:51  
标签:ma int 选数 sum cin 456 POJ2356 maxn 取值


problem

【代码源 Div1 - 106】#456. 选数(抽屉原理) POJ2356_取值

solution

  • 原本以为是01背包,但只能求出是否有解,没法求解
  • 对原数组求取模后的前缀和 sum ,则对于sum数组中的每个数,均位于[0,n - 1],共 n 种取值,而 sum[0 ~ n] 有n + 1 个数。
  • 根据抽屉原理,必定至少存在两个取值相同的数,设为l ,r,也就是说,sum[l] = sum[r],区间[l + 1,r]的和为零,就是答案。
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5+10;
int s[maxn];
int main(){
int n; cin>>n;
for(int i = 1; i <= n; i++){
int x; cin>>x;
s[i] = (s[i-1]+x)%n;
}
int l, r;
map<int,int>ma;
for(int i = 0; i <= n; i++){
if(!ma.count(s[i]))ma[s[i]] = i;
else{
l = ma[s[i]]+1; r = i;
break;
}
}
cout<<r-l+1<<"\n";
for(int i = l; i <= r; i++)cout<<i<<" ";
return 0;
}


标签:ma,int,选数,sum,cin,456,POJ2356,maxn,取值
From: https://blog.51cto.com/gwj1314/6047037

相关文章

  • POJ 1456 Supermarket (贪心+并查集优化)
    DescriptionAsupermarkethasasetProdofproductsonsale.Itearnsaprofitpxforeachproductx∈Prodsoldbyadeadlinedxthatismeasuredasanintegral......
  • 选数异或(思维)
    题意给定一个长度为\(n\)的数列\(A_1,A_2,\dots,A_n\)和一个非负整数\(x\),给定\(m\)次查询,每次询问能否从某个区间\([L,R]\)中选择两个下标不同的数使得他们的异或等于\(......
  • Luogu P8773 [蓝桥杯 2022 省 A] 选数异或
    https://www.luogu.com.cn/problem/P8773因为\(a\texttt{xor}b=c\)则\(a\texttt{xor}c=b\),对于\(a_i\)找到\(a_i\texttt{xor}x\)离其最近的位置,放在ST......
  • 选数异或
    问题描述给定一个长度为 �n 的数列 �1,�2,⋯,��A1​,A2​,⋯,An​ 和一个非负整数 �x,给定 �m 次查询,每次询问能否从某个区间 [�,�][l,r] 中选择两个数使得他......
  • P4568 [JLOI2011] 飞行路线
    分层图算法将图分为\(k\)层,层之间连权值为\(0\)的边,跑一遍dij就好了。目前已近学会了基本分层图建法,anguei的偏dp思维还需要掌握。类似的题目还有P4822[BJWC2012......
  • 选数异或
    问题描述给定一个长度为 �n 的数列 �1,�2,⋯,��A1​,A2​,⋯,An​ 和一个非负整数 �x,给定 �m 次查询,每次询问能否从某个区间 [�,�][l,r] 中选择两个数使得他们的异或......
  • P3226 [HNOI2012]集合选数
    简要题意给你一个\(n\)个元素的集合,它由前\(n\)个正整数构成。你需要求出它有多少个非空子集,满足若\(x\)在这个子集中,\(2x,3x\)不能在子集中。由于答案可能很大,你......
  • 洛谷 P1036 选数
    原题链接题解:#include"iostream"#include"algorithm"#definelllonglongusingnamespacestd;llsum=0;boolprime(llx){intn=2;for(;x%n!=0;n++)......
  • 【题解】P4565 [CTSC2018]暴力写挂
    能写点分为什么要写这种玄学东西。思路边分树合并。首先考虑点分,发现只会T飞的做法。但是答案的形式有点意思,换一下写法:\(ans=\frac{1}{2}\max(\operatorname{dis......
  • 选数 题解
    选数题解首先,设最初取值为\(x\),按照套路,我们设异或前缀和:\(pre_i=a_1\oplusa_2…\oplusa_i\),设\(f(x)=\left(\left\lfloor\frac{2x}{2^n}\right\rfloor+2x\right)\bmod......