用网站源码怎么做网站,百度不收录哪些网站,做室内设计的网站有哪些,wordpress仿p站主题题目#xff1a;感觉没紫题#xff08;上位蓝题到下位紫#xff0c;考虑到考场上难度自动上升半段#xff0c;给紫题也合理首先我们考虑什么情况下会出错#xff1a;很显然#xff0c;对于某个数i#xff0c;如果w2,按照贪心策略如果选中一定不会出错#xff08;在/2的…题目感觉没紫题上位蓝题到下位紫考虑到考场上难度自动上升半段给紫题也合理首先我们考虑什么情况下会出错很显然对于某个数i如果w2,按照贪心策略如果选中一定不会出错在/2的情况下仍然排在前面说明原价一定比较高如果w1,选中该数可能会导致后续只能选择另一个w1的数这个数可能很小而导致无法选择一个w2的数这个数可能大于所选的两个w1的数的和所以我们考虑正难则反也就是找出所有非法情况我们令y本来应该选择的数x贪心策略选择的数大z贪心策略选择的数小把a从小到大排序最优解为........y.......当前选择为....z...x....(y)(没选...显然的xa[y]/2,所以它被选择了我们尝试将区间分段考虑每个区间的取数Ⅰ随便取任何数1/2因为z是选的最后一个数所以该段区间的w赋值无影响为答案提供2^z种可能性Ⅱ已知y没有被取因为在给到w2时a[y]/2a[x]/1;那么对于无论/2还是/1都更小的Ⅱ区间内的数更不会被取他们的性价比无论如何都低于yⅢw2时他们的性价比一定比y低不考虑w1时在已经选择x的情况下选择该数一定是最优解而我们当前考虑的是错解所以不考虑Ⅳw2时性价比小于y不选w1时选择cost0/1Ⅴw1/2都选cost1/2我们考虑枚举x,y;z的范围可以根据xy的范围得出因为x,z必选且w都等于1所以留给剩下选数的costm-2;观察上面的图发现了吗只有ⅣⅤ区间内的数才会被选择其中Ⅴ内的数必被选中我们可以将cost统一减去Ⅴ范围内数的个数这样Ⅳ/Ⅴ区间内的数w就都变成了0/1对于每一组x,y,我们需要在n-x-1)个数中选择cost-(n-y))(m-2-(n-y))个数组合数O1搞定总时间复杂度O2;os:洛谷卡signed main.......这我是真没想到code:#includebits/stdc.h//#define int long long#define inf 0x3f3f3f3f3f3f3f#define GG ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);#define cnot coutNO\n#define cyes coutYES\n#define cans coutans\n#define pb push_back#define x0 first#define y0 second#define lc p1#define rc p1|1#define mem(a,b) memset(a,b,sizeof(a))#define sp(x) fixedsetprecision(x)#define all(v) v.begin(),v.end()#define fr(i,st,ed) for(int ist;ied;i)#define ffr(i,st,ed,dt) for(int ist;ied;idt)#define all1(a) a.begin()1,a.end()using namespace std;typedef pairint,stringPis;typedef pairint,intPii;const int N10005,mod998244353,M1e610;int lowbit(int x){return x(-x);}//vectorintinv2(N);int inv2[N];//vectorvectorint C(N,vectorint(N));int C[N][N];int a[N];void P(){inv2[0]1;for(int i1;i10001;i){inv2[i](long long)2*inv2[i-1]%mod;}C[0][0]1;for(int i1;i10001;i){C[i][0]1;for(int j1;ji;j){C[i][j](C[i-1][j-1]C[i-1][j])%mod;}}}void solve(){int n,m;cinnm;//vectorinta(n1);fr(i,1,n){cina[i];}//sort(all1(a));sort(a1,a1n);int ans0;for(int x1;xn;x){int pos0;for(int yx1;yn;y){if(a[x]a[y]){continue;}if((m-2-(n-y))0){continue;}if(2*a[x]a[y]){break;}while(posna[pos1]a[x]a[y]){pos;}ans(ans(long long)1*C[n-x-1][m-2-(n-y)]*inv2[pos])%mod;}}ans(inv2[n]-ansmod)%mod;cans;}int main(){GG;int _t1;int __;P();cin___t;while(_t--){solve();}}