Ediv2 58

  • 随手AK.jpg

D

裸的虚树,在这里就不写了

E

傻逼贪心?这个题过的比$B$都多.jpg

#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <cstdlib>
#include <queue>
#include <iostream>
#include <bitset>
using namespace std;
#define N 500005
#define ll long long
int n,now_mx,maxx;char s[10];
int main()
{
scanf("%d",&n);
while(n--)
{
int x,y;scanf("%s%d%d",s+1,&x,&y);
if(x<y)swap(x,y);
if(s[1]=='+')now_mx=max(x,now_mx),maxx=max(y,maxx);
else puts(x>=now_mx&&y>=maxx?"YES":"NO");
}
}

F

似乎正解的那个单调队列做法没啥意思啊...

直接暴力二分+剪枝就好了...

然后其实能卡掉,但是懒得去卡了.jpg

然后卡一卡常数就好了.jpg

随便剪一剪枝前测就能过.jpg

#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <cstdlib>
#include <queue>
#include <iostream>
#include <bitset>
using namespace std;
#define N 405
#define ll long long
int a[N],n,m,s,t,f,c,l,r;ll ans;
inline bool check(int x)
{
register int i,tc=c;register int now=x;
for(i=s;i<t;i++)
{
if(a[i+1]-a[i]>x)return 0;
if(a[i+1]-a[i]>now)
{
if(!tc)return 0;
tc--;now=x;
}
now-=a[i+1]-a[i];
}return 1;
}
int main()
{
scanf("%d%d",&n,&m);l=0,r=1<<30;
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
while(m--)
{
scanf("%d%d%d%d",&s,&t,&f,&c);if(s>t)swap(s,t);
if(check(ans/f))continue;
l=(ans/f)+1;r=a[t]-a[s];
while(l<r)
{
int mid=(l+r)>>1;
if(check(mid))r=mid;else l=mid+1;
}ans=max((ll)l*f,ans);
}
printf("%lld\n",ans);
}

G

一个结论,能划分出的段数是线性基里的基的个数

证明嘛:

对于任意一个已经存在的基,都可以被一些数表达出来

然后就可以发现,不可能存在一个划分的段数比线性基里的基数更多(根据线性基的定义

然后就完了.jpg

#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <cstdlib>
#include <queue>
#include <iostream>
#include <bitset>
using namespace std;
#define N 200005
#define ll long long
int a[32],now;
void insert(int x)
{
for(int i=30;~i;i--)if((x>>i)&1)
if(a[i])x^=a[i];
else {a[i]=x;return ;}
}
int main()
{
int n,x;
scanf("%d",&n);
while(n--)scanf("%d",&x),insert(x),now^=x;
if(!now)return puts("-1"),0;
x=0;
for(int i=30;~i;i--)if(a[i])x++;
printf("%d\n",x);
}

Codeforces Educational round 58的更多相关文章

  1. Codeforces Educational Round 33 题解

    题目链接   Codeforces Educational Round 33 Problem A 按照题目模拟,中间发现不对就直接输出NO. #include <bits/stdc++.h> ...

  2. Codeforces Educational Round 92 赛后解题报告(A-G)

    Codeforces Educational Round 92 赛后解题报告 惨 huayucaiji 惨 A. LCM Problem 赛前:A题嘛,总归简单的咯 赛后:A题这种**题居然想了20m ...

  3. [CodeForces]Educational Round 52

    幸好我没有打这场,我VP的时候在C题就卡死了,我果然还是太菜了. A Vasya and Chocolate 题意:一个巧克力\(c\)元,买\(a\)赠\(b\),一共有\(n\)元,问能买几个巧克 ...

  4. Codeforces Educational Round 37

    Solved   CodeForces 920A Water The Garden   Solved   CodeForces 920B Tea Queue   Solved   CodeForces ...

  5. Codeforces Educational Round 57

    这场出题人好像特别喜欢998244353,每个题里都放一个 A.Find Divisible 考察选手对输入输出的掌握 输出l 2*l即可(为啥你要放这个题,凑字数吗 #include<cstd ...

  6. Codeforces Educational Round 23

    A emmmmmmmmm B emmmmmmmmm C(套路) 题意: 给定n和s(n,s<=1e18),计算n以内有多少个数x满足(x-x的各个位置数字之和)>=s 分析: 容易想到如果 ...

  7. Codeforces Educational Round 21

    A =w= B qwq C wvw D(multiset) 题意: 有n(n<=1e5)个数,希望通过把一个位置y的数字放到位置x上这个操作,使得新序列的某个前缀和等于总和的一半,问这样的操作是 ...

  8. codeforces educational round 25

    A 出题人不给样例解释...具体程序 #include<bits/stdc++.h> using namespace std; int n; ]; int main() { scanf() ...

  9. [Codeforces Educational Round 71]Div. 2

    总结 手速场...像我这种没手速的就直接炸了... 辣鸡 E 题交互,少打了个 ? 调了半个小时... 到最后没时间 G 题题都没看就结束了...结果早上起来被告知是阿狸的打字机...看了看题一毛一样 ...

随机推荐

  1. HttpClient的用法

    客户端模拟http请求工具 Postmen(谷歌插件).RestClient 服务器模拟http请求工具 httpclient.HttpURLConnection httpCient请求代码 /** ...

  2. VS2017写代码时几个常用的快捷键

    说明:组合键是同时按,非组合键是按住Ctrl依次按后面的键1.格式化  格式化全部代码       Ctrl+A+K+F  格式化选中的代码     Ctrl+K+F 2.注释代码  注释代码    ...

  3. 在JavaScript文件中用ajax方法实现省市区的三级联动

    1.JavaScript Document $(document).ready(function(e) { 加载三个下拉列表 $("#sanji").html("< ...

  4. matlab练习程序(单层感知器)

    clear all; close all; clc; %生成两组已标记数据 randn(); mu1=[ ]; S1=[ ; ; 0.4]; P1=mvnrnd(mu1,S1,); mu2=[ ]; ...

  5. Array常用方法总结

    一.[常用语法] 1.1.数组的创建var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定 ...

  6. Apache2启动错误Could not reliably determine the server's fully qualified domain name

    错误情况: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using ...

  7. 多个div中的label标签对齐

    这是之前的页面效果: 添加红色部门的代码后: <head> <meta name="viewport" content="width=device-wi ...

  8. MySQl新特性 GTID

    GTID简介 概念 全局事务标识符(GTID)是创建的唯一标识符,并与在源(主)服务器上提交的每个事务相关联.此标识符不但是唯一的,而且在给定复制设置中的所有服务器上都是唯一的.所有交易和所有GTID ...

  9. 【转】Java学习---HashMap的工作原理

    [原文]https://www.toutiao.com/i6592560649652404744/ HashMap的工作原理是近年来常见的Java面试题.几乎每个Java程序员都知道HashMap,都 ...

  10. MySQL基础之 排序与限制,聚合

    排序与限制 ORDER BY 作用:取出按照某个字段进行排序后的记录结果集. 配合:常与DESC  和ASC一块使用:默认是ASC,表示升序.DESC表示降序 LIMIT 作用:用于显示数据的一部分记 ...