佳木斯集训Day1
23333第一次写博客
其实在佳木斯集训之前我都已经两三个月没打代码了
在佳木斯的时候前几天真心手生,导致了前几次考试考的很差...
D1的考试还是比较良心的,T1是一道大模拟,直接枚举最后几位是00,25,50,75的情况即可
一看数据范围1e18就知道铁定是O(n)了
(考试的时候不知道为什么wa70)
直接上代码
#include <bits/stdc++.h>
#define ll long long
using namespace std;
char a[];
int point,q,ans,length;
bool flag=,ju0,ju2,ju7,ju5;
ll n=,b=;
int main()
{
scanf("%s",&a);
length=strlen(a);
int c=;
for(int i=length-;i>=;i--)
{
b=b+int(a[i]-)*pow(,c);
c++;
if(int(a[i]-)==)
ju5=;
else if(int(a[i]-)==)
ju2=;
else if(int(a[i]-)==)
ju7=;
else if(int(a[i]-)==)
ju0=;
}
if(b%==)
{
cout<<<<endl;
return ;
}
for(int i=length-;i>=;i--)
{
if(a[i]=='')
{
flag=;
point=i;
swap(a[i],a[length-]);
break;
}
else if(a[i]=='')
{
flag=;
point=i;
swap(a[i],a[length-]);
break;
}
}
if(flag==)
cout<<"-1"<<endl;
else
{
flag=;
int t=;
ans=ans+length-point-;
for(int i=length-;i>=;i--)
{
n=n+int(a[i]-)*pow(,t);
t++;
}
n=n/;
if(n%==)
{
cout<<ans<<endl;
return ;
}
else
{ t=;
while(n)
{
a[++t]=n%;
n/=;
}
length=strlen(a);
for(int i=length-;i>=;i--)
{
if(a[i]==''||a[i]=='')
{
flag=;
point=i;
swap(a[i],a[length-]);
break;
}
}
if(ju5==&&(ju2!=&&ju7!=&&ju0!=))
{
cout<<-<<endl;
return ;
}
if(flag==)
cout<<"-1"<<endl;
else
{
ans=ans+length-point-;
}
cout<<ans<<endl;
}
}
return ;
}
T2 比较水(现在看考试题都比较水)
就是需要判断这两个数组是否是严格单调的,考试的时候想到了,但不知道为啥wa10???
#include<bits/stdc++.h>
using namespace std;
int n,a[],b[],fa,fb,q=;
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)scanf("%d",&a[i]);
for(int i=;i<=n;i++)scanf("%d",&b[i]);
fa=a[];fb=b[];
for(int i=;i<=n;i++)
{
if(fa>a[i]&&fb>b[i])fa=a[i],fb=b[i];
else if(fa<a[i]&&fb<b[i])continue;
else {cout<<i-<<endl;
return ;}
}
cout<<n<<endl;
return ;
}
T3 是我D1唯一A的一道题23333,因为是并查集
#include <bits/stdc++.h>
#define MAXN 100500
using namespace std;
int n,m,k,x,y;
int f[MAXN],a[MAXN],g[MAXN],point,h[MAXN],c,ans,s;
bool v[MAXN],b[MAXN];
int find(int x)
{
if(f[x]==x)
return x;
f[x]=find(f[x]);
return f[x];
}
int main()
{
cin>>n>>m>>k;
for(int i=;i<=n;i++)
cin>>a[i];
for(int i=;i<=n;i++)
f[i]=i;
for(int i=;i<=m;i++)
{
cin>>x>>y;
v[x]=;
v[y]=;
int t1=find(x);
int t2=find(y);
if(t1==t2)
continue;
f[t2]=t1;
}
for(int i=;i<=n;i++)
{
if(v[i])
{
if(!b[find(i)])
{
b[find(i)]=;
g[++point]=find(i);
}
}
}
for(int i=;i<=point;i++)
{
memset(h,,sizeof(h));
c=;
ans=;
for(int j=;j<=n;j++)
{
if(find(j)==g[i])
h[a[j]]++,c++;
}
for(int j=;j<=n;j++)
{
if(h[j]>ans)
{
ans=h[j];
}
}
s=s-ans+c;
}
cout<<s<<endl;
}
然后考完之后基本上是秒改AK的...
当天学的是数据结构(单调栈什么的,本来以为题水,谁知道每道题难度都是紫色啊)
佳木斯集训Day1的更多相关文章
- 【欧拉回路+最小生成树】SD开车@山东2018省队一轮集训day1
目录 [欧拉回路+最小生成树]SD开车@山东2018省队一轮集训day1 PROBLEM 题目描述 输入 输出 样例输入 样例输出 提示 SOLUTION CODE [欧拉回路+最小生成树]SD开车@ ...
- 国庆集训 Day1 T2 生成图 DP
国庆集训 Day1 T2 生成图 现在要生成一张\(n\)个点的有向图.要求满足: 1.若有 a->b的边,则有 b->a 的边 2.若有 a->b 的边和 b->c 的边,则 ...
- 2019暑期金华集训 Day1 组合计数
自闭集训 Day1 组合计数 T1 \(n\le 10\):直接暴力枚举. \(n\le 32\):meet in the middle,如果左边选了\(x\),右边选了\(y\)(且\(x+y\le ...
- 2019暑期金华集训 Day1 数据结构
自闭集训 Day1 数据结构 CF643G 用类似于下面的方法,搬到线段树上. 如何合并两个集合?先全部放在一起,每次删掉最小的\(cnt_i\),然后把其他所有的\(cnt\)都减去\(cnt_i\ ...
- LOJ 6060「2017 山东一轮集训 Day1 / SDWC2018 Day1」Set(线性基,贪心)
LOJ 6060「2017 山东一轮集训 Day1 / SDWC2018 Day1」Set $ solution: $ 这一题的重点在于优先级问题,我们应该先保证总和最大,然后再保证某一个最小.于是我 ...
- 牛客2018国庆集训 DAY1 D Love Live!(01字典树+启发式合并)
牛客2018国庆集训 DAY1 D Love Live!(01字典树+启发式合并) 题意:给你一颗树,要求找出简单路径上最大权值为1~n每个边权对应的最大异或和 题解: 根据异或的性质我们可以得到 \ ...
- 暑假集训Day1 整数划分
题目大意: 如何把一个正整数N(N长度<20)划分为M(M>=1)个部分,使这M个部分的乘积最大.N.M从键盘输入,输出最大值及一种划分方式. 输入格式: 第一行一个正整数T(T<= ...
- 考前停课集训 Day1 废
[友情链接] Day1 今天模拟赛倒数…… 感觉自己菜到爆炸…… 被一个以前初一的倒数爆踩…… 感觉自己白学了. 满分400,自己只有100.真的是倒数第一…… 做了一个T2,其他暴力分全部没有拿到… ...
- 长沙雅礼中学集训-------------------day1(内含day0)
day0: 首先,请允许我吐槽一下: 1.那些一个人住一个标准房的人您们真的是#@**¥&%……#*()%……*()@Q$&. 2.感谢那些一个人住一个标准间的人,要不然我们也找不到这 ...
随机推荐
- 从0x00到0xFF的含义
对于二进制来说,8位二进制我们称之为一个字节,二进制的表达范围值是从0b00000000-0b11111111,而我们程序中用十六进制表示的时候就是从0x00到0xFF,这里教大家一个二进制转换十进制 ...
- Js笛卡尔乘积
self.getDescartesSku = function (selSaleProp, i, nowLst, allALst) { if (selSaleProp.length = ...
- JavaScript 基础知识 表达式和运算符
表达式的概念:将同类型的数据(如常量.变量.函数等),用运算符号按一定的规则连起来的.有意义的式子称为表达式 一.原始表达式 最简单的表达式,是表达式的最小单位.JavaScript中的原始表达式包含 ...
- Qt实现炫酷启动图-动态进度条
目录 一.简述 二.动效进度条 1.光效进度条 2.延迟到达进度条 3.接口说明 三.启动图 1.实现思路 2.背景图切换 四.测试 1.构造启动图 2.背景图 3.其他信息 4.事件循环 五.源码 ...
- Java设计模式学习笔记(一) 设计模式概述
前言 大约在一年前学习过一段时间的设计模式,但是当时自己的学习方式比较低效,也没有深刻的去理解.运用所学的知识. 所以现在准备系统的再重新学习一遍,写一个关于设计模式的系列博客. 废话不多说,正文开始 ...
- c++ 二分答案
c++ 二分答案 问题 使得x^x达到或超过n位数字的最小正整数x是多少?n<=2000000000 分析 对与这种较难求解的问题,我们很难想出较好的解决策略.但是,我们至少知道答案一定在1与2 ...
- Java学习笔记之---方法和数组
Java学习笔记之---方法与数组 (一)方法 (1)什么是方法? 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 (2)方法的优点 使程序变得更简短而 ...
- DRF + react 实现TodoList
在web项目构建中有很多框架可供选择,开发人员对项目的使用选择,有很多的影响因素,其中之一就是框架在定义该项目的单独任务时的复杂性. 简介 本文有如下几个部分: 准备 配置后端 配置APIs 配置前端 ...
- 【动态规划法(DP)】-C++
360百科定义: 动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法.20世纪50年代初美国数学家R.E.Bell ...
- 【Phabricator】教科书一般的Phabricator安装教程(配合官方文档并带有踩坑解决方案)
随着一声惊雷和滂沱的大雨,我的Phabricator页面终于在我的学生机上跑了起来. 想起在这五个小时内踩过的坑甚如大学隔壁炮王干过的妹子,心里的成就感不禁油然而生. 接下来,我将和大家分享一下本人在 ...