打卡信奥刷题(3181)用C++实现信奥题 P8019 [ONTAK2015] OR-XOR
P8019 [ONTAK2015] OR-XOR题目描述给定一个长度为nnn的序列a1,a2,⋯ ,ana_1, a_2, \cdots, a_na1,a2,⋯,an请将它划分为mmm段连续的区间设第iii段的费用cic_ici为该段内所有数字的异或和则总费用为c1orc2or⋯orcmc_1 \operatorname{or} c_2 \operatorname{or} \cdots \operatorname{or} c_mc1orc2or⋯orcm。请求出总费用的最小值。输入格式第一行两个整数n,mn, mn,m第二行nnn个整数a1,a2,⋯ ,ana_1, a_2, \cdots, a_na1,a2,⋯,an。输出格式一行一个整数表示所求的值。输入输出样例 #1输入 #13 2 1 5 7输出 #13说明/提示对于100%100\%100%的数据1≤m≤n≤5×1051 \leq m \leq n \leq 5 \times 10^51≤m≤n≤5×1050≤ai≤10180 \leq a_i \leq 10^{18}0≤ai≤1018。C实现#includebits/stdc.husingnamespacestd;#definelllonglong#defineN500010ll n,m,a[N],flag[N],ans;intmain(){ll i,j;cinnm;for(i1;in;i){cina[i];}for(j62;j0;j--){ll tmp0,sum0;for(i1;in;i){tmp^(a[i]j)1;if(!tmp!flag[i])sum;}if((tmp1)||(summ)){ans1llj;continue;}tmp0;for(i1;in;i){tmp^(a[i]j)1;if(tmp!flag[i])flag[i]1;}}coutans;return0;}后续接下来我会不断用C来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现记录日常的编程生活、比赛心得感兴趣的请关注我后续将继续分享相关内容