网站规划在网站建设中的作用是,邵阳seo,华强北网上商城,微网站价格目录 A. The Man who became a God
题目分析:
B. Hamon Odyssey
题目分析:
C. Vampiric Powers, anyone?
题目分析: A. The Man who became a God 题目分析:
n个人分成k组#xff0c;每一组的力量都是这样的#xff0c;那么如果分成k组那么就会有k-1个力量不被统计…目录 A. The Man who became a God
题目分析:
B. Hamon Odyssey
题目分析:
C. Vampiric Powers, anyone?
题目分析: A. The Man who became a God 题目分析:
n个人分成k组每一组的力量都是这样的那么如果分成k组那么就会有k-1个力量不被统计将力量总和减去前k-1个最大的力量就是最小的结果
#includebits/stdc.h
#pragma GCC optimize(Ofast)
#define INF 0x3f3f3f3f
#define IOS ios::sync_with_stdio(false);cin.tie(0);
#define int long long
#define pb push_back
#define vct vector
#define checkbit __builtin_popcount
#define gcd __gcd
#define use int T;cinT;while(T--)
templateclass T bool mmax(T u, T v) { return u v ? (u v, 1) : 0; }
templateclass T bool mmin(T u, T v) { return u v ? (u v, 1) : 0; }
#define lowbit(x) (x(-x))
#define yes coutYESendl
#define no coutNOendl
using namespace std;
typedef pairint,intpii;
const int N 105;
int a[N],sb[N];
bool cmp(int a,int b){return ab;
}
signed main()
{IOS
use{int n,k;cinnk;cina[1];for(int i2;in;i){cina[i];sb[i-1]abs(a[i]-a[i-1]);}sort(sb1,sbn,cmp);int sum0;for(int ik;in;i){sumsb[i];}coutsumendl;
}return 0;
}
B. Hamon Odyssey 题目分析:
将数组分组每个组内进行按位与运算若想让每个组的结果加和最小最多可以分几个组
按位与运算是一个单调递减的过程如果一个数字的某一位为0那么无论多少数该位为1 结果都为0对于题目来说我们需要尽可能的将一个组的结果变为零也即让所有的0尽可能的发挥作用故如果当前数按位与为零之后将其分为一组.
#includebits/stdc.h
#pragma GCC optimize(Ofast)
#define INF 0x3f3f3f3f
#define IOS ios::sync_with_stdio(false);cin.tie(0);
#define int long long
#define pb push_back
#define vct vector
#define checkbit __builtin_popcount
#define gcd __gcd
#define use int T;cinT;while(T--)
templateclass T bool mmax(T u, T v) { return u v ? (u v, 1) : 0; }
templateclass T bool mmin(T u, T v) { return u v ? (u v, 1) : 0; }
#define lowbit(x) (x(-x))
#define yes coutYESendl
#define no coutNOendl
using namespace std;
typedef pairint,intpii;
const int N 2e57;
signed main()
{IOS
use{int fi0,ans0,x,n;cinn;for(int i1;in;i){cinx;if(fi0)fix,ans;fix;}if(!fi)ans;coutmax(1ll,ans-1)endl;
}return 0;
}
C. Vampiric Powers, anyone? 题目分析:
给一个数组可以在数组的末尾加上从~的异或和求出数组最大的数可能是多少。
已知可以将~的异或和(qwq)提取出来那么从1~-1的异或和(awa)就可以通过AllXOR^qwqawa;
我们可以利用前缀和的思想存下前项的异或和我们可以通过XOR前面的异或和来获得各个小区间的异或和最终遍历取最大值即可;
#includebits/stdc.h
#pragma GCC optimize(Ofast)
#define INF 0x3f3f3f3f
#define IOS ios::sync_with_stdio(false);cin.tie(0);
#define int long long
#define pb push_back
#define vct vector
#define checkbit __builtin_popcount
#define gcd __gcd
#define use int T;cinT;while(T--)
#define LEN length()
#define all(a) a.begin(),a.end()
templateclass T bool mmax(T u, T v) { return u v ? (u v, 1) : 0; }
templateclass T bool mmin(T u, T v) { return u v ? (u v, 1) : 0; }
#define lowbit(x) (x(-x))
#define yes coutYESendl
#define no coutNOendl
using namespace std;
typedef pairint,intpii;
signed main()
{IOS
use{int n;cinn;vectorint a(n1);for(int i1;in;i){cina[i];a[i]^a[i-1];}vctboolst((18|1),0);st[0]1;int ans0;for(int i1;in;i){for(int j0;j(18);j){if(st[j]) ansmax(ans,j^a[i]);}st[a[i]]1;}coutansendl;}
return 0;
}