“爷爷,你关注的up主要更新拉!”
今天起开始CF/At不定期更新

A. Sum(暴力)

只需判断a,b,c是否为和关系即可

#include <bits/stdc++.h>
#define ll long long
#define ls p<<1
#define rs p<<1|1
#define Ma 1000005
#define mod 1000000007
#define PLL pair<ll,ll>
#define PDD pair<double,double>
using namespace std;
ll n;
ll a[Ma];void sol()
{for (ll i=0;i<3;i++)scanf("%lld",&a[i]);sort(a,a+3);if (a[0]+a[1]==a[2])printf("YES\n");elseprintf("NO\n");return;
}int main()
{ll tt;scanf("%lld",&tt);while (tt--)sol();return 0;
}

B. Increasing(sort+暴力)

只需判断有无重复数即可

#include <bits/stdc++.h>
#define ll long long
#define ls p<<1
#define rs p<<1|1
#define Ma 1000005
#define mod 1000000007
#define PLL pair<ll,ll>
#define PDD pair<double,double>
using namespace std;
ll n;
ll a[Ma];void sol()
{scanf("%lld",&n);for (ll i=1;i<=n;i++)scanf("%lld",&a[i]);sort(a+1,a+n+1);for (ll i=1;i<n;i++){if (a[i]==a[i+1]){printf("NO\n");return;}}printf("YES\n");return;
}int main()
{ll tt;scanf("%lld",&tt);while (tt--)sol();return 0;
}

C. Stripes(思维)

只需判断一条贯穿即可,因为最后画图一定会有一条完整的线

#include <bits/stdc++.h>
#define ll long long
#define ls p<<1
#define rs p<<1|1
#define Ma 1000005
#define mod 1000000007
#define PLL pair<ll,ll>
#define PDD pair<double,double>
using namespace std;
ll n=8;
string s[Ma];void sol()
{for (ll i=0;i<n;i++)cin>>s[i];for (ll i=0;i<n;i++){ll flag=0;for (ll j=0;j<n;j++)if (s[i][j]!='R')flag=1;if (!flag){printf("R\n");return;}}printf("B\n");return;
}int main()
{ll tt;scanf("%lld",&tt);while (tt--)sol();return 0;
}

D. Coprime(思维)

我们可以发现ai<=1000,因此我们可以通过值匹配完成,复杂度为O()[M=1000](log为gcd复杂度)

PS:应该是有更加优秀的算法的,但是这题没必要(doge)

#include <bits/stdc++.h>
#define ll long long
#define ls p<<1
#define rs p<<1|1
#define Ma 1000005
#define N 1005
#define mod 1000000007
#define PLL pair<ll,ll>
#define PDD pair<double,double>
using namespace std;
ll n;
ll a[Ma];
ll f[Ma];void sol()
{scanf("%lld",&n);memset(f,0,sizeof(f));for (ll i=1;i<=n;i++)scanf("%lld",&a[i]),f[a[i]]=i;ll ans=-1;for (ll i=1;i<N;i++){if (f[i])for (ll j=i;j<N;j++)if (f[j]&&__gcd(i,j)==1)ans=max(ans,f[i]+f[j]);}printf("%lld\n",ans);return;
}int main()
{ll tt;scanf("%lld",&tt);while (tt--)sol();return 0;
}

E. Scuza(二分+思维)

我们发现到达i点需要的jio长至少为,得到的高度为 ,由于jio长保证单调非减,因此通过预处理得到jio长max的高度,然后通过二分得到答案。

#include <bits/stdc++.h>
#define ll long long
#define ls p<<1
#define rs p<<1|1
#define Ma 1000005
#define mod 1000000007
#define PLL pair<ll,ll>
#define PDD pair<double,double>
using namespace std;
ll n,q;
ll a[Ma];
ll ans[Ma];void sol()
{scanf("%lld%lld",&n,&q);for (ll i=1;i<=n;i++)scanf("%lld",&a[i]),ans[i]=ans[i-1]+a[i];for (ll i=1;i<=n;i++)a[i]=max(a[i],a[i-1]);while (q--){ll x;scanf("%lld",&x);ll l=upper_bound(a+1,a+n+1,x)-a-1;printf("%lld ",ans[l]);}printf("\n");return;
}int main()
{ll tt;scanf("%lld",&tt);while (tt--)sol();return 0;
}

