怎么使用网站模板,seo技术论坛,一级a做爰网站免费,关于重新建设网站的申请表//***不知道在不在进步
A
注意点#xff1a;其实这个暴力就行#xff0c;但有个限制#xff0c;就是最多走100遍如果不到那就一定到不了。其实我感觉10遍就可以了#xff0c;但WA了。不管怎么说#xff0c;100遍不超时而且稳对。
代码#xff1a;
#includebits/s…//***不知道在不在进步
A
注意点其实这个暴力就行但有个限制就是最多走100遍如果不到那就一定到不了。其实我感觉10遍就可以了但WA了。不管怎么说100遍不超时而且稳对。
代码
#includebits/stdc.h
using namespace std;int t;
int n,a,b;
string s;int main()
{cint;while(t--){cinnab;int x0,y0,flag0,g0;cins;for(int i0;is.size();i){if(gn*100)break;if(s[i]N)y;else if(s[i]E)x;else if(s[i]S)y--;else x--;
// coutx y gendl;if(xayb){flag1;break;}if(i(s.size()-1))i-1;g;}if(flag1){coutYES\n;}else{coutNO\n;}}return 0;
} B
题目大意n个数的等差数列通过将其最大值不断取MEX变成0 1 ... n-1的排列。
大体思路这题其实不难想到通解但是就是不成立的地方的特判有些细节要注意。先说通解的情况。如果b0那么这个排列本身就是递增的。那么只要我们每一次都变最后一位那么一定可以将后面n-1的全变为0~n-1范围内。接下来再考虑b0的情况。一开始我以为只有bc都0时才不行但事实上b0时c和n是有条件的。只有b0nc2时才是不行的。
代码详解
#includeiostream
using namespace std;
#define int long long int t;
int n,b,c;//b:d c:初始值signed main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cint;while(t--){cinnbc;if(b0nc2){cout-1endl;continue;}else if(b0){if(cn-1){coutn-1endl;}else{coutnendl;}}else{if(cn-1){coutnendl;}else{coutn-((n-1-c)/b)-1endl;}} }return 0;
}
C 代码
#includeiostream
using namespace std;
#define int long long int t,ans;
int n,m,v;
int a[1000010],pre[1000010],las[1000010],presum[1000010];int ef(int l,int r,int t){int mid,aa-1;while(lr){midlr1;if(las[mid]t){aamid;lmid1;}else{rmid-1;}}return aa;
}signed main()
{cint;while(t--){ans0;cinnmv;for(int i1;in;i){cina[i];presum[i]presum[i-1]a[i];}int g0;for(int i1;in;i){ga[i];if(gv){pre[i]pre[i-1]1;g0;}else{pre[i]pre[i-1];}}g0;for(int in;i1;i--){ga[i];if(gv){las[i]las[i1]1;g0;}else{las[i]las[i1];}}int flag0;for(int i1;in;i){int gm-pre[i-1];int qef(i,n1,g);
// coutqendl;if(q-1)continue;flag1;ansmax(ans,presum[q-1]-presum[i-1]);}if(flag0){cout-1endl;}else{coutansendl;}}return 0;
} D
题目思路首先Alice只能从小的一步步往大的跳。我们可以考虑一种递推思路也有点像dp?画个图说明 大概就是说从1~n递推每一位可以从其前面比它大的数得到。其实理解这个点之后题目就迎刃而解了。当然记录输出的话每一位记录一下其前面一个的字母和编号即可。用个递归输出。
代码
#includeiostream
using namespace std;
typedef pairchar,intPII;int t,cnt;
int n;
int q[1000010],k[1000010],j[1000010];
PII ds[1000010];
pairint,intqm,km,jm;//qkj最大值的位置和大小;void print(int i){cnt;if(ds[i].second1){coutcntendl;coutds[i].first iendl;return ;}print(ds[i].second);coutds[i].first iendl;
}int main()
{cint;while(t--){cnt0;cinn;ds[n].second0;for(int i1;in;i){cinq[i];}for(int i1;in;i){cink[i];}for(int i1;in;i){cinj[i];}qm{1,q[1]};km{1,k[1]};jm{1,j[1]};for(int i2;in;i){if(q[i]qm.second){ds[i]{q,qm.first};if(k[i]km.second)km{i,k[i]};if(j[i]jm.second)jm{i,j[i]};}else if(k[i]km.second){ds[i]{k,km.first};if(q[i]qm.second)qm{i,q[i]};if(j[i]jm.second)jm{i,j[i]};}else if(j[i]jm.second){ds[i]{j,jm.first};if(q[i]qm.second)qm{i,q[i]};if(k[i]km.second)km{i,k[i]};}}if(ds[n].second0){coutNO\n;}else{coutYES\n;print(n);}}return 0;
}/*
3
1 2 3
1 3 2
1 2 3
*///同志仍需努力*****