hihocoder [Offer收割]编程练习赛24

比赛https://hihocoder.com/contest/offers24/problems

应该能拿到个鼠标垫

舒服了

这个oj体验好差,每次都要先因为选错语言CE一发,而且刷新之后还是默认GCC

A ⼩Hi的钟表

算秒数,算角度,注意180以内,所以大于180之后拿360减

#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
int h, m, s, t;int main(){//freopen("in.txt", "r", stdin);int _;scanf("%d", &_);for (; _--;){scanf("%d%d%d%d", &h, &m, &s, &t);t += h * 3600 + m * 60 + s;t %= 3600 * 12;m = t % 3600;double ans = fabs(1.0 * t / 120 - 1.0 * m / 10); if (ans > 180) ans = 360 - ans; //printf("t = %d\n", t);//double ans = 1.0 * t / 120;printf("%.4lf\n", ans);}return 0;
} 

B 影院座位

没想到这题居然是最难的一题,卡了一万年

hint: 中位数,前缀和

#include <cstdio>
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
const int MAXN = 1e6 + 5;
int a[MAXN];
int Getc[MAXN];
int Sum[MAXN];
int main(){//freopen("in.txt", "r", stdin);int N, M;cin >> N >> M;for(int i = 1; i <= N; i++) {scanf("%d", Getc + i);}int cnt = 0;for(int i = 1; i <= N; i++) {if(Getc[i] == 0) {a[cnt++] = i;}}for(int i = 0; i < cnt; i++) {a[cnt + i] = a[i] + N;}Sum[0] = a[0];for(int i = 1; i < cnt * 2; i++) {Sum[i] = Sum[i - 1] + a[i];}if(cnt < M) {printf("-1\n");return 0;}int ans = a[M / 2] * (M / 2) - Sum[M / 2 - 1] + Sum[M - 1] - Sum[M / 2] - (M - 1 - M / 2) * a[M / 2];for(int i = 1; i < cnt; i++) {ans = min(ans, a[(i + i + M) / 2] * (M / 2) - Sum[(i + i + M) / 2 - 1] + Sum[i - 1] + Sum[M + i - 1] - Sum[(i + i + M) / 2] - (M - 1 - M / 2) * a[(i + i + M) / 2]);}printf("%d\n", ans);return 0;
}

C 同步H公司的终端

树形DP,统计每个点到叶子的最大距离,让每个子树都是一个“相等”、“平衡”状态

尽量修改靠上的节点,这样最后修改结果最小

#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;
const int N = 1e5 + 7;
LL a[N], ans;
int n;
bool NotRoot[N];
int FindRoot(){for (int i = 1; i <= n; i++) if (!NotRoot[i]) return i;return -1; 
} struct Edge{int from, to, nxt;Edge(){}Edge(int u, int v, int n):from(u), to(v), nxt(n){}
} edges[N * 2];
int E, head[N]; 
LL dist[N];
inline void AddEdge(int f, int t){edges[++E] = Edge(f, t, head[f]);head[f] = E;
}
inline void Init(){E = -1;for (int i = 0; i <= n; i++) head[i] = -1;for (int i = 0; i <= n; i++) dist[i] = 0;
}int dfs(int u, int pre){//printf("dfs(%d, %d)\n", u, pre);LL Max = 0;for (int i = head[u]; i != -1; i = edges[i].nxt){Edge &e = edges[i];dfs(e.to, u);Max = max(Max, dist[e.to]);}dist[u] = Max + a[u];for (int i = head[u]; i != -1; i = edges[i].nxt){Edge &e = edges[i];ans += Max - dist[e.to];}
}int main(){//freopen("in.txt", "r", stdin);int u, v;for (; ~scanf("%d", &n);){a[0] = 0;for (int i = 1; i <= n; i++) scanf("%d", &a[i]);Init();for (int i = 1; i < n; i++) {scanf("%d%d", &u, &v);AddEdge(u, v);NotRoot[v] = 1;}int root = FindRoot();ans = 0;dfs(root, -1);printf("%lld\n", ans);}return 0;
}

D 大富翁

本以为是个压轴题,以为要线段树什么各种数据结构来维护

然后一看过的人多的不正常,想,先拿30分再说,然后就莫名其妙过了

标算应该不是这么粗暴的,加强数据应该还是过不了

这里就是根据题意模拟

#include <cstdio>
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
const int MAXN = 1e6 + 5;
int a[MAXN];
int N;
int Find(int x) {if(x > N) return 0;return 1 + Find(x + a[x]);
}
int main(){cin >> N;for(int i = 1; i <= N; i++) {scanf("%d", a + i);}int Q;cin >> Q;while(Q--) {int x;scanf("%d", &x);if(x == 1) {int y;scanf("%d", &y);printf("%d\n", Find(y));} else {int u, v;scanf("%d%d", &u, &v);a[u] = v;}}return 0;
}

