欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

欢乐纪中某B组赛【2019.1.25】

发布时间:2023/12/3 编程问答 46 豆豆
生活随笔 收集整理的这篇文章主要介绍了 欢乐纪中某B组赛【2019.1.25】 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

前言

还算OKOKOK


成绩

RankRankRank是有算别人的

RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC
4442017myself2017myself2017myself180180180100100100808080000
5552017zyc2017zyc2017zyc160160160606060100100100000
1111112017hzb2017hzb2017hzb140140140606060808080000
1515152017xxy2017xxy2017xxy115115115151515100100100000
3131312017xjq2017xjq2017xjq100100100000100100100000
7272722017lw2017lw2017lw303030000303030000
8787872017lrz2017lrz2017lrz555000555000
9393932017hjq2017hjq2017hjq000000000000

正题


T1:P3365,jzoj3894−T1:P3365,jzoj3894-T1:P3365,jzoj3894改造二叉树【LIS,BSTLIS,BSTLIS,BST

博客链接:
https://blog.csdn.net/Mr_wuyongcong/article/details/86648465


T2:jzoj3895−T2:jzoj3895-T2:jzoj3895数字对【RMQ,GCD,RMQ,GCD,RMQ,GCD,二分答案,,,单调队列】

博客链接:
https://blog.csdn.net/Mr_wuyongcong/article/details/86648570


T3:jzoj3896−T3:jzoj3896-T3:jzoj3896战争游戏【tarjan,tarjan,tarjan,割点,,,点双联通分量】

博客链接:
https://blog.csdn.net/Mr_wuyongcong/article/details/86648677


someofcodesome\ of\ codesome of code


T2 暴力

#include<cstdio> #include<algorithm> #define N 500010 using namespace std; int n,a[N],maxs,ans[N],tot; int main() {freopen("data.in","r",stdin);freopen("data.ans","w",stdout);scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]);for(int i=1;i<=n;i++)for(int j=i;j<=n;j++)if(j-i>=maxs){int mins=2147483647,flag=true;for(int k=i;k<=j;k++)mins=min(mins,a[k]);for(int k=i;k<=j;k++)if(a[k]%mins){flag=false;break;}if(flag&&j-i>maxs){maxs=j-i;ans[1]=i;tot=1;}else if(flag) ans[++tot]=i;}printf("%d %d\n",tot,maxs);for(int i=1;i<=tot;i++)printf("%d ",ans[i]); }

T2 随机数据

#include<cstdio> #include<cstdlib> #include<ctime> using namespace std; int main() {freopen("data.in","w",stdout);srand(time(0));printf("500\n");for(int i=1;i<=500;i++)printf("%d ",2+rand()%1022); }

T3 0分code

#include<cstdio> #include<cstring> #define N 50010 using namespace std; struct node{int to,next; }a[N*4]; int n,m,f[N],v[N],ls[N],tot,ans,s; void addl(int x,int y) {a[++tot].to=y;a[tot].next=ls[x];ls[x]=tot; } int dfs(int x){if(v[x]) return 0;v[x]=true;f[x]=1;for(int i=ls[x];i;i=a[i].next){int y=a[i].to;int k=dfs(y);if(x==s)ans+=f[x]*k;f[x]+=k;}return f[x]; } int main() {freopen("data.in","r",stdin);freopen("data.out","w",stdout);scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){int x,y;scanf("%d%d",&x,&y);addl(x,y);addl(y,x);}for(int i=1;i<=n;i++){memset(v,0,sizeof(v));memset(f,0,sizeof(f));s=i;ans=0;dfs(i);printf("%d\n",ans);} }

总结

看题预估分(60+80+0=140)

之后做题预估分(100+80+50=230)

结果(100+80+0=180)炸了

T1:看了会,没想法。然后去了趟厕所,然后就想到之前看Spaly题解的时候说BST的中序遍历是单调递增的,然后就求了一遍LIS求解。

T2:看了会,没具体想法。然后去了趟厕所,就想到了RMQ可以区间求gcd,结果没有预处理log就T飞了2个点

T3:最后二十分钟的时候写的50分暴力,本来没打算过样例,结果过了,然后就测了几个别的样例,也过了。结果T飞了

这次还行,没有翻车

-------------改题分界线-------------

T1:考场AC

T2:加个预处理就A了

T3:tarjan,不就是那个我最不理解的吗。现在一看好像还挺简单的。顺便把图论的不足给学了。问题不大

总结

以上是生活随笔为你收集整理的欢乐纪中某B组赛【2019.1.25】的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。