solution

DAY1

A  UVAlive 3937 painting the sticks

给你一些木棒,按照给定的颜色序列染色,每次最多可以染连续的3块(每块的颜色可以不一样),每块可以由任意多个连续木棒组成,求最少步数。

题目里有说不允许覆盖染色吗?统计不同的颜色块的个数,除以3并向上取整就是答案了。。

B UValive3938 "Ray, Pass me the dishes!"

给一个长度为n的序列,有m个询问,每次询问某个区间内的和最大的子区间

线段树问题,对于线段树上的每个节点维护ans,以及前缀和的最大值,最小值,但需要注意的是对于[l,r]这个区间,要维护[l-1,r-1]区间的前缀和最小值。

C UVAlive3939  Plucking fruits

给你一张无向图,和m个询问,每次询问从a到b存不存在一条路径,路径上每条边的权值都大于c

最小瓶颈生成树,离线解决,先将边权从大到小排序,依次加边,在加边Wi之前,处理所有c大于Wi,且小于等于W(i-1)的询问,如果此时a和b在一个集合里,就是存在,反之则不存在,因为以后添加的边权都会小于c。

F - Remember the Word UVAlive3941

给你一个字符串T, 和一个包含很多字符串的集合, 问集合中的字符串组成T的方案数

DP  f[i] 表示组成T[1...i]的方案数 f[j] = f[j] + f[i]  if s[i+1...j] in set

用trie树 优化递推, 可以减少不必要的状态转移

G - Liking‘s Letter UVAlive3943

求一个字符串中出现次数超过1次的最长子串

后缀数组,直接取高度数组中的最大值即可,但此题对时间要求很高,快速排序版本的过不了,用的基数排序才勉强过的。。。

I  Cake slicing UVAlive3944

切蛋糕,使得每块蛋糕里有且只有一个草莓,每切一刀都有一个代价,求最小代价。

dp 用 f[i,j,k,l] 表示一个该问题的子问题,求解每个子问题,记忆化搜索。但要预处理一下每个方块有多少个草莓。

DAY2

A Ginkgo Numbers UValive6182

定义一种数和相应的乘法,求给定的一个gingo number 是不是素数

题目中给出了一个gingo number 是另一个 gingo number 的因子的充要条件, 利用这个充要条件暴力求解即可,数据规模很小。

C - One-Dimensional Cellular Automaton uvalive6184

矩阵乘法+快速幂的裸题

D - Find the Outlier UVAlive6185

给你一个多项式函数的阶数d,并给出0....d+2对应的函数值,其中有一个是错误的,找出来

枚举其中一个函数值,假设他是错的,将剩余的d+2的函数值构造成d+2个线性方程,含有d+1个未知数,进行高斯消元,判断是否有解,若无解则说明所枚举的即是答案

F - Never Wait for Weights  Uvalive6187

在某一时刻,会告诉你某两个点的之间的差值,或者询问你某两个点之间的差值是多少?回答所有的询问

并查集问题,需要维护附加信息,就是孩子与父亲的差值,官方说法叫做偏移量,路径压缩和合并的时候主意维护偏移量就可以了。

DAY3

A - Beer Problem

题意描述不说了,比较简单的费用流问题,注意图是无向图,一条边可以拆成两条有向边就可以

C - Black and White

逆时针给你一些点的坐标,保证连接起来是个封闭图形,求面积

因为每条边的方向不是平行于就是垂直于x轴,所以就特别简单了,枚举一遍即可

D - Integer Numbers

给你一个整数数列,修改最少的数使其成为单调递增且连续的数列

求a[i]-i, 然后找那个相同的数的个数最多的数,答案就是n-maxsum

E - Islands

题意描述就不说了, 并查集并添加附加信息s[i] 表示以i为根的集合中点的个数

对于每个点,先求出与之相邻的六个点的坐标,然后求出有几个集合,以及每个集合的规模,如果合并后的联通块的规模满足条件

就保留这个点。

I - Radio Waves

求一个最大的覆盖半径,使得相同频率的调频不会相互覆盖

将所有点对之间的距离排序,然后从小到大加入并查集里,在并查集中维护两个点之间的关系,遇到第一条边,加入并查集后发生了冲突,则停止。

DAY4

A - Elevator

大水。。

B - Continuous Login

