2021.7.15 jzoj题解与反思(2)
【普及组】模拟赛C组
写在前面:
今天考试考炸了,16.7+0+0+60=76.7分,不过就像我爸说的:“考试不拿高分才好,这样你才能学习更多”(喝口鸡汤先)
我现在AK啦!(蒟蒻自豪)
转到奆佬的博客
T4:
题目大意:
在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或“4-8”的子串,我们就把它当作一种简写,输出时,用连续递增的字母或数字串替代其中的减号,即,将上面两个子串分别输出为“defgh”和“45678”。在本题中,我们通过增加一些参数的设置,使字符串的展开更为灵活。具体约定如下:
(1)遇到下面的情况需要做字符串的展开:在输入的字符串中,出现了减号“-”,减号两侧同为小写字母或同为数字,且按照ASCII码的顺序,减号右边的字符严格大于左边的字符。
(2)参数p1:展开方式。p1=1时,对于字母子串,填充小写字母;p1=2时,对于字母子串,填充大写字母。这两种情况下数字子串的填充方式相同。p1=3时,不论是字母子串还是数字子串,都用与要填充的字母个数相同的星号“*”来填充。
(3)参数p2:填充字符的重复个数。p2=k表示同一个字符要连续填充k个。例如,当p2=3时,子串“d-h”应扩展为“deeefffgggh”。减号两侧的字符不变。
(4)参数p3:是否改为逆序:p3=1表示维持原有顺序,p3=2表示采用逆序输出,注意这时仍然不包括减号两端的字符。例如当p1=1、p2=2、p3=2时,子串“d-h”应扩展为“dggffeeh”。
(5)如果减号右边的字符恰好是左边字符的后继,只删除中间的减号,例如:“d-e”应输出为“de”,“3-4”应输出为“34”。如果减号右边的字符按照ASCII码的顺序小于或等于左边字符,输出时,要保留中间的减号,例如:“d-d”应输出为“d-d”,“3-1”应输出为“3-1”。
正解:
这是一道水沝淼㵘题(可我比赛时又没做出来,哭)
来,直接暴力
代码:(修修补补的sb代码)
#include<bits/stdc++.h>
using namespace std;
int a,b,c,len=1,flag;
char x[105];
int main(){
// freopen("expand.in","r",stdin);
// freopen("expand.out","w",stdout);scanf("%d%d%d\n",&a,&b,&c);scanf("%s",x+1);while(x[len]!=NULL) len++;len--;for(int i=1;i<=len;){if(flag) i++;if(x[i+1]!='-'||x[i]=='-'){printf("%c",x[i]);flag=1;continue;}flag=1;if(x[i+2]-1==x[i]){printf("%c",x[i]);i++;continue;}if(x[i]>=x[i+2]||(x[i]>=97&&x[i]<=122&&(x[i+2]<97||x[i+2]>122))||(x[i]>=48&&x[i]<=57&&(x[i+2]<48||x[i+2]>57))){printf("%c%c",x[i],x[i+1]);i++;continue;}if(a==3){printf("%c",x[i]);for(int j=1;j<=(x[i+2]-x[i]-1)*b;j++) printf("*");i++;continue;}if(x[i]>=48&&x[i]<=57){printf("%c",x[i]);if(c==1){for(int j=x[i]+1;j<x[i+2];j++)for(int k=1;k<=b;k++)printf("%c",j);}if(c==2){for(int j=x[i+2]-1;j>x[i];j--)for(int k=1;k<=b;k++)printf("%c",j);}i++;}if(x[i]>=97&&x[i+2]<=122){printf("%c",x[i]);if(c==1&&a==1){for(int j=x[i]+1;j<x[i+2];j++)for(int k=1;k<=b;k++)printf("%c",j);}if(c==1&&a==2){for(int j=x[i]+1;j<x[i+2];j++)for(int k=1;k<=b;k++)printf("%c",j-32);}if(c==2&&a==1){for(int j=x[i+2]-1;j>x[i];j--)for(int k=1;k<=b;k++)printf("%c",j);}if(c==2&&a==2){for(int j=x[i+2]-1;j>x[i];j--)for(int k=1;k<=b;k++)printf("%c",j-32);}i++;}}fclose(stdin);fclose(stdout);
}
T5:
题目大意:
给出一个树,树的边上有权值,现在要你求出一个满足下面三个要求的节点集合。第一,根节点不在集合S中。第二,集合中任何两个节点仅有一个公共祖先,即根节点。第三,对集合中每个节点都要有两个值,wi表示到这个节点的路径上所有的边权值总和,di表示到这个节点的路径所包含的边数,现在要求sigma(wi)/sigma(di)的最大值。
正解:
好像是可以dfs(可我只会bfs)
这边就用一下并查集讲一下(要优化,具体的看代码)
假如我们找到了最大的
再找到了次大的
那么次大的只会拉低最大的
那么我们只需要找到最大的就行了
代码:
#include<cstdio>
#include<cstring>
using namespace std;
int x,y,z,n,t,a[1005][1005],f[1005];
double s[1005],sum,bj;
double max(double x,double y){return x>y?x:y;
}
void find(int x){if(x==f[x]) return;else{sum+=a[x][f[x]];bj++;find(f[x]);}
}
int main(){scanf("%d",&t);for(int p=1;p<=t;p++){scanf("%d",&n);double ans=0.0;if(n==1){printf("0.00\n");continue;}for(int i=1;i<n;i++){scanf("%d%d%d",&x,&y,&z);if(y<x){//优化在这int t=y;y=x;x=t;}a[x][y]=a[y][x]=z;f[y]=x;}for(int i=1;i<n;i++){find(i);s[i]=1.0*sum/bj;sum=bj=0;ans=max(ans,s[i]);}printf("%0.2f\n",ans);}return 0;
}
如果想看T1和T3,点这里
2021.7.15 jzoj题解与反思(2)相关推荐
- 2021.7.15 jzoj题解与反思
[普及组]模拟赛C组 写在前面: 我没了啊 10分钟打完T1和T2(分数+200) T3看完不会,跳过(所以火星人到底是怎么交换两个手指的啊!还有我TM怎么就成了宇航员?) 后面T4怒打900+行代码 ...
- 电动力学每日一题 2021/10/15 Fourier变换法计算均匀电流密度产生的磁场
电动力学每日一题 2021/10/15 Fourier变换法计算均匀电流密度产生的磁场 无限长均匀电流 无限长圆柱面均匀电流密度 无限长均匀电流 假设z轴上有一根非常细的电线,携带均匀电流I0I_0I ...
- 2021.1.15——星露谷作物计算器的小改进
2021.1.15--星露谷作物计算器的小改进 前言 目标 excel表格 代码 总结 前言 2021.1.13做的星露谷作物计算器,初步只完成了对excel表内数据和图表的生成,交互也只是input ...
- Python 最近两条好消息:①TIOBE排名超过C和Java②新版本发布3.10.0,还有今天刚发布的《What’s New in Python(2021.10.15)》
来自TIOBE的最新10月份统计数据显示,Python首次超越Java.JavaScript.C语言等,成为最受欢迎的编程语言.TIOBE过去20年一直在追踪编程语言的受欢迎程度,其数据来自于对25个 ...
- PNET LAB 4.2.8 安装配置 最新版本PNET 2021.2.15 update 附下载地址
PNETLAB 4.2.8 2021.2.15 官方网站:https://pnetlab.com/pages/download 链接:https://pan.baidu.com/s/1FbMjz4 ...
- 科大讯飞 笔试题2021.8.15 Java版
1.将数的二进制表示中倒数第二个0改为1 2.求出字符串中包含26个字母的子串的最小长度,其中"?"可以代替其中一个字母 3.计算二叉树中距离为k的节点对的数量 1.将数的二进制表 ...
- USACO 2020~2021 February Contest GOLD 题解(3)
USACO 2020~2021 二月黄金组 题解(3) 3. Count The Cows As is typical, Farmer John's cows have spread themselv ...
- 2021.05.15继承球体和圆柱体
原文链接: 自动车 手动车:https://codeeggs.github.io/2021/05/15/2021.05.15%E7%BB%A7%E6%89%BF%E7%90%83%E4%BD%93%E ...
- 【牛客每日一题】4.15 Treepath 题解(树上dfs/树形DP)
题目链接:https://ac.nowcoder.com/acm/problem/14248 来源:牛客网 题目描述 给定一棵n个点的树,问其中有多少条长度为偶数的路径.路径的长度为经过的边的条数.x ...
最新文章
- 关于计算机网络传输介质 下列叙述正确的是,《计算机基础》习题1-7
- ASP.NET JScript公共类(非常有用)
- 安装Linux后修改grub默认启动选项
- VSS自动发布站点功能扩展
- Linux系统的目录绑定配置
- JavaWeb学习笔记——JSTL核心标签库
- 【Excel】VBA自动化更新数据表格
- Xcode生成的可执行文件在哪里
- velocity显示List与Map的方法详细解析
- SAP Fiori UI上关于时区Timezone的一些问题和解决方案
- 在spring中使用JdbcTemplate进行数据库管理操作
- Apache Tika 内容抽取工具集合
- 用python编程、假设一年期定期利率_《Python程序设计》题库.pdf
- 卡永久QQ飞车紫钻 记录
- Window10问题一揽子解决方案(自动唤醒,自动更新,卸载自带office16,华硕卸载myasus以及myasus频繁提示更新,停用WindowDefender)
- Macbook开启HIDPI(2K显示器)
- Vim光标定位操作快捷键
- 3. 工业大数据的创新价值
- 领取1024节日勋章(程序员必看)
- Python3+Scrapy通过代理爬取携程酒店数据
热门文章
- 基于Spring MVC + Spring + MyBatis的【图书信息管理系统(一)】
- [绍棠] ijkplayer 的编译、打包 framework 和 https 支持
- 认识Prometheus
- linux即插即用的无线网卡,通过一块无线网卡同时连接 WiFi 热点并且无线共享网络...
- 毕业之后,生活的压力扑面而来,曾经的梦想也流离失所
- 17_小米监控Open-Falcon:Mongodb监控
- springboot项目如何配置多数据源
- Binormal - 副法线
- 计算机音乐谱刚好遇见你,刚好遇见你 (完整版)
- php 乱码 amp 26472,9月轿车销量TOP10:卡罗拉反超雷凌,新宝来大涨102.6%