hiho一下 第165周

分隔相同字符

复杂度1e5*26*26

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1e5 + 7;
char st[N];
int Hash[222], n;int getMax(char ch){int ans = 0;for (char i = 'a'; i <= 'z'; i++){if (i == ch) ans = max(ans, Hash[i]-1);else ans = max(ans, Hash[i]);}return ans;
}char FindChar(char last){n--;for (char i = 'a'; i <= 'z'; i++){if (!Hash[i]) continue;if (i == last) continue;int Max = getMax(i);if (Max * 2 > n + 1) continue;Hash[i]--;return i;}return '0';
}int main(){//freopen("in.txt", "r", stdin);scanf("%s", st);int len = strlen(st);n = len;memset(Hash, 0, sizeof(Hash));for (int i = 0; i < len; i++) Hash[st[i]]++;int Max = getMax('0');if (Max * 2 > len + 1) puts("INVALID");else {char last = ' ';for (int i = 0; i < len; i++){last = FindChar(last);printf("%c", last);}puts("");}return 0;
}

转载于:https://www.cnblogs.com/cww97/p/7533939.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/400006.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LaTex bib引用知网论文NoteExpress格式文献 —— cnki2bib

目录先决条件安装使用最后…棘手的用法简单用法获取NoteExpress格式到剪贴板将剪贴板内容转换在LaTex中使用调用格式效果TeXstudio 4.2.3 Windows 10 20H2 以下内容引自Python cnki2bib包介绍 先决条件 Python3 安装 pip install cnki2bibWinR打开cmd使用以上命令安装 使…

测试配置yum仓库的http镜像

测试配置yum仓库的http镜像一、基础环境 1、在tvm-base的基础上&#xff0c;复制一个镜像为tvm-yum来测试。 2、网络&#xff1a; eth0&#xff1a;host-only&#xff08;用于虚拟内网&#xff0c;手动固定IP&#xff0c;这样从宿主机可以直接连接到这个vm&#xff09; eth1&am…

24. 设计原则

总的来说是高内聚低耦合&#xff0c;内聚是把变化点进行封装&#xff0c;耦合还是要有的&#xff0c;只是要尽量少&#xff0c;不同内聚点的联系方式有两种&#xff0c;一种就是继承&#xff0c;一种就是组合。组合又分为基于接口组合还是基于类组合&#xff0c;基于接口就可以…

js中 json详解

var aa {name:"zoumm",age:23};var bb JSON.stringify(aa);console.log(bb); //打印出{"name":"zoumm","age":23} json的语法可以表示以下三种类型的值。 1、简单值&#xff1a;可以在json中表示字符串、数值、布尔和null。 2、对…

纸张大小

A0到A10的纸张尺寸表 纸的型号高(mm)x宽&#xff08;mm&#xff09;毫米高(mm)x宽(mm)英寸4A02378 x 1682 mm93.6 x 66.2 in2A01682 x 1189 mm66.2 x 46.8 inA01189 x 841 mm46.8 x 33.1 inA1841 x 594 mm33.1 x 23.4 inA2594 x 420 mm23.4 x 16.5 inA3420 x 297 mm16.5 x 11.7…

试用合肥工业大学学位论文 LaTeX 模板(HFUT_Thesis)

目录编辑器模板下载TeXstudio 4.2.3 Windows 10 20H2 编辑器 编辑器的下载和安装参考Latex下载 —— 倔强菜鸟(转载) 模板下载 见合肥工业大学硕士毕业论文的LaTex模板? 感谢大佬~ 大佬的项目地址&#xff1a;https://github.com/HFUTTUG/HFUT_Thesis/releases 下载下来后…

[CareerCup] 1.1 Unique Characters of a String 字符串中不同的字符

1.1 Implement an algorithm to determine if a string has all unique characters. What if you cannot use additional data structure? 这道题让我们判断一个字符串中是否有重复的字符&#xff0c;要求不用特殊的数据结构&#xff0c;这里应该是指哈希表之类的不让用。像普…

怎么查询局域网内全部电脑IP和mac地址..

在局域网内查询在线主机的IP一般比较简单&#xff0c;但局域网内全部电脑的IP怎么才能够查到呢&#xff1f;查询到IP后我还要知道对方的一些详细信息&#xff08;如MAC地址、电脑名称等&#xff09;该怎么查询呢&#xff1f;&#xff1f;&#xff1f; 工具/原料 Windows 网络 方…

