【USACO3.1】解题报告

NOIP 2021 数列 解题报告 NOIP 2021 第二题 数列 解题报告。 阅读详情

前言


又有两个多月没有更新USACO了。
好吧现在确实很少在上面刷题了。
以后的题目链接不再放USACO了,因为点进去只能到首页。以后就放洛谷上了。
USACO:http://train.usaco.org


3.1.2.Agri-Net

思路:

最小生成树裸题。不解释。

代码:
#include <cstdio>
using namespace std;
int a[101][101],n,b[101],k,sum,minn;

int main()
{
    scanf("%d",&n);
    b[1]=1;
    for (int i=1;i<=n;i++)
     for (int j=1;j<=n;j++)
      scanf("%d",&a[i][j]);
    for (int q=1;q<=n-1;q++)
    {
        minn=2147483647;
        for (int i=1;i<=n;i++)
         if (b[i]==1)
          for (int j=1;j<=n;j++)
           if (b[j]==0&&a[i][j]<minn&&i!=j)
           {
           	  k=j;
           	  minn=a[i][j];
           }
        if (minn!=2147483647)
        {
            sum+=minn;
            b[k]=1;
        }   
    } 
    printf("%d\n",sum);
    return 0;
}

3.1.3.Score Inflation

思路:

显然完全背包。
又是一道裸体2333

代码:
#include <cstdio>
#include <algorithm>
using namespace std;

const int N=10010;
int n,m,w[N],v[N],f[N],ans;

int main()
{
    scanf("%d%d",&m,&n);
    for (int i=1;i<=n;i++)
        scanf("%d%d",&v[i],&w[i]);
    for (int i=1;i<=n;i++)
        for (int j=w[i];j<=m;j++)
            f[j]=max(f[j],f[j-w[i]]+v[i]);
    for (int i=1;i<=m;i++)
        ans=max(ans,f[i]);
    printf("%d\n",ans);
    return 0;
}

3.1.4.Humble Numbers

思路:

这道题就有点意思了。
显然,第 i i i个丑数肯定是由第 1 ∼ i − 1 1\sim i-1 1∼i−1个丑数中的某一个乘上某一个质数得来的。
所以我们先循环 n n n次来找 n n n个丑数,然后枚举质数,对于每个质数二分丑数,使得该丑数 × \times ×质数 &gt; &gt; >第 i − 1 i-1 i−1个丑数,并且选择尽量小的。
这样的时间复杂度是 O ( N K   l o g   N ) O(NK\ log\ N) O(NK log N)。跑的比较慢,懒得改了。加优化上去过了。

代码:

#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")

#include <cstdio>
#include <algorithm>
using namespace std;

const int N=100010;
const int M=110;
int n,m,l,r,prime[M],a[N];

int main()
{
    fill(a,a+N,2147483647);
    scanf("%d%d",&n,&m);
    for (int i=1;i<=n;i++)
        scanf("%d",&prime[i]);
    a[0]=1;
    for (int i=1;i<=m;i++)
        for (int j=1;j<=n;j++)
            a[i]=min(a[i],a[upper_bound(a,a+i,a[i-1]/prime[j])-a]*prime[j]);
    printf("%d",a[m]);
    return 0;
}

3.1.5.Contact

题解链接 \color{blue}\texttt{题解链接} 题解链接


3.1.6.Stamps

思路:

显然背包。
首先,如果邮票集合中没有1元的肯定是不行的。因为1元都没法凑出来。直接输出0。
如果有1元,那么任何价值都可以凑出来。
设 f [ i ] f[i] f[i]表示至少使用几张邮票可以凑出 i i i元来。如果 f [ i ] &gt; n f[i]&gt;n f[i]>n就说明不行了。

代码:
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;

const int N=10000* 200+10;
int n,m,a[51],f[N];
bool ok;

int main()
{
    //freopen("testdata.in","r",stdin);
    scanf("%d%d",&n,&m);
    for (int i=1;i<=m;i++)
    {
        scanf("%d",&a[i]);
        if (a[i]==1) ok=1;
    }
    if (!ok) return !printf("0");
    memset(f,0x3f3f3f3f,sizeof(f));
    f[0]=0;
    f[1]=1;
    for (int i=2;i<=N;i++)
    {
        for (int j=1;j<=m;j++)
            if (i>=a[j]) f[i]=min(f[i],f[i-a[j]]+1);
        if (f[i]>n) return !printf("%d\n",i-1);
    }
}
acm竞赛----北大poj详细解题报告 不错的资源 收集了网上的一些解题报告 方便同学们学习参考 立即下载

相关推荐

HDU 1010-2500解题报告

HDU 1010-2500解题报告,ACMer可以借鉴一下

⭐算法入门⭐《线性枚举》简单10 —— LeetCode 剑指 Offer 17. 打印从1到最大的n位数

《线性枚举》简单10 —— LeetCode 剑指 Offer 17. 打印从1到最大的n位数

英雄哪里出来 5024

pku经典题目解题报告

pku经典题目解题报告 pku经典题目解题报告

【USACO1.3】解题报告

