codeforces round#613
A题:输出n+1;
B题:
题意:就是给n个数,a人全拿,b人拿连续的子段和,如果b人比a人大于等于的话输出NO,反之输出YES
思路:最大子段和,比赛的时候忘记 ll 和 字段和不是遇到负数就重置。
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<set>
#include<map>
#include<queue>
#include<vector>
#include<queue>
#include<cmath>
#define mem(a,b) memset(a,b,sizeof(a))
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define mod 998244353
const int maxn=1e5+;
int t,n;
int a[maxn];
int main(){
scanf("%d",&t);
while(t--){
scanf("%d",&n);
int flag=,tt=,f=;
ll sum=,ans=,maxx=-;
for(int i=;i<n;i++){
scanf("%d",&a[i]);
sum+=(ll)a[i];
}
ans=;
int l=,r=,l1=,r1=;
for(int i=;i<n;i++){
if(ans<=){ans=a[i];l=r=i;}
else{
ans+=a[i];r=i;
}
if(maxx<ans){
maxx=ans,l1=l,r1=r;
}
}
if(maxx<sum ||(maxx==sum && l1== && r1==n-)){
printf("YES\n");
}
else{
printf("NO\n");
}
}
return ;
}
C题:
题意:给一个x,求lcm(a,b)=x的同时max(a,b)要求最小化
思路:比赛的时候想了一个想法,然后试了一下就过了,没有数学验证,感觉这题比B题好做好多
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<set>
#include<map>
#include<queue>
#include<vector>
#include<queue>
#include<cmath>
#define mem(a,b) memset(a,b,sizeof(a))
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define mod 998244353
const int maxn=1e5+;
ll gcd(ll a,ll b){
return b==?a:gcd(b,a%b);
}
ll n;
int main(){
scanf("%lld",&n);
ll k=(ll)sqrt(n);
for(ll i=k;i>=;i--){
if(n%i==){
if(gcd(i,n/i)==){
printf("%lld %lld\n",i,n/i);break;
}
}
}
return ;
}
upd
D题:看网上代码和思路,自己的假算法一直过不去……
这是一道异或的题,题意是给n个数字,找到一个X,和n个数异或,使得异或结果最大maxx的那个最小化,输出maxx
思路:(其实还是不太明白为什么可以这样,抄了一位大哥的题解,自己再琢磨琢磨……)
dfs,遍历这些数当前二进制位置是否全为1,或者全为0,如果都是1或0,当前二进制就可以抵消,不然再选择X的时候,这位的二进制是1或者0,都只能抵消一个二进制上面的数
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<set>
#include<map>
#include<queue>
#include<vector>
#include<queue>
#include<cmath>
#define mem(a,b) memset(a,b,sizeof(a))
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define mod 998244353
const int maxn=1e5+;
vector<int>g;
int n,t;
int dfs(vector<int>&c,int x){
if(x<){return ;}
if(c.size()==){return ;}
vector<int>on,off;
for(auto i:c){
if((i>>x)&){
on.push_back(i);
}
else{
off.push_back(i);
}
}
if(on.size()==){return dfs(off,x-);}
if(off.size()==){return dfs(on,x-);}
return min(dfs(off,x-),dfs(on,x-))+(<<x);
}
int main(){
scanf("%d",&n);
for(int i=;i<n;i++){
scanf("%d",&t);g.push_back(t);
}
printf("%d\n",dfs(g,));
return ;
}
codeforces round#613的更多相关文章
- Codeforces Round #613 Div.1 D.Kingdom and its Cities 贪心+虚树
题目链接:http://codeforces.com/contest/613/problem/D 题意概述: 给出一棵树,每次询问一些点,计算最少删除几个点可以让询问的点两两不连通,无解输出-1.保证 ...
- Codeforces Round #613 (Div. 2) A-E简要题解
contest链接:https://codeforces.com/contest/1285 A. Mezo Playing Zoma 签到 #include<iostream> #incl ...
- Codeforces Round #613 (Div. 2) (A-E)
A略 直接求和最大的子序列即可(注意不能全部选中整个子序列) or #include<bits/stdc++.h> using namespace std; void solve(){ i ...
- Codeforces Round #613 (Div. 2)D(贪心,分治)
构造两颗深度为30的字典树(根节点分别是0和1),结点只有0和1,从根节点向下DFS,贪心取答案. #define HAVE_STRUCT_TIMESPEC #include<bits/stdc ...
- Codeforces Round #613 (Div. 2) C. Fadi and LCM(LCM & GCD)
题意: LCM(a, b) = X,求 max(a, b) 的最小值. 思路: a, b 只可能存在于 X 的因子中,枚举即可. #include <bits/stdc++.h> usin ...
- Codeforces Round #613 (Div. 2) B. Just Eat It!(前缀和)
题意: 一个长为n的序列,是否存在与原序列不同的连续子序列,其元素之和大于等于原序列. 思路: 从前.后分别累加,若出现非正和,除此累加序列外的子序列元素之和一定大于等于原序列. #include & ...
- Codeforces Round #613 (Div. 2) A. Mezo Playing Zoma(逻辑)
题意: 给出一个移动序列,可以无效化一些指令,问可以移动到多少不同位置. 思路: 第一印象是统计左右指令数目,后来发现左右指令数目和即字符串长度. #include <bits/stdc++.h ...
- Codeforces Round #613 (Div. 2) C. Fadi and LCM (数学)
题意:给你一个正整数\(x\),找两个正整数\(a\),\(b\),使得\(lcm(a,b)=x\),并且\(max(a,b)\)最小. 题解:我们知道,\(lcm(a,b)=a*b/gcd(a,b) ...
- Codeforces Round #613 (Div. 2) B. Just Eat It! (DP)
题意:有一个长度为\(n\)的序列,找出最大的长度不为\(n\)的子段和,问最大子段和是否小于所有元素和. 题解:最大子段和我们可以直接用dp来找,每次状态转移为:\(dp[i]=max(dp[i-1 ...
随机推荐
- HTML学习(9)头部
HTML <head> 元素 <head> 元素包含了所有的头部标签元素.在 <head>元素中你可以插入脚本(scripts), 样式文件(CSS),及各种met ...
- 每天进步一点点------Allegro 蛇形走线
对于高速数据总线,如果芯片内部没有延时调节功能,通常使用蛇形走线来调整延时以满足时序要求,也就是通常所说的等长线.蛇形走线的目的是调整延时,所以这一类网络都有延迟或相对延迟约束.所以在做蛇形走线调整时 ...
- 通过scrapy,从模拟登录开始爬取知乎的问答数据
这篇文章将讲解如何爬取知乎上面的问答数据. 首先,我们需要知道,想要爬取知乎上面的数据,第一步肯定是登录,所以我们先介绍一下模拟登录: 先说一下我的思路: 1.首先我们需要控制登录的入口,重写star ...
- 如何创建redis集群
1.下载redis源码包 wget http://download.redis.io/releases/redis-3.2.4.tar.gz 2.解压并安装 tar xvf redis-.tar.gz ...
- 关于mybatis中多参数传值
如果前台单独传递多个参数,并且未进行封装,在mybatis的sql映射文件中需要以下标的形式表示传递的参数,从0开始 即:where name=#{0} and password =#{1}:0表示第 ...
- 【C语言】将两个字符串连接起来
#include<stdio.h> int main() { ] = "I "; ] = "am a student"; int i, j, n; ...
- 一些 乱码 GPU的问题
# # s = '网站地图' 原始 # s1 = s.encode('utf-8') # print(s1.decode('gbk')) #res 缃戠珯鍦板浘 # s = '缃戠珯鍦板浘' 原始 # ...
- 前端之js基础篇
JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECM ...
- Innovus update_io_latency
在Innovus中从ccopt 后的timing report中可以看到clock delay是从负值开始算起的,这个是因为在ccopt过程中进行了的update latency的动作. 基于bloc ...
- .Net Core 认证组件之Cookie认证组件解析源码
接着上文.Net Core 认证系统源码解析,Cookie认证算是常用的认证模式,但是目前主流都是前后端分离,有点鸡肋但是,不考虑移动端的站点或者纯管理后台网站可以使用这种认证方式.注意:基于浏览器且 ...