python flask 通过ajax向后台传递数组参数

https://blog.csdn.net/m0_38061194/article/details/78851152 ajax 像后台传递参数&#xff0c;一般是字典的形式传递&#xff0c;但是如果字典的value的值是一个数组的话&#xff0c;通过request.form 获取得到的结果是 None。这是就需要把数组对象转化为json字符串&#xf…

JS,JQuery杂谈

JS返回页面&#xff1a; JS返回前一个页面&#xff0c;经常看到有人用window.history.go(-1)这种方法 这种放的确可以返回&#xff0c;也仅仅只是返回&#xff0c;返回的页面信息却没有刷新。也有人用windows.history.back()&#xff0c;但是经常返回的时候会丢失页面&#xf…

C语言一阶低通、高通滤波器滤除截止频率外的杂波

目录理论推导产生测试信号sin_cal.csin_cal.h生成波形一阶滤波器FirstOrderFilter.cFirstOrderFilter.h测试低通滤波器高通滤波器IAP15W4K58S4 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 串口示波器&#xff1a;Vofa 1.3.10 理论推导 低通滤波器 …

OAF_开发系列19_实现OAF对话框提示dialogPage(案例)

20150716 Created By BaoXinjian 一、摘要 Oracle dialogPage是OAF提示框的一种用法&#xff0c;具体应用例如在删除数据时&#xff0c;提示用户进行确认是否可以删除 二、实现方法 在CO中添加如下方法 public void processFormRequest(OAPageContext pageContext,OAWebBean we…

flask ajax 笔记

html 其中 {{url_for(add)}} 的 add 为 flask 路由函数名 dataType: "json", 加了这句&#xff0c;才能读到 flask 返回的 json var my_tra_info {"key1":"val1","key2":val2};$.ajax({type:post,async:false,url:"{{url_fo…

设计模式(一)---简单工厂模式

1&#xff0c;简介&#xff1a;简单工厂模式&#xff0c;又称为静态工厂模式&#xff0c;是通过专门定义一个类来负责创建其他类的实例&#xff0c;被创建的实例通常都具有共同的父类。 2&#xff0c;简单工厂模式的结构 2.1&#xff1a;简单工厂的通用结构 2.2&#xff1a;示意…

给LaTex输出的论文PDF加上电子签名

目录问题准备签名插入签名TeXstudio 4.2.3 Windows 10 20H2 参考资料&#xff1a;研究生毕业论文电子签名怎么弄&#xff1f;—— kk肥妹 问题 完成论文之后&#xff0c;需要加上签名&#xff0c;但LaTex输出的结果是PDF格式的 准备签名 准备自己的签名&#xff0c;比如直接…

asp.net模态窗口返回值

个人感觉模态窗口在做网站的时候&#xff0c;使用到的比较少&#xff0c;前段时间在做项目时要实现以模态窗口传值和接收返回值&#xff0c; 模态窗口传值实现比较简单&#xff0c;但是做好后发现在Chrome浏览器中接收不到返回值&#xff0c;修改好Chrome浏览器的问题后 大概过…

web前端-css

1.1CSS 链接的四种状态&#xff1a;a:link --普通的、未被访问的链接 a:visited --用户已访问的链接 a:hover --鼠标指针位于链接的上方 a:active --链接被点击的时刻这里我们需要注意的是这四个属性设置要遵循的顺序问题&#xff1a; a:hover 必须位于 a:link 和 a:visited 之…

PyCharm设置字体大小与颜色

https://jingyan.baidu.com/article/fedf0737b31f7435ac8977de.html Editor -> Color & Fonts -> Font

判断两个矩形相交以及求出相交的区域

问题&#xff1a;给定两个矩形A和B&#xff0c;矩形A的左上角坐标为&#xff08;Xa1,Ya1&#xff09;&#xff0c;右下角坐标为&#xff08;Xa2,Ya2&#xff09;&#xff0c;矩形B的左上角坐标为&#xff08;Xb1,Yb1&#xff09;&#xff0c;右下角 坐标为&#xff08;Xb2,Yb2&…

【MSP430G2553】图形化开发笔记(1) 配置环境

目录CCS的配置下载和安装激活安装Grace并导入CCS安装MSP430Ware并导入CCS安装XDCtools并导入CCS建立工程Welcome介绍开始打开官方点灯Demo平台&#xff1a; Code Composer Studio 6.2.0 Grace 2.2.0 MSP430G2553 LaunchPad™ Development Kit (MSP-EXP430G2ET) CCS的配置 支…