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,可以发现奇偶是一样的

  1. int n,m;
  2. int main()
  3. {
  4. cin>>n>>m;
  5. if(m == 0){
  6. cout<<1<<endl;return 0;
  7. }
  8. else if(n == 1){
  9. cout<<1<<endl;return 0;
  10. }
  11. else if(2 * m <= n){
  12. cout<<m<<endl;
  13. }
  14. else cout<<n-m<<endl;
  15. return 0;
  16. }

B

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

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

  • 全是一种颜色
  • 所有的颜色出现次数为1
  • 有一个颜色出现次数为1,其他为某种同样大小的次数
  • 有一个颜色出现次数为x+1,其他颜色出现次数为x
  1. #include <stdio.h>
  2. #include <iostream>
  3. #include <cstdlib>
  4. #include <cmath>
  5. #include <cctype>
  6. #include <string>
  7. #include <cstring>
  8. #include <algorithm>
  9. #include <stack>
  10. #include <queue>
  11. #include <set>
  12. #include <map>
  13. #include <ctime>
  14. #include <vector>
  15. #include <fstream>
  16. #include <list>
  17. #include <iomanip>
  18. #include <numeric>
  19. using namespace std;
  20. typedef long long ll;
  21. typedef unsigned long long ull;
  22. #define ms(s) memset(s, 0, sizeof(s))
  23. const int inf = 0x3f3f3f3f;
  24. const int N = 1e5+10;
  25. int n,u[N],c[N],num[N],cnt;
  26. int main()
  27. {
  28. cin>>n;
  29. int res = 1;
  30. for(int i=1;i<=n;i++){
  31. scanf("%d",&u[i]);
  32. if(c[u[i]] == 0){
  33. c[u[i]] ++;
  34. num[1]++;
  35. cnt++;
  36. }
  37. else{
  38. num[c[u[i]]] --;
  39. c[u[i]]++;
  40. num[c[u[i]]] ++;
  41. }
  42. if(num[c[u[i]]] == i)res = i;//case1
  43. if(num[1] == i)res = i;//case2
  44. if(i > 1 && c[u[i]] == 1 && (i-1) % (cnt-1) == 0 && num[(i-1)/(cnt-1)] == cnt-1)//case3.1
  45. res = i;
  46. if(num[c[u[i]]] * c[u[i]] == i-1){//case3.2
  47. res = i;
  48. }
  49. if(num[c[u[i]]] == 1 && num[c[u[i]]-1] == cnt-1)res = i;
  50. if(num[c[u[i]]] == cnt - 1 && num[c[u[i]]+1] == 1)res = i;
  51. }
  52. cout<<res<<endl;
  53. return 0;
  54. }

C

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

  1. const int N = 1010;
  2. int n;
  3. int x[N],y[N];
  4. map<pair<int,int> ,set<int > > mp;
  5. int main()
  6. {
  7. cin>>n;
  8. ll res = 0;
  9. ll tot = 0;//直线总数
  10. for(int i=1;i<=n;i++)scanf("%d%d",&x[i],&y[i]);
  11. for(int i=1;i<=n;i++){
  12. for(int j=1;j<=n;j++){
  13. if(i == j)continue;
  14. int x1 = x[i], x2 = x[j];
  15. int y1 = y[i], y2 = y[j];
  16. int dx = x[i] - x[j];
  17. int dy = y[i] - y[j];
  18. int g = __gcd(dx,dy);
  19. dx /= g;dy /= g;
  20. if(dx < 0 || (dx == 0 && dy < 0)){
  21. dx = -dx;
  22. dy = -dy;
  23. }
  24. int c = dx * y1 - dy * x1;//求解直线dx*y = dy * x + c
  25. if(!mp[{dx,dy}].count(c)){//如果直线没有记录过
  26. tot++;
  27. mp[{dx,dy}].insert(c);
  28. res += tot - mp[{dx,dy}].size();//tot要减去与它平行的直线
  29. }
  30. }
  31. }
  32. cout<<res<<endl;
  33. return 0;
  34. }

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. mysql 应用 持续更新

    1.安装方法 贴出,my.ini # MySQL Server Instance Configuration File # -------------------------------------- ...

  2. 关于.NET中的控制反转(一)- 概念与定义

    一.控制反转 1:类与类的依赖 依赖是面向对象中用来描述类与类之间一种关系的概念.两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务,这样的两个对象之间主要体现为依赖关系 ...

  3. 【Java基础】多线程

    多线程 基本概念 程序(program)是为完成特定任务.用某种语言编写的一组指令的集合.即指一段静态的代码,静态对象. 进程(process)是程序的一次执行过程,或是正在运行的一个程序.是一个动态 ...

  4. PMP知识领域

    · 十大知识领域 整合-项目整合管理 识别.定义.组合.统一和协调个项目管理过程组的各种过程和活动而展开的活动与过程. 整合:统一.合并.沟通和简历联系:贯穿项目始终 七个过程组 一.制定项目章程(启 ...

  5. 🎉 Element UI for Vue 3.0 来了!

    第一个使用 TypeScript + Vue 3.0 Composition API 重构的组件库 Element Plus 发布了 ~ 2016 年 3 月 13 日 Element 悄然诞生,经历 ...

  6. Azure Key Valut 简介

    Azure Key Vault(密钥库)是用于安全地存储和访问Secret的云服务,Secret是需要严格控制访问权限的内容,例如API密钥,密码,证书或加密密钥.Key Vault Service支 ...

  7. 【高级排序算法】2、归并排序法的实现-Merge Sort

    简单记录 - bobo老师的玩转算法系列–玩转算法 -高级排序算法 Merge Sort 归并排序 Java实现归并排序 SortTestHelper 排序测试辅助类 package algo; im ...

  8. [SSL]在线检查服务器HTTPS安全

    https://myssl.com/ SSL/TLS安全评估报告 https://www.ssllabs.com/ssltest/ SSL Server Test HTTPS开启工具(IIS) htt ...

  9. 【开源】我和 JAP(JA Plus) 的故事

    JA Plus 故事 程序员的故事如此简单之绕不过去的开源情结 我们准备做一件伟大的事,也可以说是一件真真正正普惠的事. 絮 是的,你没有看错,就是"絮"而非"序&quo ...

  10. Django - WebSocket:dwebsocket

    Django - WebSocket:dwebsocket 什么是WebSocket WebSocket是一种在单个TCP连接上进行全双工通信的协议 WebSocket使得客户端和服务器之间的数据交换 ...