F. Smaller(贪心)

我们维护s最小与t最大比较即可,复杂度O(26*2*q)

PS:nm没看到初始有a,结果居然能过ps(人麻了)。

#include <bits/stdc++.h>
#define ll long long
#define ls p<<1
#define rs p<<1|1
#define Ma 1000005
#define mod 1000000007
#define PLL pair<ll,ll>
#define PDD pair<double,double>
using namespace std;
ll q;
ll a[Ma];
ll f[26],f2[26];
ll col[26],col2[26];void ask()
{for (ll i=0;i<26;i++)col[i]=f[i],col2[i]=f2[i];ll l=0,r=25;while (l<26&&r>=0){while (l<26&&!col[l])l++;while (r>=0&&!col2[r])r--;if(l==26||r<0)break;if (l<r){printf("YES\n");return;}else if (l>r){printf("NO\n");return;}else{ll w=min(col[l],col2[r]);col[l]-=w,col2[r]-=w;}}if (r<0)printf("NO\n");elseprintf("YES\n");return;
}void sol()
{scanf("%lld",&q);memset(f,0,sizeof(f));memset(f2,0,sizeof(f2));f[0]=f2[0]=1;ll cnt=0;while (q--){ll op,x;string s;cin>>op>>x>>s;if (op==1){for (ll i=0;i<s.size();i++)f[s[i]-'a']+=x;}else{for (ll i=0;i<s.size();i++)f2[s[i]-'a']+=x;}ask();}return;
}int main()
{ll tt;scanf("%lld",&tt);while (tt--)sol();return 0;
}

G. Orray(位运算+贪心)

首先我们发现进行的是or运算,因此我们可以对位进行分类。

假设前i个答案已经确定位ans,那么第i+1个答案应该为max(ans|a[p]),(a[p]未被选取)。

对于我们所选取的数字a[p]。

1.若ans已经覆盖满所有数,即ans=max(ans|a[p]),那么对于所有的p都是等价的(也就是说瞎JB取都可以)

2.否则一定会出现(1<<j)&((ans|a[p])-ans)==1的情况,我们希望j越大越好,而对于(1<<j)的点一定与原答案不相交,即不会重复选(如果重复选则有(1<<j)&ans==1,与上述式子不符),在固定最大j的基础上选择能让ans最大的值并更新ans即可

复杂度为O(n*log(1e9)/30n)

PS2:感觉暴力sort30次也能过(没试过),复杂度在O(30n*logn)

#include <bits/stdc++.h>
#define ll long long
#define ls p<<1
#define rs p<<1|1
#define Ma 1000005
#define N 30
#define mod 1000000007
#define PLL pair<ll,ll>
#define PDD pair<double,double>
using namespace std;
ll n;
ll a[Ma];
ll f[Ma];
vector <ll> v[N];void sol()
{for (ll i=0;i<N;i++)v[i].clear();scanf("%lld",&n);for (ll i=1;i<=n;i++)f[i]=0;for (ll i=1;i<=n;i++){scanf("%lld",&a[i]);for (ll j=0;j<N;j++)if ((1<<j)&a[i])v[j].push_back(i);}ll ans=0;for (ll i=N-1;i>=0;i--){if (ans&(1<<i))continue;ll ma=0;for (auto p:v[i]){if ((ans|a[p])>(ans|a[ma]))ma=p;}if (!ma)continue;ans|=a[ma];f[ma]=1;printf("%lld ",a[ma]);}for (ll i=1;i<=n;i++)if (!f[i])printf("%lld ",a[i]);printf("\n");return;
}int main()
{ll tt;scanf("%lld",&tt);while (tt--)sol();return 0;
}

