jzyzoj题目选做

1025

P1815

一道贪心,喵?

好吧其实就是个贪心,最大值比较简单,最小值不太好搞看看代码自己理解

#include <bits/stdc++.h>
#define LL long long
using namespace std;

inline int read()
{
    register int x = 0;
    register char ch = getchar();
    while( ch < '0' || ch > '9' ) ch = getchar();
    while( ch >= '0' && ch <= '9' )
    {
        x = ( x << 3 ) + ( x << 1 ) + ch - '0';
        ch = getchar();
    }
    return x;
}

int main()
{
    LL n , x , y , k , xx , yy , w;
    LL ans ;
    while( scanf( "%lld" , & x ) == 1 )
    {
        xx = x , y = yy = read() , n = read();
        //特判
        if( n == 1 )
        {
            if( x > y ) puts("3 3");
            else if( x == y ) puts("1 1");
            else puts("0 0");
            continue;
        }
        //max
        w = n - 1;
        k = min( n - 1 , x ) , x -= k , w -= k , ans = k * 3 ;
        if( x > y ) ans += 3;
        else if( x == y ) ans += 1;
        ans += w;
        printf("%lld " , ans );
        //min
        if( xx > yy )
        {

            n -- , ans = 3 ; //把所有的 x 都放到一个格子里,保证只赢一次
            k = min( yy , n ) , ans += n - k; //再给剩下的格子尽可能的放 y
            printf( "%lld\n" , ans );
            continue;
        }

        if( xx == yy )
        {
            if( n >= 3 && yy >= 3 )
            {
                // 同 xx > yy
                n -- , ans = 3 ;
                k = min( yy , n ) , ans += n - k;
                printf( "%lld\n" , ans );
            }
            else printf( "%lld\n" , n ); //直接全部平局
            continue;
        }

        // 对于xx<yy的情况
        n -- ;
        ans = 3 + n - ( min( n , yy ) ); // 把所有的 x 放在一个格子里,剩下的格子每个放一个 y
        yy -= xx;
        ans = min( ans , 1 + n - min( n , yy ) ); // 在一个格子里抵消掉所有的 x 后面的全部放 y
        yy --;
        ans = min( ans , n - min( n , yy ) ); // 在保证不会赢的情况下,尽可能的放 y
        printf( "%lld\n" , ans );
    }
    return 0;
}

原文地址:https://www.cnblogs.com/Mark-X/p/11739887.html

时间: 2024-10-17 16:05:52

jzyzoj题目选做的相关文章

jzyz 题库 题目选做

题库中也有很多我想不出来的模拟赛的题目.做还是必要的. LINK:水题一道 LINK :ww 原文地址:https://www.cnblogs.com/chdy/p/11488468.html

CF 题目选做

写省选的题目对noip没什么大用 关键是 细节题或者是思考题比较重要 练思维自然是CF比较好了 把我见到的比较好的CF题放上来刷一刷. LINK:Complete the projects 就是说一个人 初始值为R 有n项工作每项工作有两种属性 a和b 当且仅当 R>=a时可以完成这项任务 且R+=b; 每项任务只能完成一次 问能否把所有工作完成.注:b可能为负. 怎么做?显然对于b>=0的工作我们按照a由小到大的顺序直接做如果有不能完成的任务的话 那便一定不能完成.考虑如何做负值的工作? 想

luogu 题目选做

1025 P1019 单词接龙 往年的\(noip\)原题,纯搜索吧,没啥可讲的,直接暴力枚举,暴力判断就行 没有必要每次都存一个很大的字符串,只要存当前的字符串就行了 每个字符串可以用两次 不能包含关系...好像也没啥了吧 #include <bits/stdc++.h> using namespace std; const int N = 23; int n , ans = -1 , v[N] ; string str[N]; inline int check( string s1 , s

20165201 课下作业第十周(选做)

#20165201 课下作业第十周(选做) 相关知识点总结 补做代码运行结果截图 补做代码链接 相关知识点的总结 课上内容的补做,结果截图 教材第十五章的代码分析 补做教材第十五章的编程题目 提交补做的博客作业的连接 主动找老师进行作业答辩 原文地址:https://www.cnblogs.com/cbmwtsl/p/9000384.html

20175209 《MySort》和《IO-myhead》选做

20175209 <MySort>和<IO-myhead>选做 一.MySort 1.题目要求 模拟实现Linux下Sort -t : -k 2的功能. 要有伪代码,产品代码,测试代码(注意测试用例的设计) 参考 Sort的实现.提交博客链接. 2.设计思路 题目中要求为对第二列进行排序,个人设计时希望能够控制对所有列进行排序,因此需要在命令行中输入待排序的列号(这里存在一些小问题在后面问题中说明) 对于给定的字符数组无法直接进行排序,采用split方法将每一行分解后将带排序的列中

MySort(选做)的实现

MySort(选做)的实现 题目内容 注意:研究sort的其他功能,要能改的动代码,需要答辩 模拟实现Linux下Sort -t : -k 2的功能. 要有伪代码,产品代码,测试代码(注意测试用例的设计) 参考 Sort的实现.提交博客链接. 代码框架(题目给出) import java.util.*; public class MySort { public static void main(String[] args) { String[] toSort = {"aaa:10:1:1&quo

课后选做题-MyOD

课后选做题-MyOD od命令的了解 功能 od命令用于将指定文件内容以八进制.十进制.十六进制.浮点格式或ASCII编码字符方式显示,通常用于显示或查看文件中不能直接显示在终端的字符.od命令系统默认的显示方式是八进制,名称源于Octal Dump. 常见的文件为文本文件和二进制文件.od命令主要用来查看保存在二进制文件中的值,按照指定格式解释文件中的数据并输出,不管是IEEE754格式的浮点数还是ASCII码,od命令都能按照需求输出它们的值. 语法 od 参数 -a 此参数的效果和同时指定

20175325 实现mypwd(选做,加分)

20175325 实现mypwd(选做,加分) 一.题目内容: 1 学习pwd命令 2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 3 实现mypwd 4 测试mypwd 二.步骤: 功能:查看"当前工作目录"的完整路径 使用man命令查看pwd pwd的实现 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 man -k current directory man getcwd 实现与测试mypwd 三.测试代码: int get_nam

[SDOI2016]部分题选做

听说SDOI蛮简单的,但是SD蛮强的.. 之所以是选做,是因为自己某些知识水平还不到位,而且目前联赛在即,不好花时间去学sa啊之类的.. bzoj4517 数论题,我这种不会错排的数论白痴都能手推出来,这题应该谁都能写吧. #include<cstdio> #include<cstring> #include<algorithm> #define mo 1000000007 #define ll long long #define N 1000100 using nam