【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

从零搭建企业网络:使用Packet Tracer模拟多区域OSPF组网全过程

本文通过Cisco Packet Tracer模拟,详细演示了从零搭建一个典型企业多区域OSPF网络的完整流程。内容涵盖网络拓扑规划、IP地址设计、多区域划分原理,并提供了从设备初始化、接口配置到OSPF多区域核心配置与验证的详细步骤。文章旨在帮助网络学习者与IT支持人员通过动手实验,将理论知识转化为实际的配置与排障能力。

day7的博客 1030

操作系统笔记(含王道计算机考研——操作系统课件)

操作系统(OS) 笔记根据B站王道计算机考研——操作系统视频整理所得,视频链接:https://b23.tv/0I2qex 视频中所用课件:链接:https://pan.baidu.com/s/101bFWm0Tv0emNpEneidYPA 提取码:y3dd 1.计算机系统概述 1.简介 什么是操作系统? 操作系统(Operating Ststem, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是

拧发条鸟的博客 6万+

USACO 3.4.1 fence4解题报告

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

diekang6987的博客 186

(王道计算机组成原理)第二章数据的表示和运算-第三节:运算方法和运算电路 1(基本运算部件)

本文主要介绍了计算机组成原理中的加法器和算术逻辑单元(ALU)的基本概念与实现原理。首先,文章详细讲解了一位全加器的工作原理,包括其输入输出、逻辑表达式及真值表。接着,介绍了并行加法器的两种类型:串行进位和并行进位的加法器,分析了它们的优缺点。随后,文章探讨了带标志位的加法器,说明了如何通过标志位生成逻辑来判断加法结果的状态。最后,文章阐述了ALU的功能及其实现原理,包括ALU的基本结构、控制信号的作用以及在实际考试中的图示表示。通过这些内容,读者可以全面了解加法器和ALU在计算机中的重要作用及其工作原理。

快乐江湖的博客 3837

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

【实战教程】OpenClaw接入MySQL数据库实战指南

本文介绍了在虚拟机Ubuntu中访问宿主机Win11中MySQL数据库的配置方法,重点包括创建远程用户、权限配置和安全设置。首先在MySQL中创建具有只读权限的用户并刷新权限,然后调整服务器设置允许远程连接。文章还提供了某金融机构财富管理系统的数据库设计方案,包含理财产品表、客户表和份额表的核心结构,其中金额字段使用DECIMAL类型确保精度,并设置唯一键约束。文末强调测试环境配置完成后应恢复安全更新模式以保障生产环境安全。

海兰 8697

2026华为OD面试题029:勇攀数字高峰

在给定的数字地形图里寻找登山路径,数字代表当前位置的海拔高度。要求从最低海拔出发,不断攀登,最终到达最高山峰。地图保证最低海拔和最高山峰都只有一个。 登山规则: - 路径上的海拔必须严格递增 - 只能向上下左右 4 个方向移动 - 路径必须从最低海拔开始,到最高海拔结束 - 每个地点只能走一次 - 每一步的攀登高度差必须大于 0,且不超过指定值 `K` 输出满足条件的登山路径的数量。

琅嬛福地 116

USACO 4.1.3 Fence Loops解题报告

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

New Day New Plan 1470

【AI大模型】角色设定:给模型定身份的高效使用方法

摘要: AI大模型角色设定(RolePrompting)是提示词工程的核心优化技巧,通过赋予模型特定职业、领域和风格约束,显著提升输出专业度与适配性。文章系统拆解了角色设定的原理、万能公式(领域+身份+技能+风格+场景)、三级分层写法(基础/进阶/专家),并提供10类高频场景的模板。通过无角色与有角色输出的对比实验(Python代码量化验证),证明角色设定可使模型综合得分提升35%以上,尤其优化场景适配度与风格统一性。该技巧作为高阶提示词(如CoT、Few-Shot)的前置模块,能以零成本实现AI输出的专业

unber的博客 42

USACO 3.1解题思路报告

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

SmallSXJ的博客 575

在Simulink中构建感应电机的时滞补偿控制模型,并通过仿真验证不同补偿策略的有效性

核心优势Smith预估器可有效补偿已知时滞,提升系统稳定性。动态PID调整适用于时变时滞的初步补偿。扩展方向自适应时滞估计:结合Luenberger观测器实时估计时滞。鲁棒控制:引入H∞控制或滑模控制抑制参数不确定性。网络化时滞补偿:结合知识库[2]的网络延迟模型,实现端到端补偿。

amy_mhd的博客 189

Go语言面试:面试中经常被问到的50个经典面试题(附参考答案)

Go语言核心知识点摘要 基础语法与数据结构 make和new区别:new分配零值内存返回指针,make初始化引用类型返回实例 Slice底层:包含指针、长度、容量的结构体,多个slice可共享底层数组 nil与空slice:nil指针为nil,空slice指针非nil但JSON编码不同 Map原理:哈希表实现,非线程安全,扩容策略影响性能 for range注意:循环变量是拷贝,map遍历无序 defer执行:LIFO顺序,函数返回前执行 Struct比较:仅当所有字段可比较时才可比较 参数传递:只有值传递

数据知道的博客 4721

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

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

USACO Section 1.3 Prime Cryptarithm 解题报告

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

weixin_30666943的博客 124

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

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

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

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

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

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、付费专栏及课程。

余额充值