前言 这一章主要考察的是一些简单的数论和思维转化能力。还是相对来说比较简单的。 USACO:http://train.usaco.org 1.3.2.Milking Cows 思路: 前缀和基础题。 每次读到有人在lll到rrr的时间段内工作,就将a[l]++,a[r]−−a[l]++,a[r]--a[l]++,a[r]−−,之后用前缀和,如果a[x]&amp;amp;gt;0a[x]&amp;amp;gt;0...

stoorz 369

STM32—时钟树(结合系统时钟函数理解)

时钟树的概念: 我们可以把MCU的运行比作人体的运行一样,人最重要的是什么?是心跳! 心脏的周期性收缩将血液泵向身体各处。心脏对于人体好比时钟对于MCU,微控制器(MCU)的运行要靠周期性的时钟脉冲来驱动,而这个脉冲的始源往往是由外部晶体振荡器提供时钟输入,最终转换为多个外部设备的周期性运作。这种时钟“能量”的传递路径犹如大树的养分由主干流向个分支,因此称为时钟树。 STM32时钟: 在STM32...

肥宅快乐博客 1万+

5分钟搞定!用ZLMediaKit搭建GB28181视频监控系统(含避坑指南)

本文提供了一份基于ZLMediaKit搭建GB28181视频监控系统的实战指南。文章详细介绍了从环境准备、核心组件(ZLMediaKit与SIP服务器)部署、摄像头配置到内外网穿透的完整流程,并重点分享了设备ID配置、防火墙设置等关键避坑经验,帮助开发者快速构建稳定可控的监控平台。

apple5的专栏 1084

USACO 3.4.1 fence4解题报告

这个题在我第一次做USACO的时候被我生生的扔掉了(交了个标程……)。我对计算几何这个东西完全没有感觉。但是这回借此机会搞一了一下,尽管用的不是这个题的完美解法(完美解法简直是BT……)。 这个题吧,有几种方法。最SB的一种方法就是,从viewer这个点引出的一条射线开始,跟每条线段做相交实验,做完之后旋转一个很小的角度。重复这两步,直到绕完一圈……这个方法虽然很SB,但是那个角度控制...

diekang6987的博客 186

TCN(Temporal Convolutional Networks)时序卷积网络详解及代码

TCN(Temporal Convolutional Networks)时序卷积网络详解及代码

zhulewen的博客 7883

USACO Training Section 1.3 Calf Flac 解题报告&AC代码

解题报告: 主要方法是生长法,考虑每一位的左右各有多长的回文串,输出最长的那个,比较好想……不过要注意区分字串的奇偶。 其他实现细节看代码里的注释吧…… AC代码: /* ID: yuanmz91 PROG: calfflac LANG: C++ */ #include #include #include using namespace std; const int MAX_LEN

堆放杂物 6821

从零到一:3D-ResNet50在医学影像中的实战陷阱与避坑指南

本文深入探讨了3D-ResNet50在医学影像分类中的实战应用,重点解析了NIFTI数据预处理、小样本迁移学习陷阱及GPU显存优化等关键问题。通过分块加载、混合精度训练等技巧,有效解决了医学影像处理中的内存管理和性能挑战,为开发者提供了实用的避坑指南和优化策略。

weixin_29038345的博客 390

如何手动打包Linux(麒麟系统)的Qt程序

