题目传送门 /* 题意:每一次任选i,j行字符串进行任意长度前缀交换,然后不断重复这个过程,问在过程中,第一行字符串不同的个数 组合数学题:每一列不同的字母都有可能到第一行,所以每列的可能值相乘取模就行了.这题主要坑在题意理解上... */ #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> #include <map> using namespac…
Codeforces Round #108 (Div. 2) C. Pocket Book 题意 给定\(N(N \le 100)\)个字符串,每个字符串长为\(M(M \le 100)\). 每次选择\(i, j, k\),然后交换串\(i\)和串\(j\)的长度为\(k\)的前缀. 操作可以做任意次,求最多能得到多少不同的字符串,\(modulo (10^9+7)\). 思路 相当于每个位置的可选字符为该列的不同字符的数量. 代码 C. Pocket Book D. Frames 题意 给定…
地址  Problem - C - Codeforces 题目 题意 一个学校有n个人参加比赛,他们分别属于ui队,每个人的能力值为si 当每个队需要1~n个人的时候,这个学校能参加的人的能力值和最大为多少 解析 map<int,vector<int>>存储不会爆 每一队直接处理出队伍人数为1~n时的能力值最大和,这样不会超时,看代码 代码 #include <iostream> #include <algorithm> #include <vecto…
Codeforces Round #804 (Div. 2) C(组合 + mex) 本萌新的第一篇题解qwq 题目链接: 传送门QAQ 题意: 给定一个\(\left [0,n-1 \right ]\)的排列,问有多少个排列,所有的子区间的mex值和原排列的mex值相同,求方案数对1e9 + 7 取模. 分析: 对于这个问题,我们要先知道,一个区间的mex是该区间没有出现过的最小正整数.所以对于\(\left [0,n-1 \right ]\)中的每个数字\(i\),我们要知道的是\(\lef…
Codeforces Round #160 (Div. 1) A - Maxim and Discounts 题意 给你n个折扣,m个物品,每个折扣都可以使用无限次,每次你使用第i个折扣的时候,你必须买q[i]个东西,然后他会送你{0,1,2}个物品,但是送的物品必须比你买的最便宜的物品还便宜,问你最少花多少钱,买完m个物品 题解 显然我选择q[i]最小的去买就好了 代码 #include<bits/stdc++.h> using namespace std; const int maxn =…
今天老师(orz sansirowaltz)让我们做了很久之前的一场Codeforces Round #257 (Div. 1),这里给出A~C的题解,对应DIV2的C~E. A.Jzzhu and Chocolate time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Jzzhu has a big rectangular cho…
CF922 CodeForces Round #461(Div.2) 这场比赛很晚呀 果断滚去睡了 现在来做一下 A CF922 A 翻译: 一开始有一个初始版本的玩具 每次有两种操作: 放一个初始版本进去,额外得到一个初始版本和一个复制版本 放一个复制版本进去,额外得到两个复制版本 一开始有\(1\)个初始版本,是否能恰好得到\(x\)个复制版本和\(y\)个初始版本 Solution 傻逼题 要特判一些特殊情况(没有\(1A\)...) #include<iostream> #includ…
Codeforces Round #469 (Div. 2) 难得的下午场,又掉分了.... Problem A: 怎么暴力怎么写. #include<bits/stdc++.h> #define fi first #define se second #define mk make_pair #define pii pair<int,int> #define read(x) scanf("%d",&x) #define sread(x) scanf(&q…
Codeforces Round #499 (Div. 1) 这场本来想和同学一起打\(\rm virtual\ contest\)的,结果有事耽搁了,之后又陆陆续续写了些,就综合起来发一篇题解. B.Rocket 极其简单的一道交互题,有些位置会说反的,那么就选一个数来询问直接选出所有的这样的位置 显然,选择\(\rm 1\)和\(\rm m\)都可以,选择完之后直接二分就行了 代码: #include<cstdio> #include<iostream> #include<…
                                                    D. Prefixes and Suffixes You have a string s = s1s2...s|s|, where |s| is the length of string s, and si its i-th character. Let's introduce several definitions: A substring s[i..j] (1 ≤ i ≤ j ≤ |s|)…