CF-1163

传送门

# Penalty A B1 B2 C1 C2 D E F
3 (483) 464 +0 0:06 +1 01:13 +3 01:12 + 01:57 + 01:56

A

第一个人离开时候不增加,第二个人离开时候隔一个走开

当m=0时,答案为0

n为偶数时,如果2m<=n那么答案为m,否则为n-m

n为奇数时,如果2m<=n那么答案为m,否则为n-m,可以发现奇偶是一样的

int n,m;
int main()
{
cin>>n>>m;
if(m == 0){
cout<<1<<endl;return 0;
}
else if(n == 1){
cout<<1<<endl;return 0;
}
else if(2 * m <= n){
cout<<m<<endl;
}
else cout<<n-m<<endl;
return 0;
}

B

做B题心态崩了,这到场上肯定被hack

case并不多,但一定要细心想

  • 全是一种颜色
  • 所有的颜色出现次数为1
  • 有一个颜色出现次数为1,其他为某种同样大小的次数
  • 有一个颜色出现次数为x+1,其他颜色出现次数为x
#include <stdio.h>
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <cctype>
#include <string>
#include <cstring>
#include <algorithm>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <ctime>
#include <vector>
#include <fstream>
#include <list>
#include <iomanip>
#include <numeric>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define ms(s) memset(s, 0, sizeof(s))
const int inf = 0x3f3f3f3f;
const int N = 1e5+10;
int n,u[N],c[N],num[N],cnt;
int main()
{
cin>>n;
int res = 1;
for(int i=1;i<=n;i++){
scanf("%d",&u[i]);
if(c[u[i]] == 0){
c[u[i]] ++;
num[1]++;
cnt++;
}
else{
num[c[u[i]]] --;
c[u[i]]++;
num[c[u[i]]] ++;
}
if(num[c[u[i]]] == i)res = i;//case1
if(num[1] == i)res = i;//case2
if(i > 1 && c[u[i]] == 1 && (i-1) % (cnt-1) == 0 && num[(i-1)/(cnt-1)] == cnt-1)//case3.1
res = i;
if(num[c[u[i]]] * c[u[i]] == i-1){//case3.2
res = i;
}
if(num[c[u[i]]] == 1 && num[c[u[i]]-1] == cnt-1)res = i;
if(num[c[u[i]]] == cnt - 1 && num[c[u[i]]+1] == 1)res = i;
}
cout<<res<<endl;
return 0;
}

C

存下每条直线,平行的直线不计算到答案中

const int N = 1010;
int n;
int x[N],y[N];
map<pair<int,int> ,set<int > > mp;
int main()
{
cin>>n;
ll res = 0;
ll tot = 0;//直线总数
for(int i=1;i<=n;i++)scanf("%d%d",&x[i],&y[i]);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(i == j)continue;
int x1 = x[i], x2 = x[j];
int y1 = y[i], y2 = y[j];
int dx = x[i] - x[j];
int dy = y[i] - y[j];
int g = __gcd(dx,dy);
dx /= g;dy /= g;
if(dx < 0 || (dx == 0 && dy < 0)){
dx = -dx;
dy = -dy;
}
int c = dx * y1 - dy * x1;//求解直线dx*y = dy * x + c
if(!mp[{dx,dy}].count(c)){//如果直线没有记录过
tot++;
mp[{dx,dy}].insert(c);
res += tot - mp[{dx,dy}].size();//tot要减去与它平行的直线
}
}
}
cout<<res<<endl;
return 0;
}

D

留坑

E

留坑

