- 博客(9)
- 资源 (2)
- 收藏
- 关注
原创 482. 合唱队形(最长上升子序列)AcWing寒假每日一题 入门组(4)
N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足T1<…Ti+1>…>TK(1≤i≤K)。你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。输入格式输入的第一行是一个整数N,表示同学的总数。第二行有n个整数,用空格分隔,第i个整数Ti是第i位同学的身高(厘米)。输出格
2021-01-30 12:55:54 187
原创 1414. 牛异或(Trie字典树+前缀和思想)AcWing寒假每日一题 提高组(3)
题目链接题目:农夫约翰在给他的奶牛们喂食时遇到了一个问题。他共有 N 头奶牛,编号 1∼N。每次喂食前,这 N 头奶牛会按照 1∼N 的顺序站成一排。此外,每头奶牛都被分配了一个可能不唯一的整数。那么所有被分配的整数就形成了一个长度为 N 的整数序列。请你在该整数序列中找出一个连续的子序列,使得子序列中元素的异或和能够最大。如果存在多个这样的序列,那么选择序列末端整数对应的奶牛编号更小的那个序列。如果仍然存在多个可选的序列,那么选择长度最短的那个序列。输入格式第一行包含整数 N。第
2021-01-30 12:08:05 203
原创 C++ Trie(字典树)模板
int son[N][26], cnt[N], idx;// 0号点既是根节点,又是空节点// son[][]存储树中每个节点的子节点// cnt[]存储以每个节点结尾的单词数量// 插入一个字符串void insert(char *str){ int p = 0; for (int i = 0; str[i]; i ++ ) { int u = str[i] - 'a'; if (!son[p][u]) son[p][u] = ++ i
2021-01-30 11:55:26 681
原创 C++ 最长上升子序列模板
//从左到右 for(int i=0;i<n;i++) { f1[i]=1; for(int j=0;j<i;j++) { if(a[i]>a[j]) f1[i]=max(f1[i],f1[j]+1); } res=max(res,f1[i]); } //从右到左 for(int i=n-1;i>=0;i--) {
2021-01-29 16:26:00 402
原创 479. 加分二叉树(区间DP)AcWing寒假每日一题 提高组(2)
题目链接题目:设一个n个节点的二叉树tree的中序遍历为(1,2,3,…,n),其中数字1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整数),记第i个节点的分数为di,tree及它的每个子树都有一个加分,任一棵子树subtree(也包含tree本身)的加分计算方法如下:subtree的左子树的加分 × subtree的右子树的加分 + subtree的根的分数若某个子树为空,规定其加分为1。叶子的加分就是叶节点本身的分数,不考虑它的空子树。试求一棵符合中序遍历为(1,2,3,…,n)
2021-01-29 12:00:03 193
原创 1381. 阶乘 (因式分解)AcWing寒假每日一题 入门组(3)
题目链接题目:N 的阶乘(记作 N!)是指从 1 到 N(包括 1 和 N)的所有整数的乘积。阶乘运算的结果往往都非常的大。现在,给定数字 N,请你求出 N! 的最右边的非零数字是多少。例如 5!=1×2×3×4×5=120,所以 5! 的最右边的非零数字是 2。输入格式共一行,包含一个整数 N。输出格式输出一个整数,表示 N! 的最右边的非零数字。数据范围1≤N≤1000输入样例:7输出样例:4思路:我们可以这么理解,因为0只可能由2的倍数和5的倍数相乘得
2021-01-28 12:56:58 129 1
原创 1227. 分巧克力 (二分)AcWing寒假每日一题 入门组(1)
题目链接题目:儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有 N 块巧克力,其中第 i 块是 Hi×Wi 的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出 K 块巧克力分给小朋友们。切出的巧克力需要满足:1.形状是正方形,边长是整数2.大小相同例如一块 6×5 的巧克力可以切出 6 块 2×2 的巧克力或者 2 块 3×3 的巧克力。当然小朋友们都希望得到的巧克力尽可能大,你能帮小明计算出最大的边长是多少么?输入格式第一行包
2021-01-28 12:52:53 104
原创 680. 剪绳子 (浮点型二分)AcWing寒假每日一题 入门组(2)
题目链接题目:有N根绳子,第i根绳子长度为Li,现在需要M根等长的绳子,你可以对N根绳子进行任意裁剪(不能拼接),请你帮忙计算出这M根绳子最长的长度是多少。输入格式第一行包含2个正整数N、M,表示原始绳子的数量和需求绳子的数量。第二行包含N个整数,其中第 i 个整数Li表示第 i 根绳子的长度。输出格式输出一个数字,表示裁剪后最长的长度,保留两位小数。数据范围1≤N,M≤100000,0<Li<109输入样例:3 43 5 4输出样例:2.50样例解释第一根和第
2021-01-28 12:44:28 175
原创 1402. 星空之夜 (DFS+连通块相似判断)AcWing寒假每日一题 提高组(1)
题目链接题目:夜空深处,闪亮的星星以星群的形式出现在人们眼中,形态万千。一个星群是指一组非空的在水平,垂直或对角线方向相邻的星星的集合。一个星群不能是一个更大星群的一部分。星群可能是相似的。如果两个星群的形状、包含星星的数目相同,那么无论它们的朝向如何,都认为它们是相似的。通常星群可能有 8 种朝向,如下图所示:现在,我们用一个二维 01 矩阵来表示夜空,如果一个位置上的数字是 1,那么说明这个位置上有一个星星,否则这个位置上的数字应该是 0。给定一个夜空二维矩阵,请你将其中的所有星群用
2021-01-28 12:10:16 254
C++模拟手机通信录.zip
2020-06-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人