poj1737~poj1744——ltc男人八题

准备开刷这充满神秘感的八道题,虽然我不是男的。。。

完成度:3/8

2016.7.~?   poj1742 Coins

题意:给你n种面值的硬币和每种硬币的数量。求1~m中有多少个可以用这些硬币组成。

算法:dp

解析:dp[i][j]表示用前i中硬币组成j时第i种硬币剩余的枚数(若不能组成j则为-1)

考虑以下四种情况:

(1)若dp[i-1][j]>=0,则无需第i种硬币,为c[i]

(2)若val[i]>j,面值太大,则为-1

(3)若dp[i][j-val[i]]<=0,无法组成j,则为-1

(4)若(1)(2)(3)均不满足,为dp[i][j-val[i]]-1

另外,此题n*m较大,因为dp[i][]只与dp[i-1][]有关,所以用滚动数组即可

2016.8.30   poj1743 Musical Theme

题意:给你一串数,求其中最大的不连续的子数串长度,若ans<5,则输出-1。两个数串相似当且仅当,其中一个数串加上相同的数后等于另一个数串。

算法:后缀数组

解析://十几天前刷的后缀数组入门题,现在有些模糊了==

首先,先把数串转化成相邻两数差的形式,然后将height[]分类,用h[i]>=h[i-1]-1的公式。

时间复杂度为O(n*logn)

2016.9.11   poj1740 A New Stone Game

题意:有n堆石子,每次每人从其中一堆中取走若干石子,在将这些石子分配到其他堆中(不用全分完),不能取则输。A先B后,问A的输赢情况。

算法:博弈论

解析:根据对称性,若石子两两配对,则后取者胜;否则,先取者胜。

证明:若堆数为奇数,将石子从小到大排序,并(1,2),(3,4)...配对。取完最多石子的那堆,并将石子分配在1,3,5...堆中。若堆数为偶数,取最多石子的那一堆使得石子数等于最少的那一堆,并作相同操作。

时间: 2024-08-05 22:03:37

poj1737~poj1744——ltc男人八题的相关文章

POJ 1741 Tree(树分治|ltc男人八题)

 题意:求树上距离小于等于K的点对有多少个. 思路:这道题很容易想到树分治,对于当前的根节点来说,任意两个结点之间要么过根结点,要么在一棵子树中. 那么我们dfs一次求出所有点到根结点的距离,然后用o(n)的时间判定有多少节点对符合,(判断方法稍后说) 但是这样有很多在一颗子树中的节点对我们会求重复,我们需要减去在一棵子树中结点对小于等于k的数量,也就是说,我们这一步求的是在不同子树中距离小于等于k的节点对的个数. 接下来说判定方法,将每个点到根结点的距离排序,用两个指针指向队首和队尾,当结

LCT男人八题系列

楼教的男人八题名气甚大,今天做了一道感觉还是涨了不少姿势的,然而估计之后的每道题都要看题解吧,姑且先记录一下.以后再做再更 1737 Connected Graph 1100 [email protected] 1738 An old Stone Game 407 [email protected] 1739 Tony's Tour 671 [email protected] 1740 A New Stone Game 2240 [email protected] 1741 Tree 1728

poj 1741 楼教主男人八题之一:树分治

http://poj.org/problem?id=1741 Description Give a tree with n vertices,each edge has a length(positive integer less than 1001). Define dist(u,v)=The min distance between node u and v. Give an integer k,for every pair (u,v) of vertices is called valid

poj 1743 Musical Theme(男人八题&amp;后缀数组第一题)

Musical Theme Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 17298   Accepted: 5939 Description A musical melody is represented as a sequence of N (1<=N<=20000)notes that are integers in the range 1..88, each representing a key on the

POJ1742 Coins(男人八题之一)

前言 大名鼎鼎的男人八题,终于见识了... 题面 http://poj.org/problem?id=1742 分析 § 1 多重背包 这很显然是一个完全背包问题,考虑转移方程: DP[i][j]表示用前i种硬币能否取到金额j,ture表示可以,false表示不行. 则有 DP[i][j] = DP[i - 1][j] | DP[i - 1][j - k * Ai], 0 ≤ k ≤ Ci, j - k * Ai ≥ 0 这是一个O(N3)的算法,考虑到数据范围1 ≤ N ≤ 100, M ≤

男人八题2019

打的第三年男人八题了= = 感觉自己可能能创造一个EZ历史上打过最多男人八题的人(嘤嘤嘤我明明是妹子啊 考场上是5题 目前补了7题 目录 Biology Chemistry Chinese English Geography History Math Physics Biology 模拟= = //Love and Freedom. #include<cstdio> #include<algorithm> #include<cstring> #include<cm

POJ 1741 男人八题——树分治

Tree Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 23829   Accepted: 7900 Description Give a tree with n vertices,each edge has a length(positive integer less than 1001). Define dist(u,v)=The min distance between node u and v. Give an

hdu 2844 Coins 多重背包模板题 ,二进制优化。据说是楼教主的男人八题之一

Coins Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 8052    Accepted Submission(s): 3291 Problem Description Whuacmers use coins.They have coins of value A1,A2,A3...An Silverland dollar. One

新男人八题---AStringGame

终于完成进度男人1/8,为了这题学了sam= = 题意先有一个串,n个子串,两个人轮流每次在子串上加字符,要求加完后还是原串的子串,最后不能加的就是输者,求赢的人 解法:sam之后在构造的状态图上跑sg函数,这题的sg状态不会超过26,所以直接枚举所有状态即可,然后记忆化搜索求sg函数,最后异或起来就是答案了 //#pragma comment(linker, "/stack:200000000") //#pragma GCC optimize("Ofast,no-stack