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

cf--思维训练

目录

  • B. Minimise Sum
  • A. Deranged Deletions
  • B. Tournament
  • A. Blackboard Game
  • B. Above the Clouds

B. Minimise Sum

难度:1000
题目来源

简单贪心思维,题目顺序已经定了,只能进行1次操作,我们只需按顺序遍历,并记录定钱位置最小值,如果这个数大于等于当前最小值,我们就进行此操作,这样后面的数就都会变为0,不用再计算。

AC代码

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define int long long
#define PII pair<int,int>
#define fi first
#define se second
#define endl '\n'
const int N=1e6+6;
int n,a[N]; 
void solve()
{cin>>n;for(int i=1;i<=n;i++)cin>>a[i];int ans=a[1];int mi=a[1];for(int i=2;i<=n;i++){mi=min(mi,a[i]);if(a[i]>=mi){ans+=mi;	break;}ans+=mi;}cout<<ans<<endl;
}
signed main()
{IOS;int _=1;cin>>_;while(_--)solve();return 0;
}

A. Deranged Deletions

难度:800
题目来源

该题考查了简单的思维和排序。只需对c进行排序,然后判断bi如果=ci,就将该位置标记为1,表示删除,最后剩下的数0个就输出no,否则按题目要求输出。

AC代码

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define int long long
#define PII pair<int,int>
#define fi first
#define se second
#define endl '\n'
const int N=1e6+6;
int n,b[N],c[N],st[N]; 
void solve()
{cin>>n;int ans=0;for(int i=1;i<=n;i++)cin>>c[i],b[i]=c[i];sort(c+1,c+1+n);for(int i=1;i<=n;i++)st[i]=0;for(int i=1;i<=n;i++){if(c[i]==b[i])st[i]=1,ans++;}if(ans==n){cout<<"NO"<<endl;return ;}cout<<"YES"<<endl;cout<<n-ans<<endl;for(int i=1;i<=n;i++){if(!st[i])cout<<b[i]<<" ";}cout<<endl;
}
signed main()
{IOS;int _=1;cin>>_;while(_--)solve();return 0;
}

B. Tournament

题目难度:800
题目来源

该题只需要判断最大值的个数,如果最大值的个数大于1并且k>1,那么a[j]不论多大都可以被留下来,因为可以让其他的数和最大值比较从而淘汰。其次,如果最大值的个数<k,那么a[j]也能留下,或者a[j]就等于最大值,或者整个数组数字大小相等。

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define int long long
#define PII pair<int,int>
#define fi first
#define se second
#define endl '\n'
const int N=1e6+6;
int n,j,k,a[N]; 
void solve()
{cin>>n>>j>>k;int mx=-1,ans=0;for(int i=1;i<=n;i++)cin>>a[i],mx=max(mx,a[i]);for(int i=1;i<=n;i++)if(a[i]==mx)ans++;if(ans>1&&k!=1){cout<<"YES"<<endl;return ;}if(ans==n||ans<k||a[j]==mx)cout<<"YES"<<endl;elsecout<<"NO"<<endl;
}
signed main()
{IOS;int _=1;cin>>_;while(_--)solve();return 0;
}

A. Blackboard Game

难度:800
题目来源

如果n是4的倍数就输出Bob,否则Alice

AC代码

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define int long long
#define PII pair<int,int>
#define fi first
#define se second
#define endl '\n'
const int N=1e6+6;
int n;
void solve()
{cin>>n;if(n<4||n%4!=0){cout<<"Alice"<<endl;return ;}cout<<"Bob"<<endl;
}
signed main()
{IOS;int _=1;cin>>_;while(_--)solve();return 0;
}

B. Above the Clouds

题目难度:800
题目来源

可以遍历用map记录单词出现的次数,当一个字符出现了不止1次,且位置不是第一个和最后一个就停止查找,此时b就是这个字符,前面的a包含它。到最后如果没找到满足这种条件的,再判断如果字符s[1]的个数-1,然后如果s[n]的个数>1,说明中间有可以充当b的字符。

AC代码

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define int long long
#define PII pair<int,int>
#define fi first
#define se second
#define endl '\n'
const int N=1e5+6;
int n;
char s[N];
unordered_map<char,int>mp;
void solve()
{cin>>n;for(int i=1;i<=n;i++)cin>>s[i];int f=0;for(int i=1;i<=n;i++){mp[s[i]]++;if(mp[s[i]]>1&&i!=1&&i<n){f=1;break;}}mp[s[1]]--;if(mp[s[n]]>1)f=1;if(f)cout<<"YES"<<endl;elsecout<<"NO"<<endl;mp.clear();
}
signed main()
{IOS;int _=1;cin>>_;while(_--)solve();return 0;
}
http://www.dtcms.com/a/314732.html

相关文章:

  • Git如何为多平台配置密钥和用户信息?
  • Git简易教程
  • PEAFOWL-IEEE-2025
  • Integer Types Range and varieties
  • 20250723-算法分析与设计之旅行商问题(Traveling Salesman Problem,TSP)
  • Antlr学习笔记 01、maven配置Antlr4插件案例Demo
  • golang的数组
  • SpringBoot-手动配置环境
  • VUE2 学习笔记17 路由
  • 一起学springAI系列一:流式返回
  • 嵌入式 - 数据结构:查找至双向链表
  • CUDA后端错误的根源与系统性解决方案
  • python文件操作:写入内容write
  • Linux 服务器性能监控、分析与优化全指南
  • Linux 安装与配置 MySQL 教程
  • 项目实战二:RPC
  • 自制简易SHELL
  • 数据结构:单向链表、双向链表
  • Java中给List<T> 对象集合去重
  • 深化中坦经贸合作 谱写东非璀璨新篇!东非商贸物流中心(EACLC)正式启航
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现路口车辆速度的追踪识别(C#代码UI界面版)
  • 通过java将 word(.doc) 转 md
  • Java数组转换为逗号分隔字符串的方法
  • dbeaver导入数据及配置讲解
  • 通过 Flink 和 CDC 从 Oracle 数据库获取增量数据,并将这些增量数据同步到 MySQL 数据库中
  • Go 与 Python 爬虫代码实操对比
  • # 自动定时运行Python爬虫脚本教程(Windows任务计划程序)
  • LED光源模拟太阳光,全新科技照亮未来
  • 解决 GitLab external_url 修改无效的问题:保留数据重新生成配置
  • 一(2)关于单链表中的疑问 head = head->next; 和 head->next = head 的核心区别