CF #640 (div4)
CF640 div4
草 迟到半个月的补题
真正的懒狗
再懒就无了
D. Alice, Bob and Candies
题意:n个数字,奇数时间从左侧删数字,偶数时间从右侧删数字,每次删的数字之和必须大于上次的。问最多删多少次和左边删除数字和与右边删除数字和。
题解:很简单的模拟题,初始情况特判即可,不知道当时为什么没做出来
#include<iostream>
using namespace std;
int can[1005];
int main() {
int t;
cin >> t;
while (t--) {
int n;
int a=0, b=0;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> can[i];
}
int moves = 0;
int l = 1, r = n,sum=0;
while (l<=r) {
++moves;
if (moves % 2 == 1) {
if (moves == 1) {
sum = can[l++];
a+=sum;
}
else {
int tmp = 0;
while (tmp < sum + 1&&l<=r) {
tmp += can[l++];
}
sum = tmp;
a += sum;
if (l > r) {
break;
}
}
}
else {
int tmp = 0;
while (tmp < sum + 1 && l <= r) {
tmp += can[r--];
}
sum = tmp;
b += sum;
if (l > r) {
break;
}
}
}
cout << moves << " " << a << " " << b << endl;
}
}
E.Special Elements
题意:问一组数中有多少个数可以表示成数组的区间和。
题解:前缀和
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int a[8010], sum[8010], num[8010];
int main() {
int t;
cin >> t;
while (t--) {
int cnt = 0;
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
num[a[i]]++;
sum[i] = sum[i - 1] + a[i];
}
for (int i = 1; i <= n; i++) {
for (int j = i + 1; j <= n; j++) {
int tmp = sum[j] - sum[i-1];
if (tmp <= n && num[tmp] > 0) {
cnt += num[tmp];
num[tmp] = 0;
}
}
}
memset(num, 0, sizeof(num));
cout << cnt << endl;
}
}
F. Binary String Reconstruction
题意:01串 \(n_0\)代表00个数,\(n_1\)代表\(10或01\)个数,\(n_2\)代表\(11\)个数。t次询问求合法串。
题解:又是模拟
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int main() {
int t;
cin >> t;
while (t--) {
int a, b, c;
string s1, s2, s3;
cin >> a >> b >> c;
if(a > 0) {
int tmp = a + 1;
while (tmp--) {
s1 += "0";
}
}
if (a == 0&&b>0) {
s2 += "0";
}
if (c > 0) {
b--;
}
if (b > 0) {
s2 += "1";
b--;
int cnt = 0;
while (b--) {
if (cnt % 2 == 0)
s2 += "0";
else
s2 += "1";
cnt++;
}
}
if (c > 0) {
int tmp = c + 1;
while (tmp--) {
s3 += "1";
}
}
string res = s3 + s1 + s2;
cout << res << endl;
}
}
- G. Special Permutation
题意题解懒得写了,深搜
#include<iostream>
#include<stack>
#include<cstring>
using namespace std;
int ac[6] = { -4,-3,-2,2,3,4 };
int flag = 0;
int vis[1005];
stack<int> s;
int n;
void dfs(int x) {
if (flag == 1) return;
if (s.size() == n) {
while (!s.empty()) {
cout << s.top() << " ";
s.pop();
}
cout << endl;
flag = 1;
return;
}
for (int i = 0; i <= 5; ++i) {
int tmp = x + ac[i];
if (tmp <= 0 || tmp > n||vis[tmp]) {
continue;
}
vis[tmp] = 1;
s.push(tmp);
dfs(tmp);
if (flag == 1) return;
vis[tmp] = 0;
s.pop();
}
}
int main() {
int t;
cin >> t;
while(t--) {
cin >> n;
for (int i = n; i >0; --i) {
vis[i] = 1;
s.push(i);
dfs(i);
if (flag) {
break;
}
vis[i] = 0;
s.pop();
}
if (flag == 0) {
cout << -1 << endl;
}
flag = 0;
while (!s.empty()) {
s.pop();
}
memset(vis, 0, sizeof(vis));
}
}
现在回头一看都是rz题,为啥当时不敢写呢
CF #640 (div4)的更多相关文章
- Codeforces #640 div4 F~G (构造二连弹)
题意:求一个只由\(01\)组成的字符串,使得它所有长度为\(2\)的子串满足:每对子串的数字和为\(0,1,2\)的个数为\(a,b,c\). 题解:我们先考虑子串数字和为\(1\)的情况,构造出一 ...
- [cf]Codeforces Round #784(Div 4)
由于一次比赛被虐得太惨,,生发开始写blog的想法,于是便有了这篇随笔(找了个近期的cf比赛练练手(bushi))第一次写blog,多多包涵. 第二场cf比赛,第一场打的Div2,被虐太惨,所以第二场 ...
- ORA-00494: enqueue [CF] held for too long (more than 900 seconds) by 'inst 1, osid 5166'
凌晨收到同事电话,反馈应用程序访问Oracle数据库时报错,当时现场现象确认: 1. 应用程序访问不了数据库,使用SQL Developer测试发现访问不了数据库.报ORA-12570 TNS:pac ...
- cf之路,1,Codeforces Round #345 (Div. 2)
cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅..... ...
- cf Round 613
A.Peter and Snow Blower(计算几何) 给定一个点和一个多边形,求出这个多边形绕这个点旋转一圈后形成的面积.保证这个点不在多边形内. 画个图能明白 这个图形是一个圆环,那么就是这个 ...
- ARC下OC对象和CF对象之间的桥接(bridge)
在开发iOS应用程序时我们有时会用到Core Foundation对象简称CF,例如Core Graphics.Core Text,并且我们可能需要将CF对象和OC对象进行互相转化,我们知道,ARC环 ...
- [Recommendation System] 推荐系统之协同过滤(CF)算法详解和实现
1 集体智慧和协同过滤 1.1 什么是集体智慧(社会计算)? 集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web ...
- CF memsql Start[c]UP 2.0 A
CF memsql Start[c]UP 2.0 A A. Golden System time limit per test 1 second memory limit per test 256 m ...
- CF memsql Start[c]UP 2.0 B
CF memsql Start[c]UP 2.0 B B. Distributed Join time limit per test 1 second memory limit per test 25 ...
随机推荐
- 【C++】常见易犯错误之数值类型取值溢出与截断(3)
0. 前言 本节是“[C++]常见易犯错误之数值类型取值溢出与截断(1)” 的补充,主要探讨浮点型的取值溢出. 1. 相关知识 (1) 浮点型数据取值范围如下: 单精度型 float 3.4 * 1 ...
- [Node.js]001.安装与环境配置
安装与环境配置 第一步:下载安装文件 第二步:安装nodejs 第三步:npm安装 第四步:安装相关环境 第五步:安装CoffeeScript 第六步:CoffeeScript测试实例 第一步:下载安 ...
- gopher 协议初探
Gopher 协议初探 最近两天看到了字节脉搏实验室公众号上有一篇<Gopher协议与redis未授权访问>的文章,其中对gopher协议进行了比较详细的介绍,所以打算跟着后面复现学习一下 ...
- thymeleaf怎么在页面上面格式化时间
th:value="${#dates.format(后端传递的时间,‘yyyy-MM-dd HH:mm:ss’)}"
- Rocket - util - Annotations
https://mp.weixin.qq.com/s/7C8ZmPpwAqFqyKjL9K40Fg 介绍util中定义的注解(Annotations). 1. Annotation ...
- c#tcp多线程服务器实例代码
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- js规则和运算符
通过“+”号或toString()方法将数值转换成字符串. 通过parseInt()将字符串转换成整型. 通过parseFloat()将字符串转换成浮点型. charAt() 获取字符串特定索引处的字 ...
- ActiveMQ 笔记(二)部署和DEMO(队列、主题)
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.部署操作 1. 部署在linux 上的acvtiveMQ 要可以通过前台windows 的页面访问, ...
- (二)用less+gulp+requireJs 搭建项目(gulp)
gulp是自动化构建工具,基于node,需要安装node,如果你不了解node也没关系,先跟着来一遍再去了解node也不迟~ 首先去node官网下载安装包 1.新建项目文件夹 在目录下shift+右键 ...
- Java实现 LeetCode 495 提莫攻击
495. 提莫攻击 在<英雄联盟>的世界中,有一个叫 "提莫" 的英雄,他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态.现在,给出提莫对艾希的攻击时间序列和 ...