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泛做的更多相关文章

  1. codeforces泛做..

    前面说点什么.. 为了完成日常积累,傻逼呵呵的我决定来一发codeforces 挑水题 泛做.. 嗯对,就是泛做.. 主要就是把codeforces Div.1的ABCD都尝试一下吧0.0.. 挖坑0 ...

  2. 学记笔记 $\times$ 巩固 · 期望泛做$Junior$

    最近泛做了期望的相关题目,大概\(Luogu\)上提供的比较简单的题都做了吧\(233\) 好吧其实是好几天之前做的了,不过因为太颓废一直没有整理-- \(Task1\) 期望的定义 在概率论和统计学 ...

  3. bzoj 泛做

    3003 这个题是这样的,对序列差分后,每个取反操作就是给两个端点的值取反,然后背包之后再状压就好了 4128 这题棒棒的QAQBSGS 23333 4176 这个杜教筛呃呃呃大爷链接 3028 我要 ...

  4. 历年NOIP水题泛做

    快noip了就乱做一下历年的noip题目咯.. noip2014 飞扬的小鸟 其实这道题并不是很难,但是就有点难搞 听说男神错了一个小时.. 就是$f_{i,j}$表示在第$i$个位置高度为$j$的时 ...

  5. HAOI2015 泛做

    T1 有一棵点数为N的树,树边有边权.给你一个在0~N之内的正整数K,你要在这棵树中选择K个点,将其染成黑色,并将其他的N-K个点染成白色.将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间的 ...

  6. LCT裸题泛做

    ①洞穴勘测 bzoj2049 题意:由若干个操作,每次加入/删除两点间的一条边,询问某两点是否连通.保证任意时刻图都是一个森林.(两点之间至多只有一条路径) 这就是个link+cut+find roo ...

  7. 基尔霍夫矩阵题目泛做(AD第二轮)

    题目1: SPOJ 2832 题目大意: 求一个矩阵行列式模一个数P后的值.p不一定是质数. 算法讨论: 因为有除法而且p不一定是质数,不一定有逆元,所以我们用辗转相除法. #include < ...

  8. 后缀自动机/回文自动机/AC自动机/序列自动机----各种自动机(自冻鸡) 题目泛做

    题目1 BZOJ 3676 APIO2014 回文串 算法讨论: cnt表示回文自动机上每个结点回文串出现的次数.这是回文自动机的定义考查题. #include <cstdlib> #in ...

  9. FFT与多项式、生成函数题目泛做

    题目1 COGS 很强的乘法问题 高精度乘法用FFT加速 #include <cstdlib> #include <iostream> #include <algorit ...

随机推荐

  1. 《java入门第一季》之面向对象面试题(代码块一网打尽)

    <pre name="code" class="java">/* 代码块:在Java中,使用{}括起来的代码被称为代码块. 根据其位置和声明的不同, ...

  2. 《java入门第一季》之面向对象(成员方法)

    /* 类的组成:成员变量,成员方法 又加入了一个新的成员:构造方法. 以后再提(类的组成): 成员变量 构造方法 成员方法 根据返回值: void类型 非void类型 形式参数: 空参方法 非空参方法 ...

  3. 数据cube的schema与sql的对应的关系

    用schema workbench 设置cube的维度结构 saiku 使用的cube,会将不同维度的查询转化为sql语句. schema中, cube的事实表和dimension表进行自然连接,具体 ...

  4. sql将查询结果建立为新表

    1.sqlserver中,使用: select * into tab_new from tab_old SELECT * into anzhiresult from (select * from fa ...

  5. C++对txt文本进行读写操作

    输入输出,是每个程序员的基本功,尤其是对文本的输入和输出.最近,自己在这方面做了一些总结,不是很全面,希望在以后学习和工作的过程中慢慢补充,积累点点滴滴.P.S. 今天天气不错,雾霾散了,天空晴朗,惠 ...

  6. 采购,接收数据收集SQL汇总(从订单->接收->INVOICE所有数据关联SQL)

    INDEX OF QUERIES Source Document: Purchase Order: 1: po_headers_all (sql) 2: po_lines_all (sql) 3: p ...

  7. win7 64位下自行编译OpenCV2.4.10+CUDA toolkit 5.5的整个过程以及需要注意的问题(opencv+cuda并行计算元素的使用)

           首先说明的是,这个帖子是成功的编译了dll,但是这个dll使用的时候还是很容易出现各种问题的. 发现错误可能是由于系统安装了太多版本的opencv,环境变量的设置混乱,造成dll版本加载 ...

  8. 9.3.3 scrapy 框架

    scrapy是一个非常好用的Web爬虫框架,非常适合抓取Web站点从网页中提取结构化的数据,并且支持自定义的需求.在使用scrapy爬取网页数据时,除了熟悉HTML标签,还需要了解目标网页的数据组织结 ...

  9. 如何安装Pycharm官方统计代码行插件

    最近一直想统计Pycharm的总计代码行数,找到了官方的统计行数插件,发现效果还不错. 官方代码统计插件指导: https://plugins.jetbrains.com/plugin/4509-st ...

  10. 万水千山ABP - 单租户时,成功保存数据后,数据不显示

    问题描述: ABP 禁用了多租户,在编辑一个实体记录后,能成功地保存数据,但数据列表中看不到这条记录.打开数据表查看,发现该实体记录的 TenantId 字段值成了 Null , 而不是预期的默认租户 ...