书架bookshelf

第一题 书架

【问题描述】
为了方便同学们查阅资料,程序设计兴趣小组的辅导老师打算将积攒了很多年的n本书放到上课教室的书架上去。
教室的书架是一层一层叠起来的,每一层最多可以放m本书。每一层的高度由放在这层中最高的那本书决定的,如果不放书,则认为这层的高度为0。为了使每个同学能方便地拿到想要的书,书架的总高度应尽可能低。请编程计算将这n本书放在书架上后书架的最小总高度,计算的过程中不考虑书的厚度与书架本身材料的厚度。
【输入数据】
输入文件bookshelf.in:输入从文件中读取,输入共n+1行。
第1行2个整数n和m (1≤m≤n≤100000) 。
接下来n行,每行1个正整数,分别表示每本书的高度(每本书的高度不超过100)。
【输出数据】
输出文件bookshelf.out:结果输出到文件中,输出共1行,表示将n本书放入书架后书架的最小总高度。
【输入输出样例】
bookshelf.in bookshelf.out
3 2 40
20
10
30
【样例解释】
将高度是30和20的两本书放在一层,则这层的高度为30,将高度是10的那本书放在另外一层,则这层的高度为10,则书架的总高度为40,满足最小。
【数据范围约定】
每本书的高度为不超过100的正整数。
对于70%的数据,1≤m≤n≤1000。
对于100%的数据,1≤m≤n≤100000。
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
bool cmp(int x,int y) {
return x>y;
} //排序时关键字段比较依据 ,降序排序
int x,t,max1,n,m,s,i,a[1000001];
int main(){
freopen(“bookshelf.in”,“r”,stdin);
freopen(“bookshelf.out”,“w”,stdout);
cin>>n>>m;
for(i=1;i<=n;i++) scanf("%d",&a[i]);
sort(a+1,a+n+1,cmp); //排序
for(i=1;i<=n;i++)
if(i%m==1) s=s+a[i];
cout<<s;
return 0;
}

您需要一个HTML书架的代码吗?如果是这样,以下是一个简单的HTML书架的代码示例: ```html <!DOCTYPE html> <html> <head> <title>My Bookshelf</title> <style type="text/css"> .bookshelf { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; margin: 50px; } .book { width: 150px; height: 200px; margin: 10px; border: 1px solid black; border-radius: 5px; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); background-color: #f2f2f2; text-align: center; padding: 10px; transition: all 0.3s ease-in-out; } .book:hover { transform: scale(1.1); box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.5); cursor: pointer; } .book img { max-width: 100%; max-height: 150px; margin-bottom: 10px; } .book h3 { font-size: 16px; margin-bottom: 5px; } .book p { font-size: 12px; color: gray; margin-bottom: 5px; } </style> </head> <body> <h1>My Bookshelf</h1> <div class="bookshelf"> <div class="book"> <img src="book1.jpg"> <h3>Book Title 1</h3> <p>Author Name</p> </div> <div class="book"> <img src="book2.jpg"> <h3>Book Title 2</h3> <p>Author Name</p> </div> <div class="book"> <img src="book3.jpg"> <h3>Book Title 3</h3> <p>Author Name</p> </div> <div class="book"> <img src="book4.jpg"> <h3>Book Title 4</h3> <p>Author Name</p> </div> <div class="book"> <img src="book5.jpg"> <h3>Book Title 5</h3> <p>Author Name</p> </div> <div class="book"> <img src="book6.jpg"> <h3>Book Title 6</h3> <p>Author Name</p> </div> </div> </body> </html> ``` 您可以根据需要更改样式和添加/删除书籍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值