Codeforces Round #672 (Div. 2) A - C1题解
[Codeforces Round #672 (Div. 2) A - C1 ]
题目链接#
A. Cubes Sorting
思路:
“ If Wheatley needs more than \(\frac{n \cdot (n-1)}{2}-1\) exchange operations, he won't do this boring work.”
例如:5,4,3,2,1
我们需要移动4+3+2+1=10次,也就是\(\frac{n \cdot (n-1)}{2}\)次,所以当整个数列是严格的单调递减的,才刚好不符合
只要枚举出一对相邻的数是\(a[i-1]<=a[i]\)就可以了
#include<bits/stdc++.h>
using namespace std;
const int INF=0x3f3f3f3f;
typedef long long ll;
const int max_n=5e4;
ll a[max_n];
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
ll T;
cin>>T;
while(T--)
{
ll n,ans=0;
cin>>n;
for(ll i=0;i<n;i++)
{
cin>>a[i];
}
bool pd=0;
for(ll i=1;i<n;i++)
if (a[i-1]<=a[i])
{
pd=1;
break;
}
if (pd)
cout<<"YES\n";
else
cout<<"NO\n";
}
return 0;
}
B. Rock and Lever
思路:
先暴力枚举一下吧。发现4~7与8~15是不符合的
再根据位运算,合理推测是二进制下相同位数才能满足。
example:
\(x=7,y=8\)
\(0111\) & $ 1000$=\(0\) \(<=\) \(0111\)^ $ 1000$=\(1111\)
反思一下:昨晚脑力不足,室友打游戏情况下好不容易找出的规律,结果开了个int的ans数组...第二个点就没过去。
第二天早早就醒了,突然知道哪错了,越想越气,上机!
改了下提交果然A掉了
\(QAQ\)
#include<bits/stdc++.h>
using namespace std;
const int INF=0x3f3f3f3f;
typedef long long ll;
ll ans[10000];
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
ll t;
cin>>t;
while(t--)
{
ll n,maxn=-INF,answer=0;
memset(ans,0,sizeof(ans));
cin>>n;
ll k=1;
for(ll i=0; i<n; i++)
{
ll x,k=0;
cin>>x;
while(x)
{
x/=2;
k++;
}
ans[k]++;
if (k>maxn)
maxn=k;
}
for(ll i=0;i<=maxn;i++)
{
if (ans[i]>1)
answer+=ans[i]*(ans[i]-1)/2;
}
cout<<answer<<"\n";
}
return 0;
}
C. Pokémon Army (easy version)
思路:Pokémon?还是挺有趣的
简而言之,就是在一串数组里找一对一对的数字,满足\((a_{b_i}-a_{b_j}>0)\)
#include<bits/stdc++.h>
using namespace std;
const int INF=0x3f3f3f3f;
typedef long long ll;
const ll max_n=3e5+5;
ll a[max_n];
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
ll t;
cin>>t;
while(t--)
{
ll n,q,ans=0;
cin>>n>>q;
for(ll i=1;i<=n;i++)
cin>>a[i];
ll l=0,r=0; //l记录大的值,r记录小的值
for(ll i=1;i<=n;i++)
{
if (i==1)
l=a[i];
else
{
if (a[i-1]<a[i])
{
if (l&&r)
ans+=l-r;
l=a[i];
r=0;
}
else
r=a[i];
}
}
ans+=l;
cout<<ans<<"\n";
}
return 0;
}
Codeforces Round #672 (Div. 2) A - C1题解的更多相关文章
- Codeforces Round #612 (Div. 2) 前四题题解
这场比赛的出题人挺有意思,全部magic成了青色. 还有题目中的图片特别有趣. 晚上没打,开virtual contest打的,就会前三道,我太菜了. 最后看着题解补了第四道. 比赛传送门 A. An ...
- Codeforces Round #198 (Div. 2)A,B题解
Codeforces Round #198 (Div. 2) 昨天看到奋斗群的群赛,好奇的去做了一下, 大概花了3个小时Ak,我大概可以退役了吧 那下面来稍微总结一下 A. The Wall Iahu ...
- Codeforces Round #672 (Div. 2) C1. Pokémon Army (easy version) (DP)
题意:给你一组数\(a\),构造一个它的子序列\(b\),然后再求\(b_1-b2+b3-b4...\),问构造后的结果最大是多少. 题解:线性DP.我们用\(dp1[i]\)来表示在\(i\)位置, ...
- Codeforces Round #672 (Div. 2) B. Rock and Lever题解(思维+位运算)
题目链接 题目大意 给你一个长为n(n<=1e5)的数组,让你求有多少对a[i]和a[j] (i!=j)满足a[i]&a[j]>a[i]^a[j] 题目思路 这些有关位运算的题目肯 ...
- Codeforces Round #610 (Div. 2) A-E简要题解
contest链接: https://codeforces.com/contest/1282 A. Temporarily unavailable 题意: 给一个区间L,R通有网络,有个点x,在x+r ...
- Codeforces Round #614 (Div. 2) A-E简要题解
链接:https://codeforces.com/contest/1293 A. ConneR and the A.R.C. Markland-N 题意:略 思路:上下枚举1000次扫一遍,比较一下 ...
- Codeforces Round #611 (Div. 3) A-F简要题解
contest链接:https://codeforces.com/contest/1283 A. Minutes Before the New Year 题意:给一个当前时间,输出离第二天差多少分钟 ...
- Codeforces Round #672 (Div. 2) D. Rescue Nibel!(排序)
题目链接:https://codeforces.com/contest/1420/problem/D 前言 之前写过这场比赛的题解,不过感觉这一题还可以再单独拿出来好好捋一下思路. 题意 给出 $n$ ...
- Codeforces Round #672 (Div. 2)
比赛链接:https://codeforces.com/contest/1420 A. Cubes Sorting 题意 给出一个大小为 $n$ 的数组 $a$,每次只可以交换相邻的两个元素,最多交换 ...
随机推荐
- 漏洞重温之sql注入(五)
漏洞重温之sql注入(五) sqli-labs通关之旅 填坑来了! Less-17 首先,17关,我们先查看一下页面,发现网页正中间是一个登录框. 显然,该关卡的注入应该为post型. 直接查看源码. ...
- typepra快捷键
- mybatis批量添加数据的三种方式
原文地址:https://www.cnblogs.com/gxyandwmm/p/9565002.html
- e3mall商城总结12之购物车的实现、以及购物车小计问题、json406报错
说在前面的话 1.本节主要讲了e3mall购物车的实现方法,我搭建的项目和系统购物车有一些区别,因此这里需要说一下.系统搭建的项目在未登陆的情况下也可以通过cookie进行加入购物车,当用户要下单的时 ...
- ent orm笔记4---Code Generation
在前面几篇文章中,我们经常使用的可能就是entc这个命令了,entc这个工具给带来了很多功能,这篇文章主要整理关于ent orm 中Code Generation 之前的例子中有个知识点少整理了,就是 ...
- 用android studio多渠道打包
1. 官方教程 https://developer.android.com/studio/build/build-variants.html 2. 设置Build Types参数 打开 Project ...
- Dungeon Master(三维bfs)
You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed of un ...
- 开发者的福音,LR.NET模块化代码生成器
代码生成器,是快速开发平台的核心功能之一,是一种用来帮助缺乏经验或者时间的开发者快速生成规范代码的工具,可以在极大程度上提升开发者的工作效率, 能有效避免重复工作.但稍有经验的开发者都明白,代码生成器 ...
- 小程序开发-微信小程序开发入门
分享一个微信小程序开发的基本流程,仅供参考. 第一步:注册微信小程序公众号,注册成功后,登录微信公众号管理后台,等待下一步操作. 第二步:进入微信小程序的后台后,下载微信内置的微信小程序开发者工具,以 ...
- 按照BNF语法重新写就的JsonAnalyzer2
本例源码:https://files.cnblogs.com/files/heyang78/JsonAnalyzer2-20200525-01.rar 自从按BNF重新书写了算术表达式解析(https ...