- 博客(23)
- 收藏
- 关注
原创 循环单词
题目传送门分析: 向右循环的单词,我们可以将两个原单词拼接,利用 STL 中的find( ) 函数,需要注意避免重复计算和单词长度的判断(匹配需要满足两倍关系)。Tips: 只出现一次的单词也算作一个循环单词。代码如下:#include <algorithm>#include <bitset>#include <cmath>#include <cstdio>#include <cstdl
2017-08-19 14:23:46 171
原创 好多鱼
链接:https://www.nowcoder.com/questionTerminal/e3dd485dd23a42899228305658457927来源:牛客网#include<iostream>#include<cmath>using namespace std;int main(){ int minSize, maxSize, n, fishsize, count = 0;
2017-08-19 13:43:17 251
原创 Codeforces Round#429 B-Godesend
题意&分析: 题目传送门 First选手可以取走数组中一段和为奇数的子串,Second取走的是和为偶数的子串,取走后剩余部分合并成新的数组。谁不能再取则输。若全部和为奇数,First直接获胜。 若为偶数,只需要判断数组中是否有奇数,若有,则First取走后剩余部分和任为奇数,取走一段偶数部分的和,剩余依然是奇数。代码如下:#include <bits/stdc++.h>#define INF
2017-08-19 12:02:46 196
原创 组合数公式&Lucas大组合数
普通组合数ll C(ll m,ll n){ if(m==0||n==m) return 1; ll sb=min(m,n-m); ll f=1,f1; for(ll i=1;i<=sb;i++) { f1=f*(n-i+1)/(i); f=f1; } return f1;}Lucas大数组合数const ll
2017-08-13 15:15:38 386
原创 大数加法
#include <stdio.h>#include <string.h>#define MAXLEN 1000char a1[MAXLEN];char a2[MAXLEN];static int v1[MAXLEN];static int v2[MAXLEN];static int v3[MAXLEN];int i,j,n,L,z;void main(void) { sc
2017-08-13 14:56:05 196
原创 日期计算
计算最近的日期星期相同的的年份。#include <algorithm>#include <bitset>#include <cmath>#include <cstdio>#include <cstdlib>#include <cstring>#include <iostream>#include <map>#include <queue>#include <set>#inclu
2017-08-13 09:33:10 262
原创 #HDU 6098 Inversion
Inversion题意&分析: 给出数组A,求; 即 j%i !=0 的时候满足,要求最大的那么递减排序,并用结构体存下序号以及数组 A;然后暴力即可。代码如下:#include <bits/stdc++.h>#define INF 0x3f3f3f3fusing namespace std;typedef long long ll;const ll mod = 1e9 + 7;stru
2017-08-12 09:47:45 210
原创 #POJ 1651 Multiplication Puzzle
Multiplication Puzzle 题意&分析: 给定一个数列,出去第一个和最后一个数,中间的数都可以取,再左边和右边各取一个数,三者相乘,即m[ i ]* m[ k ] * m [ j ] (1 <= i < k < j <= n ) ; 求最小的和。这道题类似矩阵连乘的问题(传送门)。dp[ i ][ j ] 的含义是在区间[ i - 1, j ] 的区间内最小的乘法和。这里和一般的区
2017-08-08 16:18:49 190
原创 #LightOJ 1422 Halloween奇怪的区间dp
Halloween题意&分析: 万圣节当天参加一些Party,每一场Party都要穿相应的衣服。一可以套着穿多件,如果某两场Party衣服一样,只要不曾脱下,同一件就可以接着用,否则就要另外再穿一件(脱下的衣服即使再次被用到,还是要换一件)。现在要求最少穿的衣服。 那么我们用区间dp的思想,对于第 i 场和第 j 场,若穿的是同一件衣服,那么我们就可以穿在里面先不脱掉。即if(clo[i] ==
2017-08-07 17:05:38 233 1
原创 #POJ 2955 Brackets区间dp
Brackets题意&分析:求匹配括号的最大数目,一对括号匹配算两个括号(<–废话)。 典型的区间dp求法。代码如下:#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define TEST cout<<"stop here"<<endl using namespace std;typedef long long ll;const ll mod
2017-08-07 15:20:42 175
原创 暑训阶段小结
菜鸟不会飞 刷了好久的DP,,有点感觉了,但是还是不够啊,每天在俱乐部训练还是很不错的,比在家天天“咸鱼躺”要好不少。每天晚上还稍微花点时间健身,真的要多锻炼。 我的打字速度是 19 WPM,很慢,大佬都是三倍速度。 感觉不管能不能有机会出去比赛拿牌牌,我觉得能够在俱乐部刷(ceng)题(kong)目(tiao)还是很快(liang)乐(shuang)的! 安装了Ubun
2017-08-07 11:10:39 212
原创 #HDU 2845 Beans 最大不连续子列和
Beans 题意&分析:玩“吃豆子”的游戏,规则如图:对于这个二维的问题,我们可以分别对行列做两次dp。先对每一行求出最大的不连续子列和(转移方程:r[ i ] = max( r[ i - 2 ] + r[ i ], r[ i - 1] ),i>=2),注意下标范围。然后对每一行的最大值求最大不连续子列和,思路同上。代码如下:#include <bits/stdc++.h>#define INF
2017-08-07 10:50:19 357 1
原创 #HDU 1176 免费馅饼
>免费馅饼 题目 传送门>题意&分析: 题目很好理解,注意初始 t=0 时刻的位置处于 x=5 。可以构建一个矩阵,行代表时间 t,列代表在馅饼落下的位置 x ,所以 dp[ i ][ j ] 记录的是 t=i 时刻在 x=j 位置落下的馅饼数量。>代码如下:#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define TEST cout<<"st
2017-08-07 09:57:06 196
原创 #HDU 1159 Common Subsequence
Common Subsequence题意&分析: 对于给定的两个字符串,求最长公共子序列。直接用LCS算法,一个DP。代码如下:#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define TEST cout<<"stop here"<<endl using namespace std;typedef long long ll;const ll
2017-08-06 16:23:40 202
原创 多重背包模板
#include<iostream>#include<cstring>#include<cstdio>#define MAXV 100001#define MAXN 101#define INF -100000000using namespace std;int d[MAXV],weight[MAXN],cnt[MAXN],V;void OneZeroPack(int c,int w){
2017-08-06 11:04:12 191
原创 “百度之星”资格赛 1004 度度熊与邪恶大魔王
度度熊与邪恶大魔王 Accepts: 1906 Submissions: 11582Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Problem Description 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来。邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]
2017-08-05 20:59:13 672
原创 “百度之星”资格赛 1004 度度熊的午饭时光
度度熊的午饭时光题意。。。感觉好坑啊题意&分析: 这个时候能不能放答案出来呢。其实就是一个 0 1背包问题,只不过要求菜品价格尽可能的高,菜品序号和尽可能的小,同时价格尽量低。好奇怪有没有!!!我也是很神奇的就A出来啦。题意不清且不严谨,数据很水的样子,只需要利用最后的dp结果逆推价格就可以了过了,兴许出题人的思路我没有跟上吧,感觉题目的标程是有bug的,求出来的并不是最优解。有组数据很有问题。数据
2017-08-05 20:17:34 1569 11
原创 #HDU 1058 Humble Numbers
Humble Numbers题意: 如果一个数的质因子只有2,3,5,7,那么这个数就叫“丑数”,下现在要求前5842个“丑数”。分析: 根据质因子分解唯一,我们知道只需要将 1分别乘上2,3,5,7,然后将得到的数在进行这样子的操作,由于原数列是递增排列的,所以可以使用优先队列维护。(在HDU上打表用了97ms,但是Vj上貌似不让交这么长的代码)代码如下:#include <algorithm>
2017-08-05 08:50:29 217
原创 #HDU 2577 How to Type ?
How to Type?题意: 给一串有26个字母(大小写都可能有)组成的字符串,现在按照题目给的要求敲出来,问最少的敲击次数。这个人打字喜欢让caps键灭掉。分析:因吹丝听!刚开始还没有理解题意,原来 caps 不亮的情况下也可以用 shift + 字母;亮的情况下可以用 shift+字母打出小写字母。代码如下:#include <bits/stdc++.h>#define INF 0x3f3f
2017-08-04 16:18:55 162
原创 #HDU1203 I NEED A OFFER!
I NEED A OFFER! 题意: 中文不解释。分析: 类似 HDU2955。#include <bit/stdc++.h>#define INF 0x3f3f3f3f using namespace std;typedef long long ll;const ll mod = 1e9 + 7;//这题和A差不多struct ndoe { int mon; dou
2017-08-04 14:38:22 433
原创 #HDU 2830 Matrix Swapping II
Matrix Swapping II 题意: 给定一个 N * M 的 01 矩阵,可以将任意两列随意交换且不限次数,求醉的的矩阵面积。分析: 这道题目比较像 HDU1506 只不过这道题目也要转化一下,最大子矩阵问题是连续的几列组成,而这道题目需要先分别计算每一列的连续的 “1”的 值(即cnt[ ][ ]),然后在按行递减排序,转移方程 dp[ i ] = max( dp[ i ], cn
2017-08-02 16:47:43 244
原创 #HDU 1069 简单dp
Monkey and Banana题意: 给定一些长方体,问可以摆出的最大高度,要求下层长宽必须严格大于上层。分析: 每个长方体都有三种摆放的顺序呢,那么接下来就把所有情况记录下来搭建积木。代码如下:#include <algorithm>#include <bitset>#include <cmath>#include <cstdio>#include <cstdlib>#include
2017-08-02 09:08:54 195
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人