CF泛做
CF Rd478 Div2 A Aramic script
题意:给定几个字符串,去重后,求种类
思路:直接map乱搞
#include<bits/stdc++.h> using namespace std; string b; bool vis[100005]; map<string, int> M; int main() { int n; scanf("%d", &n); int ans = 0; while(n--) { memset(vis, 0, sizeof vis); string a; cin >> a; b.clear(); int len = a.size(); sort(a.begin(), a.end()); for (int i = 0; i < len; ++i) { if(a[i] == a[i + 1]) vis[i] = true; } for (int i = 0; i < len; ++i) { if(!vis[i]) b += a[i]; } if(!M[b]) { ans++; M[b] = true; } } printf("%d\n", ans); }
CF Rd482 Div2 A Pizza, Pizza, Pizza!!!
题意:一个披萨,要切成n个同样的块,求最小刀数
思路:偶数直接除以2,奇数直接输出
#include<bits/stdc++.h> using namespace std; typedef long long ll; ll N; int main() { scanf("%lld", &N); if(N == 0) printf("0\n"); else if((N + 1) & 1) printf("%lld\n", N + 1); else printf("%lld\n", (N + 1) / 2); return 0; }
CF Rd482 Div2 B Treasure Hunt
题意:三个字符串,给定n轮,每轮必须改变一个字符,问最后重复的单个字符最多的字符串是哪个
思路:每次改变出现次数最多的就好
#include<bits/stdc++.h> using namespace std; const int maxn = 3005; int n; string a, b, c; int num[maxn]; int calc(string a) { memset(num, 0, sizeof num); int now = 0; int len = a.size(); for (int i = 0; i < len; ++i) { num[a[i]]++; } for (int i = 0; i <= 300; ++i) { if(num[i] > now) now = num[i]; } if(now == a.size()) return now - (n == 1); else return min(now + n, len); } int main() { cin >> n; cin >> a; cin >> b; cin >> c; int ans1 = calc(a); int ans2 = calc(b); int ans3 = calc(c); if(ans1 > ans2 && ans1 > ans3) printf("Kuro\n"); else if(ans2 > ans1 && ans2 > ans3) printf("Shiro\n"); else if(ans3 > ans1 && ans3 > ans2) printf("Katie\n"); else printf("Draw"); return 0; }
CF Rd482 Div2 C Kuro and Walking Route
题意:给定一颗树,给定x,y求不依次经过x -- y的路径对数为多少
思路:首先,全部点对数为n * (n - 1),dfs求出每个点的子节点个数,则y的子节点与x上面的节点组成的路径对数需要减去
即为n * (n - 1) - son[y] * (n - son[x])
#include<bits/stdc++.h> using namespace std; const int maxn = 3 * 100005; int head[maxn << 1], cnt = 1; int n, x, y; struct Node{ int v, nxt; } G[maxn << 1]; bool vis[maxn << 1]; int f[maxn << 1], siz[maxn << 1]; typedef long long ll; void insert(int u, int v) { G[cnt] = (Node) {v, head[u]}; head[u] = cnt++; } void dfs(int x, int fa) { f[x] = fa; siz[x] = 1; for (int i = head[x]; i; i = G[i].nxt) { int v = G[i].v; if(v == fa) continue; dfs(v, x); siz[x] += siz[v]; } } int main() { scanf("%d%d%d", &n, &x, &y); for (int i = 1; i <= n - 1; ++i) { int a, b; scanf("%d%d", &a, &b); insert(a, b); insert(b, a); } dfs(x, 0); int z = y; while(f[z] != x) z = f[z]; ll ans = (ll)n * (ll)(n - 1) - (ll)(n - siz[z]) * (ll)siz[y]; printf("%lld\n", ans); return 0; }
CF Rd480 Div2 E The Number Games
题意:给定一棵树,节点i有权值2^i,求删除k个点后,剩下的点需要联通,并且还要使剩下的点的权值和最大
思路:首先有个贪心思想,2^i比sum(2^1 + 2^2 + ......2^(i - 1))还要大,因此想到要保留大的,首先最大的点肯定要保留,
然后以这个点为根,将点号从大到小枚举,依次检查每个点是否满足题意(加入的点不超过n - k)
CF泛做的更多相关文章
- codeforces泛做..
前面说点什么.. 为了完成日常积累,傻逼呵呵的我决定来一发codeforces 挑水题 泛做.. 嗯对,就是泛做.. 主要就是把codeforces Div.1的ABCD都尝试一下吧0.0.. 挖坑0 ...
- 学记笔记 $\times$ 巩固 · 期望泛做$Junior$
最近泛做了期望的相关题目,大概\(Luogu\)上提供的比较简单的题都做了吧\(233\) 好吧其实是好几天之前做的了,不过因为太颓废一直没有整理-- \(Task1\) 期望的定义 在概率论和统计学 ...
- bzoj 泛做
3003 这个题是这样的,对序列差分后,每个取反操作就是给两个端点的值取反,然后背包之后再状压就好了 4128 这题棒棒的QAQBSGS 23333 4176 这个杜教筛呃呃呃大爷链接 3028 我要 ...
- 历年NOIP水题泛做
快noip了就乱做一下历年的noip题目咯.. noip2014 飞扬的小鸟 其实这道题并不是很难,但是就有点难搞 听说男神错了一个小时.. 就是$f_{i,j}$表示在第$i$个位置高度为$j$的时 ...
- HAOI2015 泛做
T1 有一棵点数为N的树,树边有边权.给你一个在0~N之内的正整数K,你要在这棵树中选择K个点,将其染成黑色,并将其他的N-K个点染成白色.将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间的 ...
- LCT裸题泛做
①洞穴勘测 bzoj2049 题意:由若干个操作,每次加入/删除两点间的一条边,询问某两点是否连通.保证任意时刻图都是一个森林.(两点之间至多只有一条路径) 这就是个link+cut+find roo ...
- 基尔霍夫矩阵题目泛做(AD第二轮)
题目1: SPOJ 2832 题目大意: 求一个矩阵行列式模一个数P后的值.p不一定是质数. 算法讨论: 因为有除法而且p不一定是质数,不一定有逆元,所以我们用辗转相除法. #include < ...
- 后缀自动机/回文自动机/AC自动机/序列自动机----各种自动机(自冻鸡) 题目泛做
题目1 BZOJ 3676 APIO2014 回文串 算法讨论: cnt表示回文自动机上每个结点回文串出现的次数.这是回文自动机的定义考查题. #include <cstdlib> #in ...
- FFT与多项式、生成函数题目泛做
题目1 COGS 很强的乘法问题 高精度乘法用FFT加速 #include <cstdlib> #include <iostream> #include <algorit ...
随机推荐
- 标准会话对象——StandardSession
Tomcat使用了一个StandardSession对象用来表示标准的会话结构,用来封装需要存储的状态信息.标准会话对象StandardSession实现了Session.Serializable.H ...
- 【Linux 操作系统】vim编辑器配置及常用命令
最近工作不安分, 没有了刚入行时候的锐气, 不知道什么时候开始懈怠起来, 周末在电脑旁边看新闻, 搞笑图片, 追美剧, 一坐就是一天, 很是空虚. 我需要摆脱这种状态, 正好想学习一下安卓底层, An ...
- unity连接数据库工具
这里用的是一个集成工具UPUPW(Nginx+mysql+php版本) 网址:http://php.upupw.net/ 数据库登录: 本地: http://127.0.0.1/pmd 外网: htt ...
- Linux常见压缩命令 - gzip,zcat,bzip2,bzcat
几个常见的压缩文件扩展名 *.Z compress 程序压缩的文件: *.gz gzip 程序压缩的文件: *.bz2 bzip2 程序压缩的文件: *.tar tar 程序打包的数据,并没有压缩过: ...
- obj-c利用dispatch库并发示例
我们首先写一个纯C的程序,代码的功能为显示指定范围整数中素数的个数: #include <stdio.h> #include <stdlib.h> #include <s ...
- PHP开发环境apache搭建
首先我们先来了解一下PHP的一些相关的基础知识: PHP是啥? php其实就是超文本预处理程序,一种制作网站的脚本程序. 通常PHP的运行环境有以下两种: wamp windows+apache+m ...
- C# Word转为多种格式文件(Word转XPS/SVG/EMF/EPUB/TIFF)
一款有着强大的文档转换功能的工具,无论何时何地都会是现代办公环境极为需要的.在本篇文章中,将继续介绍关于Word文档的转换功能(Word转XPS/SVG/EMF/EPUB/TIFF)希望方法中的代码能 ...
- JS(作用域和闭包)
1.对变量提升的理解 1.变量定义(上下文) 2.函数声明 2.说明 this 几种不同的使用场景 常见用法 1.作为构造函数执行 2.作为对象属性执行 3.作为普通函数执行(this === win ...
- C#逻辑面试题汇总【不断更新中】
(1)产生本月的月历,参考样式: 1 2 3 4 5 6 SU MO TU WE TH FR SA 01 02 03 04 05 06 07 08 09 10 11 12 13 14 ...
- 学习MQ(二)基本概念
学习MQ(二)基本概念 这次简单罗列一下MQ的基本概念,还有我对它们的理解 1.queue manager 队列管理器,这是MQ系统中最上层的一个概念.每一个queue manager都有一个侦听器, ...