首页 > 试题广场 >

小红结账

[编程题]小红结账
  • 热度指数:2128 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
大家一起吃饭的时候,总是小红先付钱,然后大家再把钱转给小红。

现在小红有 n 张账单,每张账单记录了有 k 个人一起吃饭,以及吃饭的消费 c ,现在小红需要计算每个人需要转给小红多少钱。

由于大家都比较喜欢整数,所以大家每张账单会转给小红 \lceil \frac{c}{k} \rceil\lceil x \rceil 表示对 x 进行上取整。

输入描述:
第一行输入两个整数 n,m(1 \leq n,m \leq 10^5) 表示账单数和除小红外的总人数(分别用 1m 表示)。

接下来 2\times n 行,每 2 行表示一张账单。对于每张账单:

第一行输入两个整数 k (2 \leq k \leq m+1),c(1 \leq c \leq 10^9) 表示一起吃饭的人数,花费。

第二行输入 k-1 个整数,表示除小红外有哪些人一起吃饭。

数据保证, k 的总和不超过 2\times 10^5


输出描述:
输出 m 个整数,表示每个人要给小红转账的总金额。
示例1

输入

2 3
3 10
1 2
4 8
1 2 3

输出

6 6 2

说明

第一张账单:第1、2个人都会给小红转4元
第二张账单:第1、2、3个人都会给小红转2元
因此答案为4+2=6,4+2=6,2
头像 Kato_Shoko
发表于 2024-11-22 16:05:02
暴力 #include <iostream> #include <queue> #include <map> #include <set> #include <cmath> #include <cstring> #include 展开全文
头像 阿里嘎多懒羊羊桑_
发表于 2024-11-22 17:56:17
思路数组a[i]表示编号为i+1的人要转给小红的钱数,要注意每次转账的钱是上取整,这里用的方法是判断了下c%k的值,如果不为0则答案再+1 Go代码 package main import ( "fmt" ) func main() { var n, m, k, c, x 展开全文
头像 Mag1c0nch
发表于 2024-11-21 17:52:13
按照题意模拟即可,需要注意的是 a/b 向上取整可以直接写为 (a+b-1)/b #include <bits/stdc++.h> using namespace std; #define int long long const int N = 2e5 + 5; int __t = 1 展开全文
头像 宿伞之神
发表于 2024-11-21 18:14:50
按题意模拟即可。 #include<bits/stdc++.h> #define int long long #define double long double #define x first #define y second using namespace std; typedef 展开全文
头像 来泡池子了的西红柿很奔放
发表于 2024-11-28 13:20:19
#include <stdio.h> #define ll long long int main() { ll n, m, k, i, j, c; if (scanf("%lld %lld", &n, &m) != EOF) { 展开全文
头像 24计科刘辰宇
发表于 2024-11-23 16:52:28
#include<bits/stdc++.h> using namespace std; int main(){ int n,m; cin>>n>>m; vector<long long> s(m); for(int i 展开全文
头像 是基德吖
发表于 2024-11-23 22:11:50
import java.io.*; import java.util.*; import java.math.BigInteger; public class Main { static int N = (int)(1e5+10); static int n,m; stat 展开全文
头像 剑绝尘
发表于 2025-05-05 20:17:35
#include <bits/stdc++.h> using namespace std; /* 照着题目模拟,向上取整用库函数ceil(),然后将每次计算的结果累加到s数组中 */ #define int long long const int N = 1e5 + 1; int 展开全文
头像 Jingen
发表于 2025-05-08 19:00:38
#include <iostream> #include <cstring> #include <cmath> using namespace std; int main() { long long n,m; cin>>n> 展开全文
头像 Feijoa_Li
发表于 2024-11-22 16:59:12
#include "bits/stdc++.h" using namespace std; #define int long long #define endl "\n" #define PII pair<int,int> #define PII 展开全文