L1-7 分寝室 & L1-8 谁管谁叫爹

这篇具有很好参考价值的文章主要介绍了L1-7 分寝室 & L1-8 谁管谁叫爹。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

全屏浏览题目

切换布局

作者 陈越

单位 浙江大学

L1-7 分寝室 & L1-8 谁管谁叫爹,算法,c++,图论

《咱俩谁管谁叫爹》是网上一首搞笑饶舌歌曲,来源于东北酒桌上的助兴游戏。现在我们把这个游戏的难度拔高一点,多耗一些智商。
不妨设游戏中的两个人为 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;
}

 

 

到了这里,关于L1-7 分寝室 & L1-8 谁管谁叫爹的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++算法竞赛 · 图论】图论基础

    前言 图论基础 图的相关概念 图的定义 图的分类 按数量分类: 按边的类型分类: 边权 简单图 度 路径 连通 无向图 有向图 图的存储 方法概述 代码 复杂度 图论(Graph theory) ,是 OI 中的一样很大的一个模块,围绕它有很多高难度的算法以及高级的概念。 这篇文章将介绍关

    2024年04月12日
    浏览(33)
  • 图论与算法(1)图论概念

    在计算机科学中,图论与算法是两个重要且紧密相关的领域。图论研究图的性质和特征,而算法设计和分析解决问题的方法和步骤。图论提供了一种形式化的方法来描述和分析各种关系和连接,而算法则为解决图相关的问题提供了有效的解决方案。 图论是研究图的结构和性质

    2024年02月07日
    浏览(30)
  • 基于python的校园寝室管理系统设计与实现

    开发概要 开发操作系统:windows10 开发环境:Python3.8 开发语言:Python 开发框架:Django 开发工具:pycharm  数据库:mysql8 数据库管理工具:navicat 其他开发语言:html + css +javascript   主要讲解本系统设计到的文件和所存在路径等 使用管理员账号登录,设置网站信息和录入班主任

    2024年02月11日
    浏览(28)
  • 算法提高-图论-floyd算法及其扩展应用

    离散化 (只要用到200个点,但是题目给的点编号是1-1000)+ 倍增(快速幂)+ flyod变式(将递推公式改变了) 能用快速幂的原因是递推公式里面的两端路径两两之间相互独立,用结合律就可以用快速幂。矩阵乘法能用快速幂的原因也是矩阵乘法中两两矩阵之间具有结合律 帮助

    2024年02月09日
    浏览(37)
  • 【数据结构与算法】图论及其相关算法

    线性表局限于一个直接前驱和一个直接后继的关系,树也只能有一个直接前驱也就是父节点,当我们需要表示多对多的关系时, 这里我们就用到了图。 图是一种数据结构,其中结点可以具有零个或多个相邻元素。两个结点之间的连接称为边。 结点也可以称为顶点。如图:

    2024年02月09日
    浏览(33)
  • 图论相关算法

    迪杰斯特拉算法使用类似广度优先搜索的方法解决了 带权图的单源最短路径问题 。这是一个贪心算法。 注意:此算法只适用于求 有向图 或 边权值非负的无向图 。 1.核心思想 (1)每次选中一个点,这个点满足两个条件: 未被选过 距离最短 (2)对于这个点的所有邻近点都

    2024年02月07日
    浏览(28)
  • 图论中的算法

    图论的概念 :图论是数学的一个分支,它是以图为研究对象,图论中的图是由若干个给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些实体之间的某种特定的关系,用点代表实体,用连接两点之间的线表示两个实体之间具有某种关系。 图的分类: 无权无向

    2024年02月08日
    浏览(76)
  • 《算法竞赛进阶指南》------图论篇

    Telephone Lines 题意:从1到N修一条电缆,有p对电线杆之间是可以连接的,电信公司可以提供k条电缆,其他的由John提供,求john提供的电缆的最长的那根的长度(ret)。 思路:实则是求最短最长的边。 二分结果(sum)。对于 边值sum, 电信公司需要提供电缆。 用djk 计算 1-n 路径上的

    2024年02月03日
    浏览(25)
  • 算法提高-图论- 负环

    本博客主要介绍spfa求负环 一般用第二种方法 第一种方法如果每个点入队n次,每次入队也要遍历n次,那么时间复杂度就是n 2 第二种方法时间复杂度是n,只要发现最短路边数=n就说明有环了 一篇很好的博客,介绍了求负环的常用方法和原理 这是一个01规划 + 图论问题 判断负

    2024年02月11日
    浏览(32)
  • 【算法设计与分析】图论(桥)

    目录 一、实验目的: 二、内容: 1. 桥的定义 2. 求解问题 3. 算法 三、实验要求 四、实验内容和结果 基准算法 算法思想 伪代码 时间复杂度分析 算法效率测试 并查集 算法思想 伪代码 时间复杂度分析 算法效率测试 并查集(树) 算法思想 伪代码 时间复杂度分析 算法效率测

    2024年02月03日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包