个人业务网站带后台,昆明 网站 制作,网站图片用什么做的,建设银行网站打开自动关闭评价#xff1a; 
高情商#xff1a;收获很大 #xff0c;让自己进一步认清自己。 
低情商#xff1a;题目难#xff0c;自己太菜了。 
今天还有一些其他事#xff0c;剩下的题明天再补。 
我们从a题开始吧#xff1a; 
A.签到 我们只要看看其中的max与min是否不符合即可…评价 
高情商收获很大 让自己进一步认清自己。 
低情商题目难自己太菜了。 
今天还有一些其他事剩下的题明天再补。 
我们从a题开始吧 
A.签到 我们只要看看其中的max与min是否不符合即可。 
下面是AC代码 
#includebits/stdc.h
using namespace std;
int n,m,a[1000100],b[1000100],maxx-1e8,minn1e8;
int main(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cinnm;for(int i1;in;i) cina[i];for(int i1;in;i){maxxmax(maxx,a[i]);minnmin(minn,a[i]);}if(minn-11maxx1m) coutNo;else coutYes;
} 
B.贪心喵喵喵 首先我们可以确定一个结论 
对于负数我们把全部值都加它对于正数我们只要让他加给答案即可。 
显然最后留下的一定是原来最大的粗糙的想一想每一个数都对答案至少并且假如一个值一开始1后来变成负数我们也把全部值都加它。 
这样如果直接模拟n^2于是我们用sum表示全局要加的值ans为只有答案要加的这样子就是n的复杂度了还是比较妙的。 
下面是AC代码 
#includebits/stdc.h
using namespace std;
long long t,n,a[500010];
bool cmp(int a,int b){return ab;
}
int main(){cint;while(t--){cinn;for(int i1;in;i) scanf(%lld,a[i]);sort(a1,an1,cmp);long long sum0,ans0;for(int i1;in-1;i){long long cksuma[i];if(ck0) ansck;else{sumck;}}printf(%lld\n,a[n]sumans);}
} 
C.思维连通块 首先若第一次红可以吃掉蓝则红胜否则蓝一定存在一块以他扩展则中心那一个一定不会被吃因此蓝一定不会输同理红也一定不会输那么就是平局。 
因此我们可以得到若开始时红的一个联通块不能吃掉蓝的全部格子就是平局反之红赢。 
这里我们用DFS并用set记录可以删的数顺便去重考虑到x2000我们可以在加时直接在x上*2020这样形成的数是唯一的。 
下面是AC代码 
#includebits/stdc.h
using namespace std;
int t,n,m,blue,dir[4][2]{{1,0},{-1,0},{0,1},{0,-1}};
char a[2010][2010],x;
bool vis[2010][2010];
setint s;
void dfs(int x,int y){if(vis[x][y]) return;vis[x][y]1;for(int i0;i4;i){int xxxdir[i][0];int yyydir[i][1];if(xx1||xxn||yy1||yym) continue;if(a[xx][yy]#) dfs(xx,yy);else s.insert(xx*2020yy);}
}
int main(){cint;while(t--){blue0;int win0;memset(vis,0,sizeof(vis));cinnm;for(int i1;in;i){for(int j1;jm;j){scanf( %c,x);a[i][j]x;if(x.) blue;}}if(bluen*m){coutBlueendl;continue;}for(int i1;in;i){for(int j1;jm;j){if(vis[i][j]) continue;if(a[i][j]#){s.clear();dfs(i,j);if(s.size()blue) win1;}}}if(win) coutRedendl;else coutDrawendl;}
} 
D.BFSDP 首先注意到每一个边都为1显然是考虑BFS而我们关心的是到x点的每一个距离有几个点。 
我们不妨令dp[i][j]表示考虑了disi的所有点放了j个喵点的方案数。 
易得状态转移方程dp[i][k]dp[i-1][k]dp[i-1][k-1]*c[i]disi的个数。 
下面是AC代码 
#includebits/stdc.h
using namespace std;
long long n,m,q,x,u,v,k,dis[1000100],mod1e97;
vectorint edge[1000100];
long long dp[5001][5005],cnt[5050];
queueint qq;
int main(){cinnmqx;for(int i1;im;i){scanf(%lld%lld,u,v);edge[u].push_back(v);edge[v].push_back(u);}memset(dis,0x3f,sizeof(dis));dis[x]0;qq.push(x);while(!qq.empty()){int ckqq.front();qq.pop();for(int i0;iedge[ck].size();i){if(dis[edge[ck][i]]5000) continue;dis[edge[ck][i]]dis[ck]1;qq.push(edge[ck][i]);}}for(int i1;in;i){cnt[dis[i]];}dp[0][0]1;for(int i1;i5000;i){for(int j0;j5000;j){dp[i][j]dp[i-1][j];if(j) dp[i][j]dp[i-1][j-1]*cnt[i]%mod;dp[i][j]dp[i][j]%mod;}}for(int i1;iq;i){cink;printf(%lld\n,dp[5000][k]);}
}