ACM---大一第三周周赛(Floyd算法+并查集算法学习周)
🚀write in front🚀
📝个人主页:认真写博客的夏目浅石.CSDN
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
📣系列专栏:ACM周训练题目合集.CSDN
💬总结:希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🖊
✉️为什么我们不知疲倦,因为我们都在做自己所热爱的事 ♐
文章目录
- A - Color the ball
- B - Suits
- C - 六度分离
- D - 无处不在的宗教
- E - 农场派对
- F - 怪物(简易版)
- G - 嫌疑犯
- 比赛情况:
- 总结
A - Color the ball
杭电—Color the ball
解题思路:考察差分数组,基础模板
#include<iostream>
#include <cstring>using namespace std;int arr[100010];
int n,i;int main()
{while(scanf("%d", &n), n!=0){memset(arr, 0, sizeof(arr));for(i=1;i<=n;i++){int l,r;cin>>l>>r;arr[l]++;arr[r+1]--;}for(i=1;i<=n;i++){arr[i]+=arr[i-1];if(i!=n){printf("%d ", arr[i]);}else printf("%d",arr[i]);}cout<<endl;}return 0;
}
B - Suits
洛谷—Suits
解题思路:数学问题,一直分类讨论就可以解了
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>using namespace std;int a,b,c,d,e,f;
typedef long long ll;
ll m1,m2;
ll mn=-1;int main()
{ cin>>a>>b>>c>>d>>e>>f;int max=0;int mn=min(a,d);int mx=min(c,d);if(e*mn+f*min(b,min(c,d-mn))>max){max=e*mn+f*min(b,min(c,d-mn));}if(e*min(a,d-min(b,mx))+f*min(b,mx)>max){max=e*min(a,d-min(b,mx))+f*min(b,mx);}if(e*mn>max){max=e*mn;}if(f*min(b,mx)>max){max=f*min(b,mx);}cout<<max;return 0;
}
C - 六度分离
杭电—六度分离
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>using namespace std;#define inf 0x3f3f3f3fint g[101][101];
int n,m,ans;int main()
{while(cin>>n>>m){for(int i=0;i<n;i++){for(int j=0;j<n;j++){if(i==j) g[i][j]=0;else g[i][j]=inf;}}while(m--){int a,b;cin>>a>>b;g[a][b]=g[b][a]=1;}for(int k=0;k<n;k++){for(int i=0;i<n;i++){for(int j=0;j<n;j++){if(g[i][j]>g[i][k]+g[k][j]){g[i][j]=g[i][k]+g[k][j];}}}}//以上全部是模板int flag=0;for(int i=0;i<n;i++){for(int j=0;j<n;j++){if(g[i][j]>7){puts("No");flag=1;break;}}if(flag) break;}if(flag==0)puts("Yes");}return 0;
}
D - 无处不在的宗教
POJ无处不在的宗教
//水题,竟然我也能AC....
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>using namespace std;int n,m;
int p[100010];int find(int x)
{return p[x]==x?x:(p[x]=find(p[x]));//算法模板}
int s=1;
int main()
{cin>>n>>m;
again:int ans=0;for(int i=1;i<=n;i++) p[i]=i;while(m--){int i,j;cin>>i>>j;i=find(i);j=find(j);if(i!=j){p[i]=j;//模板}}for(int i=1;i<=n;i++){if(find(i)==i){ans++;}}printf("Case %d: %d\n",s++,ans);cin>>n>>m;if(n==0&&m==0) return 0;else goto again;return 0;
}
E - 农场派对
#10075. 「一本通 3.2 练习 1」农场派对
#include<iostream>
#include<algorithm>
#include<cstring>using namespace std;#define inf 0x3f3f3f3f//结论,一个很大的数,适合这个算法的初始化int n,m,x;
long long g[1010][1010];
long long path[1010][1010];int main()
{int max=0;cin>>n>>m>>x;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(i==j) g[i][j]=0;else g[i][j]=inf;}}for(int i=1;i<=m;i++){int a,b,t;cin>>a>>b>>t;g[a][b]=t;}for(int k=1;k<=n;k++){for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(g[i][j]>g[i][k]+g[k][j]){g[i][j]=g[i][k]+g[k][j];}}}}//以上全部是算法模板for(int i=1;i<=n;i++){if(g[i][x]+g[x][i]>=max)//这里根据题目要求来写就对了,调试了一会儿AC了{max=g[i][x]+g[x][i];}}cout<<max<<endl;return 0;
}
F - 怪物(简易版)
A. Monsters (easy version)
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>using namespace std;typedef long long ll;ll t,n,arr[200010],i,j;int main()
{cin>>t;while(t--){ll cnt=0;cin>>n;for(i=1;i<=n;i++) cin>>arr[i];sort(arr+1,arr+n+1);if(arr[1]!=1){cnt+=arr[1]-1;arr[1]=1;}for(i=2;i<=n;i++){if(arr[i]-arr[i-1]>=2){cnt+=arr[i]-arr[i-1]-1;arr[i]=arr[i-1]+1;}}cout<<cnt<<endl;}return 0;
}
G - 嫌疑犯
The Suspects
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>using namespace std;int n,m,ans,k;
int p[100010];
int a[100010];int find(int x)
{return p[x]==x?x:(p[x]=find(p[x]));//并查集的固定模板
}inline void he(int i,int j)
{int x=find(i);int y=find(j);if(x<y)//这里意思是:让小的数做根节点,也是为了贴近题目要求{p[y]=x;}else p[x]=y;
}int main()
{while(cin>>n>>m&&n||m){ans=0;for(int i=0;i<n;i++) p[i]=i;//初始化while(m--){cin>>k;cin>>a[0];//合并for(int i=1;i<k;i++){cin>>a[i];he(a[i],a[i-1]);}}for(int i=0;i<n;i++){if(find(i)==0)//根据题意来求解。{ans++;}}cout<<ans<<endl;}return 0;
}
比赛情况:
大一第十(前面有个学长试水~),退步好多这一次,下面做一下这一周比赛的一个总结,以便于后面的学习。
表述题目难度以及做题时候的感想:
A---
临时加上去的,感觉学长们为了照顾那些爆0的同学加的,简单差分模板。
B---
这个是我第二个做出来的,花费了我巨多时间,哭了,我的思维还是不够敏捷,需要多加练习思维题目,不然这种题目大家都拿到了,我还要花好多时间才能过,真的很难受的
C---
没时间做,后面自己尝试了一下子,发现只要根据题目逻辑去写是完全套板子的问题,就是多加一点循环和判断的问题。
D---
这个更加的板子,我一次可AC了,非常模板。
E---
Floyd算法的板子题目,我第一个AC的这个题目,相对于板子,只需要加一点判断就可以了,简单。
F---
没时间做,后面自己尝试了一下子,思维题,被我的好哥们讲懂了,我还是不擅长写思维题目,脑子很笨。
G---
这个比赛的时候写了,but没写完全,就结束了,后面补了一下题,发现这个题目就是并的时候需要注意外,别的就是板子,害,我可能太笨了。
总结
心态:就是可能看到别人比我聪明,就心里非常难受,比赛的时候落后,心里更是难受,觉得算法好难学啊,好想退缩,但是算法迟早是要学习的,不如顶住压力,好好学,哪怕倒数第一,也要勇往直前,放平心态,
继续加油夏目浅石
。
学习方法:一定要学会思考,把每一周的题目自己
独立思考至少30min
后不会了再去看答案学习人家的思路
,不然效率很低下。还有就是,昨完一定一定要总结模板
和总结思路
,总结题型!!!!!!!!!!!
时间安排:后续要晚上7-10点好好学习算法,到宿舍补一补学校课程,看看网课,学校课程能逃就逃,然后学点有用的。
虽然很苦难,但是还是要继续坚持下去。
激励一下自己吧,虽然挺难过的
相关文章:

ACM---大一第三周周赛(Floyd算法+并查集算法学习周)
🚀write in front🚀 📝个人主页:认真写博客的夏目浅石.CSDN 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 📣系列专栏:ACM周训练题目合集.CSDN 💬总结:…...

spring整合mybatis和Junit
该项目使用spring纯注解方式开发,用配置类取代spring的配置文件 一、导入依赖 整合Junit需要导入spring-test 整合mybatis需要导入spring-jdbc、mybatis-spring <dependencies><!-- https://mvnrepository.com/artifact/org.springframework/spring-cont…...

Spring Boot 3.0系列【7】核心特性篇之JSON
有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot版本3.0.3 源码地址:https://gitee.com/pearl-organization/study-spring-boot3 文章目录 前言JSON什么是JSON常用JSON 库GsonFastJsonJacksonJackson 还是 FastjsonSpring Boot 中的 JSON1. 自动配置 Jackson2. @…...

【数据结构初阶】二叉树顺序结构:堆的实现
前言 前边077带着大家学习了树与二叉树的相关概念,这篇文章我们来实现一个二叉树的顺序结构。 二叉树的顺序结构 普通的二叉树是不适合用数组来存储的,因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结构存储。现实中我们通常把堆(一种二叉…...

C/C++:动态内存管理
目录 一. C/C内存分布 二. C/C动态内存管理 2.1 C语言动态内存管理 2.2 C动态内存管理 2.2.1 new/delete操作符 2.2.2 operator new与operator delete函数 2.3 new/delete的实现原理 2.4 定位new(placement - new) 2.5 new/delete和malloc/free的…...

黑猫带你学eMMC协议第28篇:eMMC的开漏和推挽模式(push-pull open drain)
本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。 文章为个人辛苦整理,付费内容,已加入原创侵权保护,禁止私自转载。 文章所在专栏:《黑猫带你学:eMMC协议详解》 1 什么是开漏和推挽 1.1 推挽电路是什么 关于推挽和开漏电路,更多介绍详见我的另一篇文章…...

simulink PID控制
系列文章目录 文章目录系列文章目录前言一、非线性系统线性化原理二、反馈控制开环控制反馈or闭环控制PID ControllerPID微调案例总结前言 将非线性系统近似线性化PIDblock与微调 提示:以下是本篇文章正文内容,下面案例可供参考 一、非线性系统线性化 …...

如何在for循环内执行异步操作
var定义的i是全局的,每次遍历都会覆盖,最后i的值为10,所以输出10次10 for (var i 0; i < 10; i) {setTimeout(function () {console.log(i) // 输出10遍10}, 1000 i * 100)}setTimeOut 第三个函数 for (var i 0; i < 10; i) {setT…...

性能测试——LoadRunner: Controller的使用
Controller Controller是用来创建测试环境,执行在VUG中编写的测试脚本 可以直接点击Controller的快捷方式打开,也可以在VUG中打开 这里将虚拟用户数设置为3,比较适合自己的电脑性能 整个controller分为下面几个模块 这里先设置左下角的目标计划 设置初始化:双击…...

ChatGPT解答:纯前端文档预览,Vue实现,无需后端,支持Word、Excel、PPT、pdf、文本、图片,附接入demo和文档
ChatGPT解答:纯前端文档预览,Vue实现,无需后端,支持Word、Excel、PPT、pdf、文本、图片,附接入demo和文档 ChatGPTDemo Based on OpenAI API (gpt-3.5-turbo). 纯前端文档预览,Vue实现,无需后…...

刷题记录:牛客NC13950 Alliances 到树上联通点集的最短距离
传送门:牛客 题目描述: 题目较长,此处省略 输入: 7 1 2 1 3 2 4 2 5 3 6 3 7 2 2 6 7 1 4 3 5 1 2 1 1 1 5 2 1 2 输出: 2 1 1一道比较复杂的树题.需要一些复杂的讨论以及LCA知识 对于LCA,可以使用树链剖分进行解决 然后我们看一下题目,我们会发现有这样一个简单的结论,那就…...

行为型模式 - 状态模式State
学习而来,代码是自己敲的。也有些自己的理解在里边,有问题希望大家指出。 个人理解:感觉像桥接模式 代理模式。不知道这么想对不对,还希望笔记在放出后,有大佬彻底了解了给我解解惑。 策略模式的定义与特点 策略&…...

电视剧《狂飙》太过诡异,主演各个悄无声息,龙套演员却身价倍增
说起电视剧《狂飙》,相信很多人都有过观看,这部以反腐为题材的大剧,尺度之大近年来绝无仅有。不过观众在被剧情震撼的同时,也发现了一些诡异的事情,比如说主角和配角的反差,让人感觉很不适应。 在电视剧《狂…...

【微信小程序】-- 案例 - 本地生活(二十)
💌 所属专栏:【微信小程序开发教程】 😀 作 者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…...

LeetCode 每日一题 2023/2/27-2023/3/5
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录2/27 1144. 递减元素使数组呈锯齿状2/28 2363. 合并相似的物品3/1 2373. 矩阵中的局部最大值3/2 面试题 05.02. 二进制数转字符串3/3 1487. 保证文件名唯一3/4 982. 按位与为…...

SpringMVC中JSON数据的设置、RestFul风格
Java知识点总结:想看的可以从这里进入 目录3.4、JSON数据3.4.1、前端使用3.4.2、后端使用1、Jackson2、fastjson3.5、RestFul风格3.5.1、简介3.5.2、使用3.4、JSON数据 3.4.1、前端使用 前端在JavaScript中有封装的JSON对象,可以直接用来操作JSON数据。…...

Clion连接Docker,使用HElib库
文章目录需求Clion连接服务器内的DockerDockerCLionDocker内配置HElib库参考需求 HElib库是用C编写的同态加密开源库,一般在Linux下使用为了不混淆生产环境,使用Docker搭建HElib运行环境本地在Windows下开发,使用的IDE为Clion,本…...

go网络编程-websocket
1. WebSocket编程 文章目录1. WebSocket编程1.1.1. webSocket是什么1.1.2. 举个聊天室的小例子server.go文件代码hub.go文件代码data.go文件代码local.html文件代码1.1.1. webSocket是什么 WebSocket是一种在单个TCP连接上进行全双工通信的协议 WebSocket使得客户端和服务器之…...

Microsoft designer 使用教程
继各种ai绘图软件诞生之后 dell 2 playground.... 微软自己研发的重量级产品 Microsoft designer 上线了 Microsoft Designer 是微软公司推出的一款设计工具,主要用于快速创建Web和移动应用程序的原型设计。它提供了一系列的工具和模板,可以帮助用户…...

《Docker系列》Docker容器修改配置文件后,重启失败,如何修改配置并启动容器?
Docker容器修改配置文件后,重启失败,如何修改配置并启动容器? docker部署的MySQL容器,修改了my.cnf配置文件,重启的时候导致无法启动 通过查日志发现,配置文件中的binlog-db-dbhw写错了,应该是…...

遇到多个构造器参数时要考虑使用构建器
静态工厂和构造器有个共同的局限性:他们都不能很好地扩展到大量的可选参数。比如用一个类表示包装食品外面显示的营养成分标签(包括必选域和可选域)。 重叠构造器 对于这样的类一般习惯采用重叠构造器(telescoping constructor&…...

【Storm】【五】Storm集成Kafka
Storm集成Kafka 一、整合说明二、写入数据到Kafka三、从Kafka中读取数据一、整合说明 Storm 官方对 Kafka 的整合分为两个版本,官方说明文档分别如下: Storm Kafka Integration : 主要是针对 0.8.x 版本的 Kafka 提供整合支持;Storm Kafka …...

GVRP-LNP-VCMP讲解
目录 GVRP讲解 动态创建Vlan并将端口加入Vlan GVRP消息类型 GVRP工作原理 LNP讲解 动态修改接口链路类型 VCMP讲解 动态创建Vlan 相关概念 Vlan同步 VCMP与GVRP的区别 GVRP讲解 动态创建Vlan并将端口加入Vlan GVRP(GARR Vlan Registration Protocol…...

28个精品Python爬虫实战项目
先来说说Python的优势!然后给大家看下这28个实战项目的实用性!Python跟其他语言相比,有以下优点:1. 简单Python是所有编程语言里面,代码量最低,非常易于读写,遇到问题时,程序员可以把…...

相信人还是相信ChatGPT,龙测首席AI专家给出了意料之外的答案
最近,关于ChatGPT的话题太火了!各大社交软件都是他的消息!从去年12月份ChatGPT横空出世,再到近期百度文心一言、复旦Moss的陆续宣布,点燃了全球对AIGC(内容人工智能自动生成)领域的热情…...

安卓逆向_5 --- jeb 和 AndroidStudio 动态调试 smali
Jeb 工具的使用 :https://www.52pojie.cn/forum.php?modviewthread&tid742250:https://zhuanlan.zhihu.com/p/302856081动态调试 smali 有两种方法: Jeb 调试AndroidStudio smalidea 插件动态调试。1、Jeb 动态调试 smali JEB是一个…...

docker-容器命令
1.新建启动 docker run options image command [arg..] options: --name"容器新名字" -d:后台运行程序 -it:交互式运行 -P: 随机端口 -p: 指定端口 docker run -it ubuntu /bin/bash docker run -it ubuntu:v1 /bin/bash docker run -it 1c352…...

Spring——是什么?作用?内容?用到的设计模式?
目录 什么是spring? spring是为了解决什么问题而衍生的?(历史)Spring解决了实际生产中的什么问题? spring包含了哪些部分?(组成) Spring的特点是什么? spring框架中…...

Qt交叉编译环境搭建
环境及版本: 编译机:Deepin 20.3 Qt 5.12.9 arm编译工具: gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-gnueabihf.tar.xz 运行机:创龙335X开发板 1.下载arm编译工具: gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-…...

Java switch case 语句
Java 的 switch case 语句是一种常用的控制流语句,用于基于不同的输入值执行不同的操作。本文将详细介绍 Java switch case 语句的作用、用法以及在实际工作中的应用。 一、switch case 语句的作用 switch case 语句是一种多分支条件语句,它基于不同的输…...