24年-3月-第七组
P2550★
彩票摇奖:输入n表示张数,输入彩票的设定和小明买的彩票;输出中奖情况。
思路
- 每轮统计一次中号次数
- 在num中记录每个奖项的张数
总结
独立完成了,很简单
2637 ★
第一次,第二次,成交:拍卖会卖干草,n批甘草,m个客户,找出能帮助fj赚钱最多的最低的单批草料售价。
思路
- 输入n,和m
- 输入m个价格
- 找出草料的最低价格和能赚到的钱(初步想要尝试穷举法)
总结
独立完成的一道题,用两个vector数组搞定了
- 找出数组中最大元素的方法:
#include<algorithm>
sort(vec.begin(),vec.end());
max = vec[vec.size()-1];
- 找出数组中最大元素下标的方法:
#include<algorithm>
auto maxelement=max_element(vec.begin(),vec.end());
int d=distance(vec.begin(),maxelement);
2669 ★
金币:第一天骑士收到一枚金币,第二天第三天收到两枚金币,之后三天三枚,在之后四天四枚,这种模式一直延续下去,即连续n天收到n枚金币后,骑士会在之后的连续n+1天里,每天收到n+1枚金币
思路
- 输入发放金币的天数
- 输出骑士收到的金币数
- 直接模拟发送过程
总结
独立完成的一道题;
- 第一次使用双重循环直接模拟,时间复杂度太高
for(int i=1;;i++)
{
n=i;
for(int j=1;j<=n;j++)
{
sum+=n;
days++;
}
if(days==k) break;
}
- 改成单层循环解决了
for(int i=1;i<=k;i++)
{
sum+=n;
days++;
if(days==n) {n++;days=0;}
}
2670 ★★★★★
扫雷游戏,又是一道矩阵题目,输入雷区的行列数n和m,输入雷区情况,’*‘表示地雷,?表示非雷;输出完整的雷区(显示问好的内容)
思路
- 输入n,m;
- 输入雷区
- 输出答案;
总结
感觉逻辑没问题,但是只有50分,到目前几乎还没有all ac这种矩阵题
2676 ★
Bookshelf B:不同身高的奶牛拿书,算最少要多少头奶牛叠塔才能够都书架顶部;
思路
- 输入奶牛的数量和暑假的高度
- 输入每头奶牛的身高
- 排序
- 计算最少奶牛的叠塔方法
总结
很水的一道题,只要会用sort函数,一分钟all ac;
2689 ★
东南西北,输入小明的位置和想去的位置,输入时刻数和风向,计算最小需要的步数;
思路
- 输入坐标,输入时刻数和风向;
- 计算最小需要的步数;
总结
逻辑很简单,判断写对就能够all AC
2705 ★★★★★
小球游戏:输入R和B(小球的盒子和个数),CDE是得分,输出最大得分的放置方法
思路
- 输入RBCDE
- 计算最大得分
总结
- 没太理解题解,后续要看
2788 ★
math1-加减公式:有点类似于识别表达式;
思路
- 读入字符串
- 识别表达式
- 计算结果并输出
总结
独立完成的一道题,简单的字符串拆分和类型转换
2907 ★★★
roads around farm s: N只奶牛沿着一条路走,会遇到无数的三岔路口,可能会在三岔路口分裂成两群继续走,如果牛群可以精确地分成两部分,且这两部分的牛数量恰好相差K头,那么牛群才会分裂,计算最终会有多少牛会留下来
思路
- 输入N和K
- 模拟分裂过程
- 计算剩余牛数 模拟不出划分,需要用到递归的思想 看了题解,递归的方法不太好理解:
int main()
{
int f(int a);
cin>>n>>k;
cout<<f(n);
return 0;
}
int f(int a) //划分计算
{
if((a-k)%2==0&&a-k>0)
return f((a+k)/2)+f((a-k)/2);
else return 1;
}
2911 ★
Bovine Bones G: 三个骰子有不同的面数,计算出三个面上数字的和值,找出哪个和值出现的概率最大
思路
- 输入筛子的面数
- 枚举每种情况的次数
总结
还算简单的一道题,独立完成了,再次用到了algorithm库中maxelement函数和distance函数