L1-7 分寝室
分数 20
全屏浏览题目
切换布局
作者 陈越
单位 浙江大学
学校新建了宿舍楼,共有 n 间寝室。等待分配的学生中,有女生 n0 位、男生 n1 位。所有待分配的学生都必须分到一间寝室。所有的寝室都要分出去,最后不能有寝室留空。
现请你写程序完成寝室的自动分配。分配规则如下:
- 男女生不能混住;
- 不允许单人住一间寝室;
- 对每种性别的学生,每间寝室入住的人数都必须相同;例如不能出现一部分寝室住 2 位女生,一部分寝室住 3 位女生的情况。但女生寝室都是 2 人一间,男生寝室都是 3 人一间,则是允许的;
- 在有多种分配方案满足前面三项要求的情况下,要求两种性别每间寝室入住的人数差最小。
输入格式:
输入在一行中给出 3 个正整数 n0、n1、n,分别对应女生人数、男生人数、寝室数。数字间以空格分隔,均不超过 105。
输出格式:
在一行中顺序输出女生和男生被分配的寝室数量,其间以 1 个空格分隔。行首尾不得有多余空格。
如果有解,题目保证解是唯一的。如果无解,则在一行中输出No Solution
。输入样例 1:
24 60 10
输出样例 1:
4 6
注意:输出的方案对应女生都是 24/4=6 人间、男生都是 60/6=10 人间,人数差为 4。满足前三项要求的分配方案还有两种,即女生 6 间(都是 4 人间)、男生 4 间(都是 15 人间);或女生 8 间(都是 3 人间)、男生 2 间(都是 30 人间)。但因为人数差都大于 4 而不被采用。
输入样例 2:
29 30 10
输出样例 2:
No Solution
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int> pii;
const int INF = 1e5;
map<int,pii> mp;
int main()
{
int n0,n1,n;
cin>>n0>>n1>>n;
int minx = INF;
int flag = 0;
for(int i=1;i<n;i++)//nv < nan
{
if(n0%i==0&&n0!=i)
{
if(n1%(n-i)==0&&n1!=(n-i))
{
int v = abs((n1/(n-i))-(n0/i));
mp[v] = {i,(n-i)};
minx = min(minx,v);
flag = 1;
}
}
}
if(flag)
cout<<mp[minx].first<<" "<<mp[minx].second;
else cout<<"No Solution";
return 0;
}
文章来源地址https://www.toymoban.com/news/detail-738460.html
L1-8 谁管谁叫爹
分数 20
全屏浏览题目
切换布局
作者 陈越
单位 浙江大学
《咱俩谁管谁叫爹》是网上一首搞笑饶舌歌曲,来源于东北酒桌上的助兴游戏。现在我们把这个游戏的难度拔高一点,多耗一些智商。
不妨设游戏中的两个人为 A 和 B。游戏开始后,两人同时报出两个整数 NA 和 NB。判断谁是爹的标准如下:
- 将两个整数的各位数字分别相加,得到两个和 SA 和 SB。如果 NA 正好是 SB 的整数倍,则 A 是爹;如果 NB 正好是 SA 的整数倍,则 B 是爹;
- 如果两人同时满足、或同时不满足上述判定条件,则原始数字大的那个是爹。
本题就请你写一个自动裁判程序,判定谁是爹。输入格式:
输入第一行给出一个正整数 N(≤100),为游戏的次数。以下 N 行,每行给出一对不超过 9 位数的正整数,对应 A 和 B 给出的原始数字。题目保证两个数字不相等。
输出格式:
对每一轮游戏,在一行中给出赢得“爹”称号的玩家(
A
或B
)。输入样例:
4 999999999 891 78250 3859 267537 52654299 6666 120
输出样例:
B A B A
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int INF = 1e5;
// ll solve(ll x)
// {
// ll sum=0;
// while(x)
// {
// sum += (x%10);
// x /= 10;
// }
// return sum;
// }
ll qiu(string x)
{
ll sum = 0;
for(ll i=0;i<x.size();i++)
sum += (x[i]-'0');
return sum;
}
ll nqiu(string x)
{
ll sum = 0;
ll len = x.size();
for(ll i=0;i<x.size();i++)
sum += ((x[i]-'0')*pow(10,(len-1-i)));
return sum;
}
int main()
{
ll n;cin>>n;
string a,b;
// ll na,nb;
while(n--)
{
cin>>a>>b;
// cin>>na>>nb;
// ll sa = solve(na);
// ll sb = solve(nb);
ll na = nqiu(a);
ll nb = nqiu(b);
ll sa = qiu(a);
ll sb = qiu(b);
// int flaga = 0,flagb = 0;
// if(na%sb==0) flaga = 1;
// if(nb%sa==0) flagb = 1;
// // if(flaga == flagb)
// if((flaga&&flagb)||(!flaga&&!flagb))
// {
// if(na > nb) cout<<"A\n";
// else cout<<"B\n";
// }
// else if(flaga) cout<<"A\n";
// else cout<<"B\n";
if(na%sb==0&&nb%sa!=0)
cout<<"A\n";
else if(na%sb!=0&&nb%sa==0)
cout<<"B\n";
else
{
if(na > nb) cout<<"A\n";
else cout<<"B\n";
}
}
return 0;
}
文章来源:https://www.toymoban.com/news/detail-738460.html
到了这里,关于L1-7 分寝室 & L1-8 谁管谁叫爹的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!