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 ...
随机推荐
- 《java入门第一季》之面向对象(private关键字与封装概念的初探)
/* 定义一个学生类: 成员变量:name,age 成员方法:show()方法 在使用这个案例的过程中,发现了一个问题: 通过对象去给成员变量赋值,可以赋值一些非法的数据.例如:name你赋值了一个3 ...
- Java进阶(十四)实现每天定时对数据库的操作
Java实现每天定时对数据库操作 现在有一个很棘手的问题:客户要求实现一个功能,就是每日凌晨自动计算慢性病订单是否有需要在今日提醒的,如果有则生成一条提醒记录到lm_notice之中. 如何在Web工 ...
- 【Visual C++】游戏编程学习笔记之九:回合制游戏demo(剑侠客VS巡游天神)
本系列文章由@二货梦想家张程 所写,转载请注明出处. 作者:ZeeCoder 微博链接:http://weibo.com/zc463717263 我的邮箱:michealfloyd@126.com ...
- Linux进程管理 - PRI,nice,free,uname,netstat
优先运行序 (priority, PRI) 这个 PRI 值越低代表越优先的意思.不过这个 PRI 值是由核心动态调整的, 使用者无法直接调整 PRI 值的. 由於 PRI 是核心动态调整的,我们使用 ...
- 开源项目AndroidReview学习小结(1)
多看多学涨姿势 最近学习了一个开源项目,感觉收获颇多,这里做下简要的记录,首先感谢作者的开源.先看个大概图 感觉框架非常简单,界面也很一般,不过底层的处理的一些处理还是有很多可圈可点之处,代码的处理一 ...
- day07_Tomcat服务器与http学习笔记
============================================================ 一.Tomcat服务器(很熟悉) 1.Web开发概述 WEB,在英语中web即 ...
- React Native入门 开发第一个React Native应用
1. 首先创建一个目录(比如ReactNativeDir),用于存放各个ReactNative工程的代码 2.使用React Native命令工具来创建(初始化)一个ReactNative项目(tes ...
- javascript简单介绍
ECMAScript 1.语法 2.变量:只能使用var定义,如果在函数的内容使用var定义,那么它是一个局部变量,如果没有使用var它是一个全局的.弱类型! 3.数据类型:原始数据类型(undefi ...
- 不是标准execl转换处理方法
不是标准execl的主要原因就是原本的html.xml.txt尾椎的文件,更改成了xls尾椎的文件 面对这种问题,最开始我用了jawin.jar,但是始终会报错,NoClassDefFoundErro ...
- Java---SSH(MVC)面试题
1. 谈谈你mvc的理解 MVC是Model-View-Controler的简称.即模型-视图-控制器.MVC是一种设计模式,它强制性的把应用程序的输入.处理和输出分开. MVC中的模型 ...