Codeforces 899 1-N两非空集合最小差 末尾最多9对数计算 pair/链表加优先队列最少次数清空
A
/*Huyyt*/
#include<bits/stdc++.h>
#define mem(a,b) memset(a,b,sizeof(a))
#define pb push_back
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const ll LLmaxn = 2e18;
const int N = ;
int main()
{
int one = ;
int two = ;
int n;
cin >> n;
for (int i = ; i <= n; i++)
{
int now;
cin >> now;
if (now == )
{
one++;
}
else
{
two++;
}
}
if (one < two)
{
cout << one << endl;
}
else
{
cout << two + (one - two) / << endl;
}
return ;
}
B
/*Huyyt*/
#include<bits/stdc++.h>
#define mem(a,b) memset(a,b,sizeof(a))
#define pb push_back
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const ll LLmaxn = 2e18;
const int N = ;
int month1[] = {, , , , , , , , , , , , };
int month2[];
int now[];
int m[];
int cnt = ;
bool ok(int x)
{
if (x % == )
{
return true;
}
if (x % == && x % > )
{
return true;
}
return false;
}
int main()
{
for (int i = ; i <= ; i++)
{
month2[i] = month1[i];
}
month2[] = ;
for (int i = ; i <= ; i++)
{
if (ok(i))
{
for (int j = ; j <= ; j++)
{
now[++cnt] = month2[j];
}
}
else
{
for (int j = ; j <= ; j++)
{
now[++cnt] = month1[j];
}
}
}
int n;
cin >> n;
for (int i = ; i <= n; i++)
{
cin >> m[i];
}
for (int i = ; i <= + ; i++)
{
for (int j = ; j <= n + ; j++)
{
if (j == n + )
{
cout << "Yes" << endl;
return ;
}
if (now[i + j] != m[j])
{
break;
}
}
}
cout << "No" << endl;
}
C
/* Huyyt */
#include <bits/stdc++.h>
#define mem(a,b) memset(a,b,sizeof(a))
#define mkp(a,b) make_pair(a,b)
#define pb push_back
using namespace std;
typedef long long ll;
const long long mod = 1e9 + ;
const int N = 1e6 + ;
vector<int> ans;
int main()
{
ll n;
cin >> n;
ll sum = (n + ) * n / ;
ll want = sum / ;
if (sum % )
{
cout << << endl;
for (int i = n; i >= ; i--)
{
if (i <= want)
{
ans.pb(i);
want -= i;
}
}
cout << ans.size() << " ";
for (int ch : ans)
{
cout << ch << " ";
}
cout << endl;
return ;
}
else
{
cout << << endl;
for (int i = n; i >= ; i--)
{
if (i <= want)
{
ans.pb(i);
want -= i;
}
}
cout << ans.size() << " ";
for (int ch : ans)
{
cout << ch << " ";
}
cout << endl;
return ;
}
}
D
/* Huyyt */
#include <bits/stdc++.h>
#define mem(a,b) memset(a,b,sizeof(a))
#define mkp(a,b) make_pair(a,b)
#define pb push_back
using namespace std;
typedef long long ll;
const long long mod = 1e9 + ;
const int N = 1e6 + ;
vector<int> ans;
int main()
{
ll now = ;
ll aim = ;
ll n;
cin >> n;
ll anser = ;
if (n < )
{
cout << (n - )*n / << endl;
return ;
}
while (n >= now)
{
now *= ;
aim++;
}
ll remain = ;
ll ten = ;
for (int i = ; i <= aim - ; i++)
{
remain *= ;
ten *= ;
remain += ;
}
//cout << remain << endl;
//cout << ten << endl;
ll cnt;
for (int i = ; i <= ; i++)
{
cnt = ten * i + remain;
if (n < (cnt + ) / )
{
break;
}
if (n >= cnt)
{
anser += 1LL * cnt / ;
}
else
{
anser += n + - (cnt + ) / ;
}
}
cout << anser << endl;
}
E
/* Huyyt */
#include <bits/stdc++.h>
#define mem(a,b) memset(a,b,sizeof(a))
#define mkp(a,b) make_pair(a,b)
#define pb push_back
using namespace std;
typedef long long ll;
const long long mod = 1e9 + ;
const int N = 2e5 + ;
int cnt = ;
int t1, t2;
int pre[N], Next[N], num[N], col[N];
priority_queue<pair<int, int> > que, del;
int main()
{
int anser = ;
int x;
int n;
cin >> n;
for (int i = ; i <= n; i++)
{
cin >> x;
if (x == col[cnt])
{
num[cnt]++;
}
else
{
col[++cnt] = x;
num[cnt] = ;
}
}
for (int i = ; i <= cnt; i++)
{
pre[i] = i - , Next[i] = i + ;
que.push(mkp(num[i], -i));
}
while (cnt)
{
while (!del.empty() && que.top() == del.top()) //如果区间已经被合并不存在
{
que.pop();
del.pop();
}
x = -que.top().second;
que.pop();
t1 = pre[x], t2 = Next[x];
Next[t1] = t2, pre[t2] = t1;
if (t1 && col[t1] == col[t2])
{
del.push(mkp(num[t2], -t2));
del.push(mkp(num[t1], -t1));
num[t1] += num[t2];
Next[t1] = Next[t2];
pre[Next[t2]] = t1;
que.push(mkp(num[t1], -t1));
cnt--;
}
cnt--;
anser++;
}
cout << anser << endl;
}
Codeforces 899 1-N两非空集合最小差 末尾最多9对数计算 pair/链表加优先队列最少次数清空的更多相关文章
- Servlet访问路径的两种方式、Servlet生命周期特点、计算服务启动后的访问次数、Get请求、Post请求
Servlet访问路径的两种方式: 1:注解 即在Servlet里写一个@WebServlet @WebServlet("/myServlet") 2:配置web.xml < ...
- 根据地图上的两个点各自的x,y坐标,计算出2点之间的直线距离。显示为公里、米
/** * calc_map_distance() , 根据地图上的两个点各自的x,y坐标,计算出2点之间的直线距离 * @param array $point_1 第1个点的x,y坐标 array( ...
- Codeforces 1089I - Interval-Free Permutations(析合树计数)
Codeforces 题面传送门 & 洛谷题面传送门 首先题目中涉及排列的 interval,因此可以想到析合树.由于本蒟蒻太菜了以至于没有听过这种神仙黑科技,因此简单介绍一下这种数据结构:我 ...
- java 对图片的添加文字描述,以及两张图片合成一张
最近公司一个需要,需要把商品的优惠卷分享链接,生成一个二维码然后和商品主图合成一张,并且在新合成的主图增加商品信息的描述,好了直接看合成后图片的样式 下面我就直接贴代码,首先是Contorller层 ...
- Codeforces 982 树边两端点计数偶数连通块 鲨鱼活动最小K最大location 扩展欧几里得方块内光线反射
A /*Huyyt*/ #include<bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) #define pb push_bac ...
- codeforces 上的找两人的幸运天
Bob and Alice are often participating in various programming competitions. Like many competitive pro ...
- Codeforces 899 F. Letters Removing (二分、树状数组)
题目链接:Letters Removing 题意: 给你一个长度为n的字符串,给出m次操作.每次操作给出一个l,r和一个字符c,要求删除字符串l到r之间所有的c. 题解: 看样例可以看出,这题最大的难 ...
- mysql两列合成一列
update manage set mark = concat(mark,remark) select concat(mark,remark) as pp from manage
- Codeforces 899 C.Dividing the numbers-规律
C. Dividing the numbers time limit per test 1 second memory limit per test 256 megabytes input s ...
随机推荐
- AS基本设置
1,点开as之前应该做的事 很多人一定会在这个界面卡顿很久,其实这是as在检测更新.所以我们在点开as之前先修改它的配置文件,让它不再更新. 找到你安装as的目录,进入bin文件夹找到idea.pr ...
- Linux 查找当前目录下 包含特定字符串 的所有文件
使用 Linux 经常会遇到这种情况:只知道文件中包含某些特定的字符串,但是不知道具体的文件名.需要根据“特定的字符串”反向查找文件. 示例(路径文件如下): ./miracle/luna/a.txt ...
- 之前写的页面导出Excel表格
废话不多说,直接上代码 <%@ page language="java" import="java.util.*" pageEncoding=" ...
- windows命令行查看&生成项目树
项目写好以后,想要查看项目结构或生成结构树便于后面查看,可以: 1.进入项目所在目录 2.输入tree,回车后显示项目 3.在项目根目录下保存生成的结构树 输入tree > list.txt命令
- screen重新连接会话
1.# yum -y install screen 2.# screen 3.# /usr/local/kibana/bin/kibana (具体使用案例) 然后按ctrl+a+d组合键,暂时断开s ...
- java中enum----枚举的学习(更新中)
package com.hdmaxfun; import java.util.Scanner; import com.icpc.Icpm; import java.util.HashMap; impo ...
- selenium.common.exceptions.WebDriverException: Message: ‘geckodriver’ executable needs to be in PATH
问题,找不到’geckodriver’ 的环境path,解决方案 下载geckodriver.exe 放到Firefox的安装目录下,如:(D:\火狐\Mozilla Firefox): 将火狐安装目 ...
- 简述前后端项目RSA+AES加解密
一.登录机制 在项目中,我们可以大致得出一个登录的过程,主要分为 登录验证.登录保持.退出三个部分.登录验证是指客户端提供用户名和密码,向服务器提出登录请求,服务器判断客户端是否可以登录并向客户端确 ...
- poj1061(扩展欧基里德定理)
题目链接:https://vjudge.net/problem/POJ-1061 题意:在一个首位相接的坐标轴上,A.B开始时分别位于X,Y处,每个单位时间向右移动m,n米,问是否能相遇,坐标轴长L. ...
- [转帖]2018年全球ERP软件行业市场规模与发展趋势分析 云ERP将兴起【组图】
2018年全球ERP软件行业市场规模与发展趋势分析 云ERP将兴起[组图] https://www.qianzhan.com/analyst/detail/220/190215-4b1d6868.ht ...