USACO历年青铜组真题解析 | 2021年2月 📅 发布时间:2026/7/8 6:22:21 👁️ 浏览次数: 欢迎大家订阅我的专栏算法题解C与Python实现本专栏旨在帮助大家从基础到进阶 逐步提升编程能力助力信息学竞赛备战专栏特色1.经典算法练习根据信息学竞赛大纲精心挑选经典算法题目提供清晰的代码实现与详细指导帮助您夯实算法基础。2.系统化学习路径按照算法类别和难度分级从基础到进阶循序渐进帮助您全面提升编程能力与算法思维。适合人群准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生希望系统学习C/Python编程的初学者想要提升算法与编程能力的编程爱好者附上汇总贴USACO历年青铜组真题解析 | 汇总-CSDN博客P9944 Comfortable Cows【题目来源】洛谷[P9944 USACO21FEB] Comfortable Cows B - 洛谷【题目描述】Farmer John 的草地可以被看作是一个由正方形方格组成的巨大的二维方阵想象一个巨大的棋盘。初始时草地上是空的。Farmer John 将会逐一地将N NN1 ≤ N ≤ 10 5 1\le N\le 10^51≤N≤105头奶牛加入到草地上。第i ii头奶牛将会占据方格( x i , y i ) (x_i,y_i)(xi,yi)不同于所有已经被其他奶牛占据的方格0 ≤ x i , y i ≤ 1000 0\le x_i,y_i\le 10000≤xi,yi≤1000。一头奶牛被称为是「舒适的」如果它水平或竖直方向上与恰好三头其他奶牛相邻。Farmer John 对他的农场上舒适的奶牛数量感兴趣。对1 … N 1\ldots N1…N中的每一个i ii输出第i ii头奶牛加入到草地上之后舒适的奶牛的数量。【输入】输入的第一行包含一个整数N NN。以下N NN行每行包含两个空格分隔的整数表示一头奶牛所在的方格坐标( x , y ) (x,y)(x,y)。输入保证所有方格的坐标是不同的。【输出】输出的第i ii行包含前i ii头奶牛加入到草地上之后舒适的奶牛的数量。【输入样例】8 0 1 1 0 1 1 1 2 2 1 2 2 3 1 3 2【输出样例】0 0 0 1 0 0 1 2【解题思路】【算法标签】《洛谷 P9944 Comfortable Cows》 #USACO# #O2优化# #2021#【代码详解】#includebits/stdc.husingnamespacestd;intn,res0,cnt0;inta[1005][1005];intdx[4]{-1,0,1,0},dy[4]{0,1,0,-1};intmain(){cinn;// 输入nfor(inti1;in;i){// 遍历n头奶牛intx,y;// 定义每头奶牛的坐标x和yintcnt10,cnt20;// 定义添加前和添加后舒适量的统计cinxy;// 输入奶头的坐标for(intix-1;ix1;i){// 遍历这台奶牛周围计算添加之前的舒适量for(intjy-1;jy1;j){intans0;// 定义周围奶牛的数量初始为0if(a[i][j]1){// 如果该位置有奶牛for(intk0;k4;k){// 则判断周围4个方向是否有奶牛intxxidx[k];intyyjdy[k];if(xx0||yy0)continue;if(a[xx][yy]1)ans;// 有的话ans自增}if(ans3)cnt1;// 如果ans为3则舒适的奶牛数量加1}}}a[x][y]1;// 添加输入的奶牛for(intix-1;ix1;i){// 再次遍历这台奶牛周围计算添加之后的舒适量for(intjy-1;jy1;j){intans0;if(a[i][j]1){for(intk0;k4;k){intxxidx[k];intyyjdy[k];if(xx0||yy0)continue;if(a[xx][yy]1)ans;}if(ans3)cnt2;// 如果ans为3则舒适的奶牛数量加1}}}rescnt2-cnt1;// 计算前后的变化并累加到ans中有时相减会变为负数coutresendl;// 最后打印结果}return0;}【运行结果】8 0 1 0 1 0 0 1 1 0 1 2 1 2 1 0 2 2 0 3 1 1 3 2 2P9945 Clockwise Fence【题目来源】洛谷[P9945 USACO21FEB] Clockwise Fence B - 洛谷【题目描述】围绕 Farmer John 最大的草地的栅栏已经损坏了如今他终于决定要换一个新的栅栏。不幸的是当 Farmer John 在铺设新栅栏时一只巨大的蜜蜂突然出现在他的草地上追着他跑导致最后栅栏被沿着一条相当不规则的路径铺设。栅栏可以用一个字符串表示每个字符为Nnorth北、Eeast东、Ssouth南、Wwest西之一。每个字符表示一米长的一段栅栏。举例来说如果字符串为NESW这表示栅栏从起点开始向北延伸1 11米然后向东延伸1 11米然后向南延伸1 11米然后向西延伸1 11米回到栅栏的起点。栅栏的结束位置与开始位置相同而这是栅栏的路径上唯一会被到达多次的位置从而起始位置是唯一会被再次到达的位置在栅栏结束之时。结果栅栏确实围起了一个草地上连通的区域尽管这个区域可能形状十分奇特。Farmer John 想要知道他铺设栅栏的路径是顺时针当按字符串表示的顺序沿着栅栏的路径行走时被围起的区域位于右侧还是逆时针被围起的区域位于左侧。【输入】输入的第一行包含一个整数N NN1 ≤ N ≤ 20 1\le N\le 201≤N≤20。以下N NN行每行包含一个长度不小于4 44且不超过100 100100的字符串表示一个栅栏的路径。【输出】对N NN条输入的栅栏路径的每一条输出一行为CWclockwise顺时针或CCWcounterclockwise逆时针。【输入样例】2 NESW WSSSEENWNEESSENNNNWWWS【输出样例】CW CCW【算法标签】《洛谷 P9945 Clockwise Fence》 #USACO# #O2优化# #2021#【代码详解】#includebits/stdc.husingnamespacestd;intn,ans;string s;intd[4][4]{// 定义二维数组E为0W为1S为2N为3每个单元格的值为方向变化后的角度变化{0,0,90,-90},{0,0,-90,90},{-90,90,0,0},{90,-90,0,0}};intmain(){cinn;// 输入nfor(inti1;in;i){// for循环遍历n次询问cins;// 输入字符串ssss[0];// 因为最后要回到原点所以在字符串最后加上起始字符ans0;// 每轮询问角度统计都要归零for(inti0;is.length()-1;i){// for循环遍历s.length()-2个字符因为要比较i与i1intx,y;// 定义x和y坐标if(s[i]E)x0;// 根据i的字符确定x坐标if(s[i]W)x1;if(s[i]S)x2;if(s[i]N)x3;if(s[i1]E)y0;// 根据i1的字符确定y坐标if(s[i1]W)y1;if(s[i1]S)y2;if(s[i1]N)y3;if(d[x][y])ansd[x][y];// 当掉转角度不为0时加上角度的变化。}if(ans360)coutCWendl;// 当为360度时说明是顺时针转回来elseif(ans-360)coutCCWendl;// 当为-360度时说明是逆时针转回来}return0;}【运行结果】2 NESW CW WSSSEENWNEESSENNNNWWWS CCW
CnOpenData 国家级非遗代表性项目代表性传承人 国家级非物质文化遗产,是指列入国务院批准公布的国家级非物质文化遗产代表性项目名录中的所有非物质文化遗产项目,由文化部确定并公布的名录是保护非物质文化遗产的一种方式。国家级非物质文化遗产分属十大门类:民间文学,传统音乐… 2026/5/17 2:23:50
开题报告 springboot和vue 大学图书管理系统 目录系统背景与意义技术选型系统功能模块系统特色预期成果项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作系统背景与意义 大学图书管理系统是高校信息化建设的重要组成部分,传统的手工管理方式… 2026/7/7 3:48:33
数据传送指令 Day 5: 数据传送指令 本章介绍汇编语言中最基础的指令——数据传送指令。MOV是使用频率最高的指令之一。 1. MOV指令 1.1 基本用法 ; MOV 目标, 源 ; 把源的值复制到目标mov eax, 100 ; 寄存器 ← 立即数 mov eax, ebx ; 寄存器 ← 寄存器 mov eax, [var] … 2026/7/3 22:37:57
万用表使用场景 我们就从最实用的场景讲起,再深入解释一个常见现象——为什么1.5V的电池,测出1.2V就算“没电”了。一、什么时候需要使用万用表?当你看不见电流,又想知道电是否“通”、电压是否“对”、零件是否“坏”的时候,就用万用… 2026/7/8 6:20:51
B站视频秒变AI知识库:免费插件实现高效技术学习 🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 你是不是也有这样的经历:B站收藏夹里塞满了各种教程、技术分享、科普视频,但真正需要的时候却找不到ÿ… 2026/7/8 6:18:51
STM32G0B1RE与TPIS1S1385实现高精度人体存在检测方案 1. 项目背景与核心需求在智能家居和工业自动化领域,精确的存在感应和运动检测一直是关键技术痛点。传统红外传感器(PIR)存在检测距离短、易受环境温度影响等问题,而基于雷达的解决方案又往往成本过高。TPIS1S1385这款数字红外热电堆传感器与STM32G0B1RE微… 2026/7/8 6:16:50
2026抖音实况动图去水印方法:实况图无水印保存手机教程 抖音实况动图凭借动态鲜活的视觉效果,成为很多人日常收藏、素材整理、个人作品备份的常用内容形式。但平台默认保存的实况图、动态素材,几乎都会自带官方水印、角标、飘字标识,不仅影响画面整洁度,也不利于个人素材的规整收藏与二… 2026/7/8 6:14:50
10-30V直流,每轴1.9A RMS——六轴控制集成度做到这个水平,只需一块TMCM-6214 在多轴运动控制领域,工程师们经常面临一个两难的选择:是忍受多个单轴驱动板带来的复杂布线和庞大电控箱,还是为了体积而牺牲电流和闭环功能?今天我们要聊的这款六轴步进电机控制模块——TMCM-6214,试图用极高的集成度来… 2026/7/8 6:10:50
从曝光、触达到留存:现代企业必备的全链路商务营销工具 当下多数企业营销都存在明显短板:只做曝光引流,缺少承接、沉淀与复盘,流量看似不少,实际转化极低、线索大量浪费。传统碎片化营销模式,早已满足不了企业长效拓客需求。现代企业想要稳定获客,必须打通曝光、… 2026/7/8 6:08:49
BetterNCM安装器:高效管理网易云插件的最佳选择 BetterNCM安装器:高效管理网易云插件的最佳选择 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐插件的繁琐安装流程而烦恼吗?BetterNCM安装器是… 2026/7/8 0:02:48
运动控制系统安全设置对比:ECI3808的3种限位保护与急停逻辑实现 运动控制系统安全机制深度解析:限位保护与急停逻辑的设计哲学在精密制造与自动化领域,运动控制系统的安全设计绝非简单的功能堆砌,而是一套融合了机械工程、电气原理和软件算法的防御体系。当一台数控机床以每分钟数万转的速度运转࿰… 2026/7/8 0:06:48
AI大模型应用开发:小白也能抓住的红利风口,收藏这篇入门指南! 文章指出,虽然微软等科技巨头在裁员,但英伟达等公司却在积极扩招AI相关人才,尤其是具身智能、仿真等领域。AI行业正在经历结构性调整,传统岗位被淘汰,而大模型应用开发等新岗位需求旺盛。对于想转行或学习AI的普通人来… 2026/7/8 0:10:49
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/7 11:26:57
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/7 11:26:58