首页 > 其他分享 >E. Anna and the Valentine's Day Gift

E. Anna and the Valentine's Day Gift

时间:2024-02-19 19:33:50浏览次数:32  
标签:10 cnt Gift read long while now Day Anna

原题链接

题解

游戏规则总结一句话:
安娜要尽可能删掉后导零(翻转),萨沙要尽可能保护后导零(连接),问剩余数字的位数能否达到 \(m+1\) 位

直接模拟即可,统计每个数后导零的长度, 然后按照安娜先手的规则求出能保留多少位后导零,最后判断长度

code

#include<bits/stdc++.h>
using namespace std;
inline void read(long long &x) {
    x = 0;
    long long flag = 1;
    char c = getchar();
    while(c < '0' || c > '9'){
        if(c == '-')flag = -1;
        c = getchar();
    }
    while(c >= '0' && c <= '9') {
        x = (x << 3) + (x << 1) + (c ^ 48);
        c = getchar();
    }
    x *= flag;
}

inline void write(long long x) {
    if(x < 0) {
        putchar('-');
        x = -x;
    }
    if(x > 9)
        write(x / 10);
    putchar(x % 10 + '0');
}

priority_queue<long long> q;
long long len=0;

void add(long long now) {
    long long cnt=0;
    while(now && now%10==0)
    {
        cnt++;
        now /= 10;
    }
    while(now)
    {
        len++;
        now/=10;
    }
    if(cnt) q.push(cnt);
}

int main() {
    long long t;
    read(t);
    while(t--) {
        long long n, m, x;
        read(n);
        read(m);
        for(long long i = 1; i <= n; i++) {
            read(x);
            add(x);
        }

        int k=0;
        while(!q.empty())
        {
            len+=q.top()*k;
            q.pop();
            k=1-k;
        }

        if(len>=m+1)puts("Sasha");
        else puts("Anna");
        len=0;
    }
    return 0;
}

标签:10,cnt,Gift,read,long,while,now,Day,Anna
From: https://www.cnblogs.com/pure4knowledge/p/18021790

相关文章

  • day29 回溯算法part5 代码随想录算法训练营 47. 全排列 II
    题目:47.全排列II我的感悟:用了一层判断,感觉也挺好用的理解难点:老师的写法,主要是理解used【i】和used[i-1]的概念我说怎么参考答案看不懂呢,它把两个判断放在一起写了。我的代码:用了一层判断classSolution:defpermuteUnique(self,nums:List[int])->List[Lis......
  • 爬虫——day01
    爬虫介绍爬虫是什么? -通过编程技术---》把互联网中的数据---》获取到---》数据清洗---》存到库中python:request,selenium---》app,小程序,网站---》xpaht,lxml---》mysql,redis,文件,excel,mongodb-通过编程语言---》模拟发送http请求---》获取数据---》解析--》入库......
  • day29 回溯算法part5 代码随想录算法训练营 46. 全排列
    题目:46.全排列我的感悟:看不下去视频,可以先看文字讲解。看答案。带着疑问去看视频,效果会更好。加油!理解难点:排列,不用start_index了借助used=1来过滤掉[1,1,1]这种情况。如果不加ifused[i]==1,continue就会出现重复的。如下图: 代码示例:classSolution:d......
  • day29 回溯算法part5 代码随想录算法训练营 491. 非递减子序列
    题目:491.非递减子序列我的感悟:难不怕,不行就抄一遍,再默写一遍,多记忆几遍。加油!!!理解难点:uset是本层的, res收获的是节点(满足要求的节点),不用return(用了return是仅仅收集叶子节点的)判断的逻辑,是nums[i]当前的节点和目标的path的区别代码示例:classSolution:......
  • 代码随想录 day54 买卖股票
    买卖股票的最佳时机III这题可以一天进行两次交易解法增加了两种状态虽然不知道为什么这样就可以work但是挺符合逻辑的意思就是把之前的两天交易合到一天进行计算收益也在之前一次交易基础上进行计算买卖股票的最佳时机IV这题就是这类问题的最难情况解法的思想就是......
  • day28 回溯算法part4 代码随想录算法训练营 90. 子集 II
    题目:90.子集II我的感悟:只要功夫深,铁树也开花参考答案,没我写的好理解难点:去重代码难点:i-1的含义易错点:nums要排序回溯要写i+1path.append要添加的是nums[i]代码示例:classSolution:defsubsetsWithDup(self,nums:List[int])->List[List[int]]:......
  • Day-2
    栈,队列P6033操作:找min,删min,插入必须线性复杂度**特殊的性质:每次插入的元素单调递增**,即b单调两个队列:初始的a,合并后的b,都是有序的对a排序时使用桶排序(快排太慢)总共合并n-1次,每次$O(1)$P2827如果蚯蚓长度不变->普通的优先队列(太慢)......
  • Day-3
    Dfs序CF383C简化:子树加,子树和(线段树+Dfs序)考虑对树做一个奇偶的分层x的深度为奇数,x子树中,深度为奇数+,深度为偶数-BZOJ3306小技巧:换根,Dfs序现在的根为x,原来的为rty在x的子树内->无影响y在x到根路径上->影响其他无影响if(Lca(x,......
  • day28 回溯算法part4 代码随想录算法训练营 78. 子集
    题目:78.子集我的感悟:看见弹幕是秒了,我有点不敢相信,自己试了试,没有通过,再看了一眼文字讲解。感觉懂了点理解难点:这题可以没有终止条件,开始我就疑惑这个终止条件怎么写注意这个nums[i]要添加进入是可以不写终止的,不会出现无线递归的,因为是从i+1开始,那会不会越界??,不会,最......
  • day28 回溯算法part4 代码随想录算法训练营 93. 复原 IP 地址
    题目:93.复原IP地址我的感悟:加油!理解难点:开始没理解,start_index的含义start_index是切割后的位置信息。代码难点:代码示例:fromtypingimportListclassSolution:defrestoreIpAddresses(self,s:str)->List[str]:#找3个分割点?#最后......