NOIp (on line) 入门组 2020 总结
2024-09-03 08:06:37
得分情况 :
估分:
100+30+30=160;
实际:
95+70+25=190;
T1 :
题意:
有n块钱,买三种文具,分别为 a:7元、b:4元、c:3元,问怎么买能让n元钱全部用完,而且使 min(a,b,c) 最大,满足以上条件后再使a+b+c最大。如果钱无论如何都用不完就输出-1。
数据范围:
1≤n≤105
分析:
直接暴力!!!
分别枚举a,b,c,输出最佳结果。
但光枚举肯定会爆掉,要优化一下。我们看到n元必须全部用完,那么就只枚举a,b,再通过 c=(n-a*7-b*4)/3 算出c。因为钱必须用完,所以 (n-a*7-b*4)/3 应该没有余数。
接下来我们再把a和b的枚举过程优化,总价钱肯定不能超n,所以a得从0枚举到n/7,剩下的钱就枚举b了,所以b的从0枚举到n-a*7。结束。
代码如下:
//我的代码 95分 #include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std; int main()
{
int n,Min=,ra,rb,rc,res=;
scanf("%d",&n);
for(int a=;a*<=n;a++)
{
for(int b=;b*<=n-a*;b++)
{
if((n-(*a+*b))%==)
{
int c=(n-(*a+*b))/;
int i=min(min(a,b),c),j=a+b+c;
if(i>Min)
{
Min=i,res=j;
ra=a,rb=b,rc=c;
}
else if(i==Min&&j>res)
{
res=j;
ra=a,rb=b,rc=c;
} }
}
}
if(n==) puts("0 0 0");
else
if(!Min&&!res) puts("-1");
else
printf("%d %d %d",ra,rb,rc);
} //我的满分代码
//说实话 没看出有啥不同 #include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std; int main()
{
int n,Min=,ra,rb,rc,res=;
scanf("%d",&n);
for(int a=;a*<=n;a++)
{
for(int b=;b*<=n-a*;b++)
{
if((n-(*a+*b))%==)
{
int c=(n-(*a+*b))/;
int i=min(min(a,b),c),j=a+b+c;
if(i>Min)
{
Min=i,res=j;
ra=a,rb=b,rc=c;
}
else if(i==Min&&j>res)
{
res=j;
ra=a,rb=b,rc=c;
} }
}
}
if(n==) puts("0 0 0");
else
if(!Min&&!res) puts("-1");
else
printf("%d %d %d",ra,rb,rc);
}
T2:
数据太大,只会用DP骗一下分。QAQ
T3:
不会,只会写正常的最短路。QAQ
~END~
最新文章
- Atitit.研发团队与公司绩效管理的原理概论的attilax总结
- HBase框架学习之路
- TestNG教程
- JQ学习(三)-ajax
- Oracle中的带参数的视图--我们致力于打造人力资源软件
- Sql server 数据库 int 和guid 两者的比较
- 类模板的困扰 LNK2019 (转)
- 运用集合来做一个DVD管理器(全代码)
- 2014年度辛星html教程夏季版第二节
- Oracle RAC 环境下的连接管理
- odi增量更新策略
- Struts2-3.struts.xml的action可以简写
- elasticsearch 源码本地环境搭建
- webpack模块机制浅析【一】
- __get__ __set__ __delete__描述符
- 大数据离线分析平台 用户数据Etl
- FTP中各文件目录的说明
- 防止xss攻击的核心代码
- 位运算 进制转化 STL中bitset用法
- [技巧篇]17.那些年一直再逃避的问题,还债Web阶段!
热门文章
- Java中环境变量PATH与CLASSPATH的区别
- Java实现斐波那契数列的多种方法
- Java实现行列递增矩阵的查找
- java实现第六届蓝桥杯星系炸弹
- BigDecimal的setScale常用方法(ROUND_UP、ROUND_DOWN、ROUND_HALF_UP、ROUND_HALF_DOWN)
- ubuntu下创建流媒体服务器的步骤
- Jenkins入门教程(一):Windos下Jenkins的安装教程
- QT creator视频教程分享
- 微信小程序踩坑之前端问题处理篇
- vue-drag-resize 可拖拽可缩放的标签,如何管理多个拖拽元素之间的zIndex?操作上需要保持当前激活的组件是最上层,但是在总体上,又要确保其图层管理的顺序。