赛时

花了30+分钟去读题,幸好读懂了。
当时全机房的人都在祝愿出题人身体健康,阖家安康,万事如意。
怕是他再这么玩,出个什么“物理”。下一年恐怕要到清明节去拜拜了。

疯狂地打,越码越心态崩掉。
码了近2个小时,6.7k+的代码,人已经是处于爆炸状态了,只打到80分。
后面两道大水都没想。
结果出来成绩爆0?!!

题解

应用题解的一句话吧。

心态崩了。
这是我读过的最长的题面,C++打过的最长的程序,我好长啊。

题解

9k+

#include <iostream>
#include <cstring>
#include <cmath>
#include <cstdio>
#include <algorithm>
#include <cctype>
using namespace std;
const int maxn=310;char s[21][10],ss[21][10],t[10][10],jh;
int n,xx,yy,dep[maxn],fa[maxn],g1,g2,ag1,ag2,st,en;
int gs[maxn],gg[maxn],a[maxn],b[maxn],aa[maxn],bb[maxn],cc[maxn],x[maxn],y[maxn],rd[maxn],dd[maxn],ee[maxn],jl[maxn],id[21],px[maxn],rak[maxn],ans[maxn][maxn],c[maxn],e[maxn];
int tot,nex[maxn*2],las[maxn*2],tov[maxn*2];
bool bz[maxn],jb[maxn],final;inline int read()
{int X=0,w=0; char ch=0;while(!isdigit(ch)) {w|=ch=='-';ch=getchar();}while(isdigit(ch)) X=(X<<3)+(X<<1)+(ch^48),ch=getchar();return w?-X:X;
}__attribute__((optimize("-O3")))
void insert(int x,int y)
{tot++;tov[tot]=y;nex[tot]=las[x];las[x]=tot;
}__attribute__((optimize("-O3")))
void dfs(int x,int ff)
{dep[x]=dep[ff]+1;fa[x]=ff;for (int i=las[x];i>0;i=nex[i]){if (tov[i]!=ff) dfs(tov[i],x);}
}__attribute__((optimize("-O3")))
void get(int x,int ff)
{for (int i=las[x];i>0;i=nex[i]){if (tov[i]!=ff) {if (bz[tov[i]]==false){g2++;a[g2]=dep[x];b[g2]=tov[i];   }           }}for (int i=las[x];i>0;i=nex[i]){if (tov[i]!=ff) {if (bz[tov[i]]!=false){get(tov[i],x); }           }}
}__attribute__((optimize("-O3")))
void color1(int x,int i)
{c[i]++;for (int j=las[x];j>0;j=nex[j]){if (bz[tov[j]]==false){bz[x]=true;color1(tov[j],i);   }}
}__attribute__((optimize("-O3")))
void color(int x,int i)
{cc[i]++;for (int j=las[x];j>0;j=nex[j]){if (bz[tov[j]]==false){bz[x]=true;color(tov[j],i);    }}
}__attribute__((optimize("-O3")))
void qsort(int l,int r)
{int i=l;int j=r;int m=ee[(i+j)/2];int m1=aa[(i+j)/2];while (i<=j){while (ee[i]<m || (ee[i]==m && aa[i]<m1)) i++;while (ee[j]>m || (ee[j]==m && aa[j]>m1)) j--;if (i<=j){swap(aa[i],aa[j]);swap(ee[i],ee[j]);swap(cc[i],cc[j]);i++;j--;}}if (l<j) qsort(l,j);if (r>i) qsort(i,r);
}__attribute__((optimize("-O3")))
void work()
{for (int k=1;k<=n;k++){fa[k]=0;dep[k]=0;bz[k]=false;}dfs(st,0);yy=en;xx=st;while (yy!=0){bz[yy]=true;yy=fa[yy];}for (int i=1;i<=g2;i++){color(bb[i],i);}for (int i=1;i<=g2;i++){ee[i]=rak[cc[i]];}qsort(1,g2);int j=0;for (int i=1;i<=g2;i++){if (ee[i]!=ee[i-1]){j++;jl[j]=cc[i];}ans[j][0]++;ans[j][ans[j][0]]=aa[i];}for (int i=1;i<=j;i++){printf("%d",ans[i][1]);for (int k=2;k<=ans[i][0];k++){printf(",%d",ans[i][k]);}printf("-");if (ans[i][0]>1){for (int k=1;k<=gg[ans[i][0]];k++){printf("%c",t[ans[i][0]][k]);}}for (int k=1;k<=gs[jl[i]];k++){printf("%c",s[jl[i]][k]);}printf("yl");if (i!=j){printf("-");}}for (int k=1;k<=gs[g1];k++){printf("%c",s[g1][k]);}if (final==false)printf("ane\n");elseprintf("yl");
}__attribute__((optimize("-O3")))
int main()
{   final=false;freopen("chem.in","r",stdin);freopen("chem.out","w",stdout);gs[1]=4;s[1][1]='m';s[1][2]='e'; s[1][3]='t';s[1][4]='h';gs[2]=3;s[2][1]='e';s[2][2]='t'; s[2][3]='h';gs[3]=4;s[3][1]='p';s[3][2]='r'; s[3][3]='o';s[3][4]='p';gs[4]=3;s[4][1]='b';s[4][2]='u'; s[4][3]='t';gs[5]=4;s[5][1]='p';s[5][2]='e'; s[5][3]='n';s[5][4]='t';gs[6]=3;s[6][1]='h';s[6][2]='e'; s[6][3]='x';gs[7]=4;s[7][1]='h';s[7][2]='e'; s[7][3]='p';s[7][4]='t';gs[8]=3;s[8][1]='o';s[8][2]='c'; s[8][3]='t';gs[9]=3;s[9][1]='n';s[9][2]='o'; s[9][3]='n';gs[10]=3;s[10][1]='d';s[10][2]='e'; s[10][3]='c';gs[11]=5;s[11][1]='u';s[11][2]='n'; s[11][3]='d';s[11][4]='e';s[11][5]='c';gs[12]=5;s[12][1]='d';s[12][2]='o'; s[12][3]='d';s[12][4]='e';s[12][5]='c';gs[13]=6;s[13][1]='t';s[13][2]='r'; s[13][3]='i';s[13][4]='d';s[13][5]='e';s[13][6]='c';gs[14]=8;s[14][1]='t';s[14][2]='e'; s[14][3]='t';s[14][4]='r';s[14][5]='a';s[14][6]='d';s[14][7]='e';s[14][8]='c';gs[15]=8;s[15][1]='p';s[15][2]='e'; s[15][3]='n';s[15][4]='t';s[15][5]='a';s[15][6]='d';s[15][7]='e';s[15][8]='c';gs[16]=7;s[16][1]='h';s[16][2]='e'; s[16][3]='x';s[16][4]='a';s[16][5]='d';s[16][6]='e';s[16][7]='c';gs[17]=8;s[17][1]='h';s[17][2]='e'; s[17][3]='p';s[17][4]='t';s[17][5]='a';s[17][6]='d';s[17][7]='e';s[17][8]='c';gs[18]=7;s[18][1]='o';s[18][2]='c'; s[18][3]='t';s[18][4]='a';s[18][5]='d';s[18][6]='e';s[18][7]='c';gs[19]=7;s[19][1]='n';s[19][2]='o'; s[19][3]='n';s[19][4]='a';s[19][5]='d';s[19][6]='e';s[19][7]='c';gs[20]=4;s[20][1]='i';s[20][2]='c'; s[20][3]='o';s[20][4]='s';gg[2]=2;t[2][1]='d';t[2][2]='i';gg[3]=3;t[3][1]='t';t[3][2]='r';t[3][3]='i';gg[4]=5;t[4][1]='t';t[4][2]='e';t[4][3]='t';t[4][4]='r';t[4][5]='a';gg[5]=5;t[5][1]='p';t[5][2]='e';t[5][3]='n';t[5][4]='t';t[5][5]='a';gg[6]=4;t[6][1]='h';t[6][2]='e';t[6][3]='x';t[6][4]='a';gg[7]=5;t[7][1]='h';t[7][2]='e';t[7][3]='p';t[7][4]='t';t[7][5]='a';gg[8]=4;t[8][1]='o';t[8][2]='c';t[8][3]='t';t[8][4]='a';gg[9]=4;t[9][1]='n';t[9][2]='o';t[9][3]='n';t[9][4]='a';memcpy(ss,s,sizeof(s));memcpy(px,gs,sizeof(gs));for (int i=1;i<=20;i++) id[i]=i;for (int i=1;i<=20;i++){for (int j=i+1;j<=20;j++){bool pd=false;for (int k=1;k<=min(px[i],px[j])+1;k++){if (ss[i][k]>ss[j][k]){pd=true;}elseif (ss[i][k]<ss[j][k]){break;}}if (pd==true){swap(id[i],id[j]);for (int k=1;k<=9;k++){jh=ss[i][k];ss[i][k]=ss[j][k];ss[j][k]=jh;}           swap(px[i],px[j]);}}}/*for (int i=1;i<=20;i++){for (int j=1;j<=px[i];j++){printf("%c",ss[i][j]);}printf("\n");}*/for (int i=1;i<=20;i++){rak[id[i]]=i;}scanf("%d",&n);if (n==1){printf("methane\n");return 0;}for (int i=1;i<n;i++){scanf("%d%d",&x[i],&y[i]);insert(x[i],y[i]);insert(y[i],x[i]);rd[x[i]]++;rd[y[i]]++;}tot=0;for (int i=1;i<=n;i++){if (rd[i]==1){tot++;dd[tot]=i;}}for (int i=1;i<=tot;i++){for (int j=1;j<=tot;j++){if (i!=j){for (int k=1;k<=n;k++){fa[k]=0;dep[k]=0;bz[k]=false;c[k]=0;}xx=dd[i];yy=dd[j]; dfs(xx,0);g1=dep[yy];while (yy!=0){bz[yy]=true;yy=fa[yy];}g2=0;get(xx,0);for (int i=1;i<=g2;i++){color1(b[i],i);}for (int i=1;i<=g2;i++){e[i]=rak[c[i]];}bool qd=false;if (g1>ag1){qd=true;}elseif (g1==ag1) {if (g2>ag2){qd=true;}elseif (g2==ag2){bool pd=true;bool pdd=true;for (int k=1;k<=g2;k++){if (aa[k]>a[k]) {bool pdd=false;break;}else if (aa[k]<a[k]) {pd=false;break; }}if (pd==true && pdd==false){qd=true;}if (pd==true && pdd==true){bool pddd=true;for (int k=1;k<=g2;k++){if (e[k]<ee[k]){break;}elseif (e[k]>ee[k]){pddd=false;break;}}if (pddd==true){qd=true;}}}}if (qd==true){ag1=g1;ag2=g2;st=dd[i];en=dd[j];memcpy(aa,a,sizeof(a));memcpy(bb,b,sizeof(b));}}}}g1=ag1;g2=ag2;if (g2!=1){work();}else{for (int k=1;k<=n;k++){fa[k]=0;dep[k]=0;bz[k]=false;}dfs(st,0);yy=en;xx=st;while (yy!=0){bz[yy]=true;yy=fa[yy];}bool pd=true;for (int i=1;i<=n;i++){if (bz[i]==false && rd[i]>2){pd=false;break;}}if (pd==true){work();}else{int jlg1=g1;g1=0;ag1=0;g2=0;ag2=0;memcpy(jb,bz,sizeof(bz));int stb=bb[1];int sta=aa[1];//for (int i=1;i<=tot;i++){int i=stb;for (int j=1;j<=tot;j++){if (i!=j && jb[i]==false && jb[dd[j]]==false){for (int k=1;k<=n;k++){fa[k]=0;dep[k]=0;bz[k]=jb[k];c[k]=0;}xx=i;yy=dd[j]; dfs(xx,0);g1=dep[yy];while (yy!=0){bz[yy]=true;yy=fa[yy];}g2=0;get(xx,0);for (int i=1;i<=g2;i++){color1(b[i],i);}for (int i=1;i<=g2;i++){e[i]=rak[c[i]];}bool qd=false;if (g1>ag1){qd=true;}elseif (g1==ag1) {if (g2>ag2){qd=true;}elseif (g2==ag2){bool pd=true;bool pdd=true;for (int k=1;k<=g2;k++){if (aa[k]>a[k]) {bool pdd=false;break;}else if (aa[k]<a[k]) {pd=false;break; }}if (pd==true && pdd==false){qd=true;}if (pd==true && pdd==true){bool pddd=true;for (int k=1;k<=g2;k++){if (e[k]<ee[k]){break;}elseif (e[k]>ee[k]){pddd=false;break;}}if (pddd==true){qd=true;}}}}if (qd==true){ag1=g1;ag2=g2;st=i;en=dd[j];memcpy(aa,a,sizeof(a));memcpy(bb,b,sizeof(b));}}}}printf("%d-(",sta);final=true;work();printf(")");for (int k=1;k<=gs[jlg1];k++){printf("%c",s[jlg1][k]);}printf("ane\n");}}
}

转载于:https://www.cnblogs.com/RainbowCrown/p/11597178.html

jzoj6366. 【NOIP2019模拟2019.9.25】化学(chem)相关推荐

  1. 6377. 【NOIP2019模拟2019.10.05】幽曲[埋骨于弘川]

    题目 题目大意 有个无限长的数列an{a_n}an​,a1=1a_1=1a1​=1,an=an−1+maxdightk(an−1)a_n=a_{n-1}+maxdight_k(a_{n-1})an​= ...

  2. JZOJ 6030. 【GDOI2019模拟2019.2.25】白白的

    Description Input Output Sample Input 4 3 6 0 10 1 1 2 1 0 1 2 Sample Output 1 1 0 Data Constraint S ...

  3. 6360. 【NOIP2019模拟2019.9.18】最大菱形和(rhombus)

    Description Input Output Sample Input 5 5 2 0 1 5 7 3 -4 2 0 -9 8 3 9 0 7 8 2 -4 5 -7 1 4 5 8 7 0 6 ...

  4. 6374. 【NOIP2019模拟2019.10.04】结界[生与死的境界]

    题目 题目大意 给你一个数列,每次可以选择任意两个相邻的数xxx和yyy,将其删去,并在原来位置插入x+2yx+2yx+2y. 每次询问一个区间,对这个区间进行上述操作.求最后剩下的数最大是多少. 答 ...

  5. JZOJ6362. 【NOIP2019模拟2019.9.18】数星星(star)

    Description Solution 考虑分治,将每一个询问挂在包括它的最大的区间中. 只考虑中点往右的区间的贡献,那么每一个点对于覆盖它的最早的时间有一个贡献. 我们建一个虚树,并且用并查集路径 ...

  6. jzoj6384. 【NOIP2019模拟2019.10.23】珂学家

    Description Input Output 输出共 行,每行一个非负整数表示答案. Sample Input 2 1 1 2 3 2 1 3 5 Sample Output 4 只能选用试剂1 ...

  7. jzoj6377. 【NOIP2019模拟2019.10.05】幽曲[埋骨于弘川]

    题解 真的都快忘了. 首先,我们考虑排序,求出一个神奇的排列方式,也就是dfn序. 那么答案必定是在dfn序里面一些连续的段连接起来. 然后我们就判断这玩意儿是否满足在a里面出现过. 于是现在分两步走 ...

  8. JZOJ6384【NOIP2019模拟2019.10.23】珂学家

    珂学家 题目描述: 输入: 输出: 输出共mmm行,每行一个非负整数表示答案. 这道题看到是一个区间,便想到了数据结构之类的东西. 但是呢它好像不带修.所以初步判断这是个离线的题目. 再仔细观察发现, ...

  9. 2019年25大人工智能趋势!一文看到未来

    来源:智东西 摘要:2019年25个AI趋势. 人工智能的下一步是什么?上周,知名机构CBinsights的分析师分析各个行业,得到了2019年最值得关注的25个人工智能趋势.虽然人工智能正在各个行业 ...

  10. 7-1 模拟EXCEL排序 (25 分)

    7-1 模拟EXCEL排序 (25 分) Excel可以对一组纪录按任意指定列排序.现请编写程序实现类似功能. 输入格式: 输入的第一行包含两个正整数N(≤10 ​5 ​​ ) 和C,其中N是纪录的条 ...

最新文章

  1. jQuery学习笔记之extend方法小结
  2. 访问者模式用到了一种双分派的技术——静态分派和动态分派
  3. MySQL—事务并发问题
  4. 记录ionic 最小化应用时所遇的问题
  5. c语言编辑的库存管理软件,C语言课程设计,商品库存管理系统怎么做啊?
  6. 逻辑回归 - sklearn (LR、LRCV、MLP、RLR)- Python代码实现
  7. action script3.0殿堂之路_【日本乐坛传奇】松任谷由实是谁?新音乐女王的登基之路!...
  8. android 仿快递步骤_Android开发-类似物流快递进度效果
  9. 1.4、设置 SpringApplication 主启动类
  10. 快速安装Pytorch
  11. matlab quiver函数添加图例(比例尺、参考矢量)
  12. jsp393学生宿舍管理系统mysql
  13. 强化IT能力 中国移动OpenStack玩“大”的
  14. FPGA课程设计——数字电子时钟VERILOG(基于正点原子新起点开发板,支持8位或6位共阳极数码管显示时分秒毫秒,可校时,可设闹钟,闹钟开关,led指示)
  15. 多线程卖票深刻分析:为什么会出现只有一个窗口卖票的现象
  16. L1-6 福到了 (模拟)
  17. 【KM】BZOJ1937 [Shoi2004]Mst 最小生成树
  18. 如何进入android的官方开发者网站
  19. VUE+ElementUI图片上传的判断格式、大小、尺寸(即宽高比)完整实现。
  20. 先进工艺下,SEB(Statistical EM Budgeting )分析详解

热门文章

  1. 仿支付宝支付密码输入框功能
  2. js 前端实现打印功能
  3. 豆果美食批量发布菜谱软件
  4. 小程序页面生命周期函数
  5. Eclipse 查看类继承和实现关系(包括子类)
  6. 王琪你计算机学院,麦考瑞大学 AI 实验室中科院信工所,两场论文直播重磅来袭!...
  7. android手机如何截屏,安卓手机怎么截屏(教你华为手机5种截图技巧)
  8. 什么是robots协议,robots文件的作用有哪些!
  9. Windows命令提示符窗口操作命令
  10. mysql修改表的内容_sql怎么修改表内容