给定一个数N, 用最少的1...n的前缀和组合

在比赛中队友发现了一个规律,最多就用三个。。所以直接暴力

一个直接枚举,二个的话,枚举一个,二分一个,三个就枚举两个,二分最后一个。。

D - Ranking System

模拟题, 多关键字排序,然后枚举统计,主意细节就可以了。

F - Calculate the Function

给你一个序列,和m个询问,每次询问区间[l,r]  Fi(Li) = ALi   Fi(Li + 1) = A(Li + 1)

for all x >= Li + 2Fi(x) = Fi(x - 1) + Fi(x - 2) × Ax       求F[r]

线段树问题, 每个节点是一个矩阵, 区间合并时做矩阵乘法,然后对每个区间询问,就可以快速知道对应的矩阵

剩下的就比较简单了

I - ?(>_o)!

卖萌的题。。。

DAY5

A - Special Experiment

给你N个数,要求你去掉一些数,使得剩余的数任意两个的差值都不等于另外的M个数,并使和最大

枚举任意两个数,如果他们的差值等于那M个数中的某个,便在他们之间连一条边,最后求这张图的最大点权独立集。

题目暗示了这张图是棵树。。所以就很简单了,用树形dp即可。

F - Sum of Factorials

给你一个数,判断是不是一些斐波那契数字的和

背包问题。

solution

时间: 2024-10-05 20:55:05

solution的相关文章

Solution to Triangle by Codility

question: https://codility.com/programmers/lessons/4 we need two parts to prove our solution. on one hand, there is no false triangular. Given the array has been sorted, if A[i]+A[i+1]>A[i+2], we can prove the existence of the triangle. for array A i

Solution of Codility

Solution of Codility codility.com is another great place to improve your programming skill. Train myself , and record here. Lesson 1: Time Complexity Lesson 2: Counting Elements Lesson 3: Prefix Sums Lesson 4: Sorting MaxProductOfThree: * Distinct: *

【LeetCode】Dungeon Game 解题报告【Solution】

[题目] The demons had captured the princess (P) and imprisoned her in the bottom-right corner of a dungeon. The dungeon consists of M x N rooms laid out in a 2D grid. Our valiant knight (K) was initially positioned in the top-left room and must fight h

vs 2012 调试不了js -- solution 中script document显示不出来

背景: 因为项目的需要,从ie8升级到ie11(并且自动更新安装了几个ie11的补丁),升级后想用vs2012 调试asp.net项目中的js 但是发现solution中script document项目没有在项目中运行时启动,js不能打断点(***的空心圈). 解决过程: 这个同组的同事以前遇到过,并且解决了,所以向他请教,无果,不知道怎么解决的... 搜索了一下不能打断点的提示信息,网上给的说法是高级设置ie中禁掉第三方的调试工具选项前面的勾去掉,无果:这个和我的问题没有关系. 之前有同事更

【CV论文阅读】An elegant solution for subspace learning

Pre: It is MY first time to see quite elegant a solution to seek a subspace for a group of local features. I list two related papers for your reference: "Local Feature Discriminant Projection" and "Binary Set Embedding for Cross-Modal Retri

Personal Leetcode solution(Python)

GitHub: https://github.com/seventheli/LeetCode-Practice singleNumber Core: A XOR B XOR A XOR C XOR B = C class Solution(object): def singleNumber(self, nums): """ :type nums: List[int] :rtype: int """ result = 0 for each in r

Project Euler: Solution for Problem 5

Smallest multiple Problem 5 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder. What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20? Source link: http

the solution of CountNonDivisible by Codility

question:https://codility.com/programmers/lessons/9 To solve this question , I get each element's divsors which appearing in input Array A using Sieve of Eratosthenes method. Time complexity is O(nlogn); Then  we iterate array A to get the ith non-di

Solution of NumberOfDiscIntersections by Codility

question:https://codility.com/programmers/lessons/4 trap: int overflow code: #include <algorithm> int solution(vector<int> &A) { // write your code in C++11 int size = A.size(); if (size <2) return 0; vector<long> begin; vector<

LeetCode Solution --- Next Permutation

Well, in fact the problem of next permutation has been studied long ago. From the Wikipedia page, in the 14th century, a man named Narayana Pandita gives the following classic and yet quite simple algorithm (with minor modifications in notations to f