国庆 Day1】的更多相关文章

正睿OI国庆day1 T1 \[ S_n=1*S_{n-1}+1*F_{n-1}+1*F_{n-2}+1*f_{n-1}+1*f_{n-2} \] \[ F_{n}=0*S_{n-1}+1*F_{n-1}+1*F_{n-2}+1*f_{n-1}+1*f_{n-2} \] \[ F_{n-1}=0*S_{n-1}+1*F_{n-1}+0*F_{n-2}+0*f_{n-1}+0*f_{n-2} \] \[ f_n=0*S_{n-1}+0*F_{n-1}+0*F_{n-2}+1*f_{n-1}+1*f…
(留坑) /* 不知道为什要找的循环节TM这么长 */ #include<cstdio> #include<cstdlib> #include<cstring> using namespace std; #ifdef unix #define LL "%lld" #else #define LL "%I64d" #endif ; ; +; ; char s[maxn]; struct matrix { ][]; matrix()…
期望得分:100+100+20=220 实际得分:100+100+20=220 (好久没有期望==实际了 ,~\(≧▽≦)/~) 对于 a........a 如果 第1个a 后面出现的第1个b~z 是右端点,且在第2个a之前,那么有贡献 如果 第2个a 前面出现的第1个b~z 是左端点,且在第1个a之后,那么有贡献 最后的贡献/2 #include<cstdio> #include<cstring> #define N 100001 using namespace std; cha…
This is a 玄学 exam A.年轮蛋糕 最小的最大,二分首选 断环为链,check(x),x为答案,然后将每个大于x的子区间记录下来 如果有大于3个的话,那么x就可以是答案 那么·,在优化下来,二分里套个下二分,查长度右端点 时间复杂度:O(log(10^13)^3*n) 但是AC了 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using nam…
国庆集训 Day1 T2 生成图 现在要生成一张\(n\)个点的有向图.要求满足: 1.若有 a->b的边,则有 b->a 的边 2.若有 a->b 的边和 b->c 的边,则有 a->c 的边 3.至少有一个点没有自环. 求方案数模上\(m\) \(n≤2000,2≤m≤1,000,000,007\) 样例: input 2 5 output 3 有点难度的DP,首先需要明确的是在一个连通图中每一个点都有自环(样例可体现),所以有点没有自环当且仅当这一个点独立为一个联通块.…
牛客2018国庆集训 DAY1 D Love Live!(01字典树+启发式合并) 题意:给你一颗树,要求找出简单路径上最大权值为1~n每个边权对应的最大异或和 题解: 根据异或的性质我们可以得到 \(sum_{(u, v)}=sum_{(u, 1)} \bigoplus sum_{(v, 1)}\)那么我们可以预处理出所有简单路径上的异或值 对于路径上的最大权值来说,建图后,我们可以将边权进行排序,对于每一个权值为\(w_i(1-n)\)的连通块 现在我们已经得到了当前边权所在的连通块了,所以…
题目大意:给你一个n个数的数列s,要对这些数进行分组,当有任意两个数在一种方案在一起而在另一种方案中不在一起算是两种不同的方案,一个组的"不和谐程度"为组内数的极差,如果只有一个人的话,此组的不和谐程度为0,求有多少种分组方式,使所有组的不和谐程度不超过k? 数据范围 1<=n<=200,0<=k<=1000,1<=si<=500 样例 input1 4 5 1 3 5 7 output1 9 input2 5 6 1 4 5 8 9 output2…
期望得分:100+100+100=300 实际得分:100+100+100=300 T1 一道图论好题(graph) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK有一张无向图G={V,E},这张无向图有n个点m条边组成.并且这是一张带权图,不仅有边权还有点权. LYK给出了一个子图的定义,一张图G’={V’,E’}被称作G的子图,当且仅当 ·G’的点集V’包含于G的点集V. ·对于E中的任意两个点a,b∈V’,当(a,b)∈E时,(a,b)一定也…
https://www.nowcoder.com/acm/contest/201#question 题意:中文不翻译了 解法的个人理解: 对于一个合法的区间$[L,R]$ 1.显然其左括号的匹配位置都小于等于$R$,其右括号的匹配位置都大于等于$L$, 2.左括号和右括号数量相同 3.区间的长度为偶数 后面两点是必要的,但是不够充分 第一点是最关键的,我们可以考虑转化 如果将整个序列左括号所匹配的位置记录下来作为数列$a_i$,同理右括号记为$b_i$原本的询问就等于是询问一个区间最大值和区间最…
题目链接 \(Description\) 给定\(n,m,C\)及大小为\((n+1)(m+1)\)的矩阵\(c[i][j]\).平面上有\((n+1)(m+1)\)个点,从\((0,0)\)编号到\((n,m)\). 在任意时刻,你可以选择在当前点\((x,y)\)获取任意实数个单位的能量,获取每一单位需花费时间\(c[x][y]\): 也可以选择从一个点移动到另一个点,花费的能量是移动路线的欧几里得距离(只可以沿与坐标轴平行或与坐标轴夹角\(45^{\circ}\)的方向走),不花费时间.…
链接:https://www.nowcoder.com/acm/contest/201/L 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576K,其他语言2097152K Special Judge, 64bit IO Format: %lld 题目描述 Eagle Jump公司正在开发一款新的游戏.Hifumi Takimoto作为其中的员工,获得了提前试玩的机会.现在她正在试图通过一个迷宫. 这个迷宫有一些特点.为了方便描述,我们对这个迷宫建立平面直…
B. Attack on Titan 链接 #include<cstdio> #include<algorithm> #include<cstring> #include<iostream> #include<cmath> #include<cctype> #include<set> #include<queue> #include<vector> #include<map> using…
卡特兰数 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ]; int main() { freopen("stack.in","r",stdin); freopen("stack.out","w",stdout); int n; scanf("%d",&n);…
A    Tobaku Mokushiroku Kaiji 水. #include <bits/stdc++.h> using namespace std; ], b[]; void Run() { while (scanf("%d", a) != EOF) { ; i < ; ++i) scanf("%d", a + i); ; i < ; ++i) scanf("%d", b + i); printf(], b[])…
题目描述 数轴上有 $n$ 个点,第 $i$ 个点的坐标为 $x_i$ 权值为 $w_i$ .两个点 $i,j$ 之间存在一条边当且仅当 $|x_i−x_j|\le w_i+w_j$ . 你需要求出这张图的最大团的点数.(团就是两两之间有边的顶点集合) $n\le 2\times 10^5$ . 题解 贪心傻逼题 把绝对值展开后得到 $x_i+w_i\le x_j-w_j\ ,\ x_i<x_j$ ,等价于:每个点相当于 $[x_i-w_i,x_i+w_i)$ 这段区间,两个点之间有边当且仅当对…
期望得分:60+ +0=60+ 实际得分:30+56+0=86 时间规划极端不合理,T2忘了叉积计算,用解析几何算,还有的情况很难处理,浪费太多时间,最后gg 导致T3只剩50分钟,20分钟写完代码,没调出来 设sum[i][j] 表示字母j出现次数的前缀和 那么题目要求我们 最大化sum[r][x]-sum[l-1][x]-(sum[r][y]-sum[l-1][y]) 如果枚举r,再枚举y,时间复杂度为O(n*26),是可以承受的 但此时还有l-1未知,能否O(1)找到l-1呢? 我们发现式…
期望得分:100+100+100=300 实际得分:100+100+70=270 T1位运算1(bit) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK拥有一个十进制的数N.它赋予了N一个新的意义:将N每一位都拆开来后再加起来就是N所拥有的价值.例如数字123拥有6的价值,数字999拥有27的价值. 假设数字N的价值是K,LYK想找到一个价值是K-1的数字,当然这个答案实在太多了,LYK想使得这个价值为K-1的数字尽可能大. 输入格式(bit.in…
题目描述 阿尔比恩王国(the Albion Kingdom)潜伏着一群代号“白鸽队(Team White Pigeon)”的间谍.在没有任务的时候,她们会进行各种各样的训练,比如快速判断一个文档有没有语法错误,这有助于她们鉴别写文档的人受教育程度. 这次用于训练的是一个含有n个括号的文档.括号一共有m种,每种括号都有左括号和右括号两种形式.我们定义用如下的方式定义一个合法的文档: 1.一个空的字符串是一个合法的文档. 2.如果A,B都是合法的文档,那么AB也是合法的文档. 3.如果S是合法的文…
https://www.nowcoder.com/acm/contest/201/L 题意:给你两条平行的直线和n个圆,在直线上面行走和在圆上和在圆内行走不需要耗费体力,除了这些区域外平面上经过任意两点需要走的距离都是欧几里得距离,求从直线1走到直线2所需要消耗的最小体力是多少. 题解:一开始以为是计算几何,但是冷静分析了一波后发现这个题要用最短路写,建边过程有点复杂: 1.从直线1到直线2要建边. 2.有n<1000个点,每个圆之间都应该有边,所以n方将所有圆连接起来,记得在圆内走和在圆上走不…
网址:https://www.nowcoder.com/acm/contest/201#question A.签到 手速石头剪刀布 #include <cstdio> #include <algorithm> using namespace std; int main() { int a, b, c, d, e, f; scanf("%d%d%d%d%d%d", &a, &b, &c, &d, &e, &f); p…
link: https://loj.ac/problem/6307 最大团转补图的独立集,这样的话只有r[x]<l[y]或者r[y]<l[x],x和y才能连边,所以排序之后乱搞就行了. 需要注意的一点是,如果一个点的l==r的话,需要特殊建点. #include<bits/stdc++.h> #define ll long long const int maxn=200005; using namespace std; struct node{ int pos,con,num; b…
T2火柴棒 (stick) Time Limit:1000ms   Memory Limit:128MB 题目描述 众所周知的是,火柴棒可以拼成各种各样的数字.具体可以看下图: 通过2根火柴棒可以拼出数字“1”,通过5根火柴棒可以拼出数字“2”,以此类推. 现在LYK拥有k根火柴棒,它想将这k根火柴棒恰好用完,并且想知道能拼出的最小和最大的数分别是多少. 输入格式(stick.in) 一个数k. 输出格式(stick.out) 两个数,表示最小的数和最大的数.注意这两个数字不能有前导0. 输入样…
链接:https://ac.nowcoder.com/acm/contest/201/L来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576K,其他语言2097152K Special Judge, 64bit IO Format: %lld 题目描 Eagle Jump公司正在开发一款新的游戏.Hifumi Takimoto作为其中的员工,获得了提前试玩的机会.现在她正在试图通过一个迷宫. 这个迷宫有一些特点.为了方便描述,我们对这个迷宫建立平面直角坐标…
T1 统计数字 题目 [题目描述] 设 S(N ) 表示 N 的各位数字之和,如 S(484) = 4+8+4 = 16, S(22) = 2+2 = 4. 如果一个正整数满足 S(x*x) = S(x) *S(x),我们称之为 Rabbit N umber.比方说,22 就是一个 Rabbit N umber,因为 S(484) = S(22) *S(22). 现在,给出一个区间 [L, R],求在该区间内的 Rabbit N umber 的个数. [输入格式] 输入仅一行,为空格隔开的两个数…
题目链接: 解法: 先建n颗平衡树,合并的时候将a中最右的结点翻转到根节点,b中最左的结点翻转到根节点,对合并后的根节点进行标记. #include <bits/stdc++.h> using namespace std; #define ls(p) p << 1 #define rs(p) p << 1 | 1 ; int n, m, cnt; int rt[M]; struct node{ ], val, cnt, sz, lazy; }spl[M]; bool i…
C 存每个值存在的位置,枚举末尾的值,再枚举前面的值,哈希二分出最长相同的,即剩下的为不同的 D \(f_{i,j,k}\)为前i位,最后一个3因子在j,次因子在k G bitset处理有多少位置符合的,有多少不符合的,然后按子集套即可…
T1 divide 题意: 有\(n\)个数 \(a_1, a_2,..., a_n\) 有m个数\(b_1, b_2,..., b_n\) 令\(a = a_1\times a_2\,\times ... \times \,a_n\) 令\(b = b_1\times\,b_2 \times\,...\,\times\,b_n\) 判断\(a\)是否是\(b\)的倍数 输入:\(n,m\) 输出:\(Yes / No\) 做法:就是个一简单的质因数分解 #include<cstdio> #i…
链接:https://ac.nowcoder.com/acm/contest/1099#question A:可知符合条件的图中间肯定存在一个由1构成的矩形,找到由1构成矩形的边界,判断出现的1的数量等不等于矩形的面积即可. #include<bits/stdc++.h> using namespace std; ][]; int main() { int n, m; while(cin >> n >> m) { , x2 = ; , y2 = ; ; ;i <…
题目链接:https://ac.nowcoder.com/acm/contest/1099/I 点分治,计算路径数的时候,先将每个点到根的距离模2019,计算的时候就可以O(n)求出数目,对于模2019之后为0的进行特殊处理. #include<iostream> #include<algorithm> #include<vector> using namespace std; #define maxn 100005 #define inf 0x3f3f3f3f int…
国王游戏[NOIP2012提高组DAY1] Time Limit:1000MS Memory Limit:128000K Description 国王游戏(game.cpp/c/pas) [问题描述] 恰逢H国国庆,国王邀请n位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这n位大臣排成一排,国王站在队伍的最前面.排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人左手上的数的乘积…