Qt在windows上有自带的windeployqt来帮助打包程序,但是对于linux系统来说Qt并没有自带对应的打包程序。尽管存在开源的linuxdeployqt打包程序,但是在使用的过程中会出现很多问题,对于arm架构的系统来说需要编译并修改源码等等。确定你程序所需要的插件,然后将你使用的Qt版本对应的插件复制到plugins里边。你可以根据各个库后面的路径来找到对应的库,并将它们全部复制到之前创建的lib目录下。复制你的可执行程序到bin目录下(将 your_executable。

qq_45903233的博客 3606

USACO 4.1.3 Fence Loops解题报告

USACO 4.1.3 Fence Loops解题报告 题意: 题目的意思就是,给很多边,边的信息包括,ID编号,长度,两端分别与哪些边相邻。 然后求一个最小的回路。   思路: 1.      求最小回路,只需枚举每条边。对于一条边,去掉这条边后,求出这条边两个端点间的最短路径,就可以算出关于这条边的最小回路。最后比较得到最小的回路就是所求的。 2.      求最短路径

New Day New Plan 1470

Unraid小白必看:5分钟搞定OpenWrt软路由安装(附iStoreOS配置技巧)

本文为Unraid新手提供了一份详尽的OpenWrt软路由安装与配置指南。通过虚拟机技术,在Unraid系统上快速部署基于iStoreOS的软路由,详细讲解了旁路由与主路由两种模式的网络配置、性能优化技巧及常见故障排查方法,帮助用户充分利用闲置硬件,打造高性能、可定制的家庭网络中枢。

wine的专栏 485

USACO 3.1解题思路报告

Agri-Net 给出一堆点以及各个点之间的距离(以邻接矩阵形式给出),找出一种选路方案使所有点之间可以相互到达且路的长度和最小,求路的最小长度和。最小生成树,Kruskal算法即可解决。Score Inflation 给出限定的时间,每种题目的耗时和得分,每一种题目都有无限道,求出在有限时间内能得到的最高分数。完全背包dp,w[i]表示第i种题目的得分,t[i]表示第i种题目的耗时,f[i][

SmallSXJ的博客 575

YOLOv8【第十章:多任务扩展深度篇·第16节】车道线检测——基于 YOLOv8-Seg 的车道线分割与拟合!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 1万+

【VTKExamples】PolyData-1:: CellEdgeNeighbors & CellPointNeighbors 检索Cell边相邻的Cells & 检索Cell点相邻的Cells

本文主要分享VTKExample中两个样例CellEdgeNeighbors.cxx & CellPointNeighbors.cxx,了解VTK中如何对Cell进行邻域检索!输入模型 基于Edge检索结果 基于Point检索结果目录前言1. 基于Edge检索核心代码2.基于Point检索核心代码3.基于Edge检索样例代码4. 基于Point检索样例代码1.

qq_40041064的博客 672

USACO 1.3 Transformations 翻译&解题报告

A square pattern of size N x N (1 &lt;= N &lt;= 10) black and white square tiles is transformed into another square pattern. Write a program that will recognize the minimum transformation that has bee...

竹喧的博客 366

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

USACO Section 1.3 Prime Cryptarithm 解题报告

题目 题目描述 牛式的定义,我们首先需要看下面这个算式结构: * * * x * * ------- * * * <-- partial product 1 * * * <-- partial product 2 ------- * * * * 这是一个乘法结构,我们给出一个数字集合...

weixin_30666943的博客 124

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

USACO1.4.3 Arithmetic Progressions 等差数列 解题报告(枚举)

Description 一个等差数列是一个能表示成a, a+b, a+2b,..., a+nb (n=0,1,2,3,...)的数列。 在这个问题中a是一个非负的整数,b是正整数。写一个程序来找出在双平方数集合(双平方数集合是所有能表示成p^2+q^2的数的集合)S中长度为n的等差数列。 Input 第一行: N(3&lt;= N&lt;=25),要找的等差数列的长度。 第二行: M(1&l...

bestsort 850

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

USACO Section1.3 Wormholes 解题报告

    wormhole解题报告—— icedream61 博客园(转载请注明出处)------------------------------------------------------------------------------------------------------------------------------------------------【题目】   一个人在二...

weixin_30699465的博客 136

国产实时操作系统鸿道Intewell:半导体装备的微秒级确定性底座

实时操作系统(RTOS)是工业控制系统的“发令枪”,其核心价值不在于处理速度有多快,而在于任务响应时间的确定性——即最坏情况下的延迟可预测、可计算。通用操作系统追求吞吐量与公平调度,难以满足半导体装备中运动控制、总线同步等微秒级时间窗口的苛刻要求。微内核架构通过精简内核功能、隔离驱动故障,配合静态优先级抢占式调度,为确定性提供底层支撑;而虚拟化技术则让实时控制与通用计算共享一颗芯片,兼顾功能安全与生态兼容。在晶圆搬运、腔室压力控制、EtherCAT总线同步等典型场景中,国产实时操作系统鸿道(Intewell

weixin_34122604的博客 273

USACO 1.3 Milking Cows 翻译&解题报告

Three farmers rise at 5 am each morning and head for the barn to milk three cows. The first farmer begins milking his cow at time 300 (measured in seconds after 5 am) and ends at time 1000. The second...

竹喧的博客 447

USACO Training Section 1.3 Mixing Milk 解题报告&AC代码

解题报告: 这道题估计是让大家熟悉贪心是个什么东西,红果果的贪心,把单价从小到大排一下,谁便宜买谁的。 AC代码: /* ID: yuanmz91 PROG: milk LANG: C++ */ #include #include using namespace std; class farmer { public: int price; int amount; };

堆放杂物 1842

USACO 2.3.1 Longest Prefix 解题报告

今天完全不行啊,USACO只做了一题,今天也只刷了两题,USACO还卡题了 Longest PrefixIOI'96 The structure of some biological objects is represented by the sequence of their constituents denoted by uppercase letters. Biologists are ...

weixin_30825581的博客 131

USACO Section 1.3 Combination Lock 解题报告

题目 题目描述 农夫John的牛从农场逃脱出去了,所以他决定用一个密码锁来把农场的门锁起来,这个密码锁有三个表盘,每个表盘都是环形的,而且上面刻有1~N,现在John设了一个开锁密码,而且这个锁的设计者也有一个开锁密码。这个锁有一个特点,那就是它的容错方式,当我们输入密码时,如果我们的密码与正确的开锁密码相比较,对应的每一个表盘上的数字的距离都相差不超过2时,这个密码便可以打开这个锁。 例如:J...

weixin_30552635的博客 200
上一篇: 【USACO3.1.5】【洛谷P2724】联系 Contact【模拟】
下一篇: 【POJ3422】Kaka's Matrix Travels【费用流】
stoorz1023
博客等级 码龄9年 101粉丝 595原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值