Codeforces Round #827 (Div. 4)(A~G)(F已更新)相关推荐

  1. Codeforces Round #827 (Div. 4) A~G

     比赛链接:Dashboard - Codeforces Round #827 (Div. 4) - Codeforces 目录 A Sum B Increasing C Stripes D. Cop ...

  2. Codeforces Round #827 (Div. 4)A~G(模拟,暴力,前缀最大值,二分,二进制)

    签到题A~C A #include<bits/stdc++.h> using namespace std; int n,w,x,y;int a[100005],b[100005]; int ...

  3. Codeforces Round #827 (Div. 4) 题解记录

    Codeforces Round #827 (Div. 4) A 水题 #include<bits/stdc++.h> #define sc(x) scanf("%lld&quo ...

  4. 10.16打卡 Codeforces Round #827 (Div. 4) A~E

    Dashboard - Codeforces Round #827 (Div. 4) - Codeforces 开摆F和G懒得写 A题 排个序就好了 /* ⣿⣿⣿⣿⣿⣿⡷⣯⢿⣿⣷⣻⢯⣿⡽⣻⢿⣿⣿⣿⣿⣿ ...

  5. Codeforces Round #693 (Div. 3)A~G解题报告

    Codeforces Round #693 (Div. 3)A~G解题报告 A Cards for Friends 原题信息 http://codeforces.com/contest/1472/pr ...

  6. Codeforces Round #697 (Div. 3)A~G解题报告

    Codeforces Round #697 (Div. 3)A~G解题报告 题 A Odd Divisor 题目介绍 解题思路 乍一想本题,感觉有点迷迷糊糊,但是证难则反,直接考虑没有奇数因子的情况, ...

  7. Codeforces Round #827 (Div. 4) E. Scuza

    Codeforces Round #827 (Div. 4) E. Scuza 前缀和 前缀和 前缀和 + 二分 二分 二分 Let's compute the prefix sums of the ...

  8. Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...

  9. Codeforces Round #698 (Div. 2)(A ~ F)6题全,超高质量题解)【每日亿题】2021/2/4

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 [每日亿题]Codeforces Round #698 (Div. 2)(A ~ F)6题全,超 ...

  10. Codeforces Round #699 (Div. 2) (A ~ F)6题全,超高质量良心题解【每日亿题】2021/2/6

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) (A.B.C)[每日亿题]2021/2/ ...

最新文章

  1. 鸿蒙就是安卓换皮_被喷换皮安卓?华为手机鸿蒙OS Beta版今日上线
  2. 通过cookies跳过验证码登陆页面,直接访问网站的其它URL
  3. hadoop编译java,Hadoop源码编译(2.4.1)
  4. 基于centos8搭建zookeeper集群
  5. binary masks_Python中的Masks概念
  6. 动态游标for循环_数据结构系列循环链表
  7. 计算机自动关闭硬盘,你遇到过电脑硬盘自动关闭的问题吗?
  8. OpenCV的基本数据结构
  9. fetchxml 汇总_Dynamic CRM 2013学习笔记(十七)JS读写各种类型字段方法及技巧
  10. X86汇编语言从实模式到保护模式20:平坦模型
  11. 水晶报表技术(3)——.NET 2005 中动态水晶报表的实现
  12. 【转】子窗体刷新父窗体使用接口模式 父窗口关闭子窗口
  13. 设置计算机屏幕保护程序,电脑屏保怎么设置?一键设置电脑屏幕保护方法
  14. 基于MATLAB的无线信道性能仿真
  15. 百度地图地图API(常用)
  16. SSM车辆综合管理系统J2EE(包含车辆驾驶员油耗年检以及维修保养百度echarts统计图表)JAVAWEB网站
  17. C++ get()和put()读写文件详解
  18. AI带你走进P图新时代
  19. 代码读智识  笔墨知人心 1
  20. 以标记清除的方式垃圾回收

热门文章

  1. Python爬虫编程思想(6):实战案例:抓取所有的网络资源
  2. 中央电视台出品CCTVLive(cctvbox)收看所有CCTV节目最佳软件 cctv网络电视机
  3. 给ssh服务添加fail2ban安全认证
  4. FineReport10.0版本更新
  5. Acwing提高课--数论
  6. meso-四(4-溴代苯基)卟啉的(TBPP);5,10,15,20-四(4-甲氧基-3-磺酸苯基)卟啉[T(4-MOP)PS4]齐岳供应
  7. sack linux漏洞,【安全公告】Linux 内核 TCP SACK 漏洞风险通告
  8. 三星note3 n9009刷机教程-救砖教程(by 星空武哥)
  9. 胖虎白话学习设计模式之依赖倒置原则(Dependence Inversion Principle)
  10. 页面中查询模块的设计与实现思路