[CF套题] CF-1163的更多相关文章

  1. 暑期训练 CF套题

    CodeForces 327A 题意:有n个数,都是0或1,然后必须执行一次操作,翻转一个区间,里面的数0变1,1变0,求最多1的数量 思路:最开始我写的最大字段和,后面好像写搓了,然后我又改成暴力, ...

  2. [CF套题] CF-1201

    CF-1201 传送门 # = * A 500 B 1000 C 1500 D 2000 E1 2000 E2 1000 1 (2217) 1672 482 00:09 400 01:40 790 0 ...

  3. 做了一道cf水题

    被一道cf水题卡了半天的时间,主要原因时自己不熟悉c++stl库的函数,本来一个可以用库解决的问题,我用c语言模拟了那个函数半天,结果还超时了. 题意大概就是,给定n个数,查询k次,每次查询过后,输出 ...

  4. B. Lost Number【CF交互题 暴力】

    B. Lost Number[CF交互题 暴力] This is an interactive problem. Remember to flush your output while communi ...

  5. 第46套题【STL】【贪心】【递推】【BFS 图】

    已经有四套题没有写博客了.今天改的比较快,就有时间写.今天这套题是用的图片的形式,传上来不好看,就自己描述吧. 第一题:单词分类 题目大意:有n个单词(n<=10000),如果两个单词中每个字母 ...

  6. Educational Codeforces Round 15 套题

    这套题最后一题不会,然后先放一下,最后一题应该是大数据结构题 A:求连续最长严格递增的的串,O(n)简单dp #include <cstdio> #include <cstdlib& ...

  7. 【套题】qbxt国庆刷题班D1

    Day1 事实上D1的题目还是比较简单的= =然而D1T2爆炸了就十分尴尬--错失一波键盘 看题 T1 传送门 Description 现在你手里有一个计算器,上面显示了一个数\(S\),这个计算器十 ...

  8. Moscow Pre-Finals Workshop 2016. Japanese School OI Team Selection. 套题详细解题报告

    写在前面 谨以此篇题解致敬出题人! 真的期盼国内也能多出现一些这样质量的比赛啊.9道题中,没有一道凑数的题目,更没有码农题,任何一题拿出来都是为数不多的好题.可以说是这一年打过的题目质量最棒的五场比赛 ...

  9. CF 某套题 O :Grid (简单BFS)

    题意: 从左上角跳到右下角最少需要多少步,跳的规则为:可以向四个方向的任意一个方向跳当前格子中的步数,若跳不到右下角输出IMPOSSIBLE. 题解: BFS搜索,注意判断边界,标记. 代码: #in ...

随机推荐

  1. maven 报的一堆错

    今天初学maven,刚开始下载的是Apache-maven-3.6.2然后配置运行一个servlet,但是在pom.xml中写jar包坐标时一直报错显示红色,本地仓库和官网上的中央仓库都试过了就是依赖 ...

  2. appium识别工具介绍

  3. Java 基于 mysql-connector-java 编写一个 JDBC 工具类

    用到的 jar 包 jar包地址: mysql-connector-java-5.1.47.jar junit-4.13.jar Maven: <!-- mysql驱动 --> <d ...

  4. 【Linux】1、命令行及命令参数

    命令行及命令参数 文章目录 命令行及命令参数 1.命令行提示符 2.命令和命令参数 简单的命令 date ls 命令参数 短参数(一个字母) 长参数(多个字母) 参数的值 其它参数 3.小结 4.参考 ...

  5. mysql 需要内核级线程的支持,而不只是用户级线程,这样才能够有效的使用多个cpu

    mysql 需要内核级线程的支持,而不只是用户级线程,这样才能够有效的使用多个cpu

  6. 奇技淫巧,还是正统功夫? - Python推导式最全用法

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

  7. LeetCode404.左叶子之和

    题目 法一.广度优先搜索 1 class Solution { 2 public: 3 int sumOfLeftLeaves(TreeNode* root) { 4 if(root == NULL) ...

  8. Hadoop 专栏 - MapReduce 入门

    MapReduce的基本思想 先举一个简单的例子: 打个比方我们有三个人斗地主, 要数数牌够不够, 一种最简单的方法可以找一个人数数是不是有54张(传统单机计算); 还可以三个人各分一摞牌数各自的(M ...

  9. 浅谈JavaScript代码性能优化

    可以通过https://jsbench.me/测试网站完成性能测试. 一.慎用全局变量 1.全局变量定义在全局执行上下文,是所有作用域链的顶端,在局部作用域中没找到的变量都会到全局变量中去查找,所以说 ...

  10. VS2019中scanf返回值被忽略的问题及其解决方法

    目录 [问题](#昨天在使用Visual Studio 2019编写C语言程序时遇到了scanf返回值被忽略问题) 问题原因 方法① 方法② 方法③ 方法④ 昨天在使用Visual Studio 20 ...