当前位置: 首页 > java >正文

codeforcesE. Anna and the Valentine‘s Day Gift

目录

题目简述:

思路:

总代码:

https://codeforces.com/problemset/problem/1931/E

题目简述:

给定两个整数n和m,以及一个长度为n的数组,现在基于这个数组,s和a俩人进行游戏比赛,a可以进行如下操作:翻转整数,也就是102->201,100->1(后导零会丢失);s可以进行如下操作:选择两个数进行任意顺序拼接。a先开始,进行到只有一个数的时候,如果这个数的位数>m,那么s赢输出s,否则a赢输出a

思路:

博弈论,我们贪心的想。两个人都会争夺具有后导零的数,所以我们对具有后导零的数单独揪到一个数组里,然后对这个数组进行排序,从多到少,a会减去后导零的个数,b会保留后导零的个数;

思路不难,但是代码有很多需要注意的点

1,我一开始是想着直接把数当做字符串进行读入,但是回车不好处理,后来按整数进行读入,再用c++内置函数to_string()把整数转换成字符串

2,后导零数组可能为空!!!此时a.size()-1<0会导致死循环!!!需要加一个判断语句

总代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
//typedef long long ll;
#define endl "\n"
#define PII pair<int,int>
//#define x first
//#define y second
//priority_queue<int, vector<int>, greater<int>> pq;//小根堆
//{并查集
//int fa[N];
//int n;
//void init(){
//	for(int i=0;i<=n;i++)fa[i]=i;
//}初始化
//int get(int x){
//	return fa[x]=(fa[x]==x?x:get(fa[x]));
//}查找
//void merge(int a,int b){
//	fa[get(a)]=get(b);
//}合并
//}
const int N=2e5+10;
void solve(){int n,m;int ans=0;cin >> n >> m;int pp;vector<string>s;for(int i=0;i<n;i++){string ss;cin >> pp;ss=to_string(pp);s.push_back(ss);ans+=ss.size();}vector<int>a;for(int i=0;i<n;i++){int cnt=0;for(int j=s[i].size()-1;j>=0;j--){if(s[i][j]=='0')cnt++;else break;}
计算后导零的个数,如果存在后导零则将其放入a数组if(cnt)a.push_back(cnt);}sort(a.begin(),a.end());if(a.size())for(int i=a.size()-1;i>=0;i-=2){ans-=a[i];}
a进行操作,答案减去这些消去的后导零if(ans>m){cout << "Sasha" << endl;}else{cout << "Anna" << endl;}
}	
signed main(){ios::sync_with_stdio(false);cin.tie(nullptr);int q;cin >> q;while(q--)solve();
}

http://www.xdnf.cn/news/5967.html

相关文章:

  • 在 STM32 上使用 register 关键字
  • 部署大模型:解决ollama.service: Failed with result ‘exit-code‘的问题
  • ROS多机集群组网通信(四)——Ubuntu 20.04图形化配置 Ad-Hoc组网通信指南
  • element-plus自动导入插件
  • 使用DevEco Studio性能分析工具高效解决鸿蒙原生应用内存问题
  • python的命令库Envoy
  • 【树莓派4B】对树莓派4B进行换源
  • 关于索引的使用
  • Fiori学习专题四十一:表单控件
  • js中的同步方法及异步方法
  • [中国版 Cursor ]?!CodeBuddy快捷搭建个人展示页面指南
  • 20250513_问题:由于全局Pytorch导致的错误
  • 【Nacos】env NACOS_AUTH_TOKEN must be set with Base64 String.
  • TCP协议详细讲解及C++代码实例
  • 【算法笔记】ACM数论基础模板
  • ContextAnnotationAutowireCandidateResolver的作用
  • 5月13日复盘
  • PAC文件:智能代理配置的瑞士军刀
  • rtty操作记录说明
  • 保险销售系统对接保险公司接口的常见技术架构
  • 阿里二面:聊聊 MySQL 主从同步方案的优缺点
  • 【兽医电子处方软件】佳易王宠物医院电子处方管理系统:宠物医院诊所用什么软件?一键导入配方模板软件程序实操教程 #操作简单 #宠物医院软件下载安装
  • C语言中的宏
  • 数控滑台:革新传统加工方式的利器
  • 谁在守护我们的危险时刻
  • C语言之旅5---分支与循环【2】
  • 学习第一遍 -- 第一章:SoC设计绪论
  • 从零开始掌握FreeRTOS(1)移植到STM32
  • uniapp+vue3+uview来开发我们的项目
  • 监控易运维:URL监控,守护Web业务的“哨兵”