自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 UVA - 11038 How Many O's?

题目用了数位dp递推的方式。思路: 表示以开头位的0数。 表示以开头位的数总数。;如果的话还要加上;这样DP数组就求出来了,接下来的问题就是怎么计算。与一般数位DP不同的是,假如之前有位是0的话,这一位的结果还要加上 其中i小于这一位。(想一想,为什么?)#include <bits/stdc++.h>using namespace std;...

2018-08-30 01:21:45 157

原创 UVA - 11388 GCD LCM

题目思路:所以当不是整数时无解。题意要求多解时取最小,即: 带入原式得:#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef vector<int> vi;ty...

2018-08-27 01:06:36 202

原创 UVA - 11916 Emoogle Grid

题目好久没有1Y了呢,而且还是数学题。思路:如果没有block,那么除了第一行是之外其余的每一层都是。令,。相当于求一个模方程。两边乘以之后求一个离散对数即可。如果之前一层有block,那么对应这一层的位置就可以放k个(如果这个位置没有block的话),其他位置放k - 1个。把有block的行存入set,每行每行分情况进行计算。(码力不精,代码特判较多。)...

2018-08-19 18:43:37 185

原创 POJ - 1737 Connected Graph

题目思路:求满足的不好求,那就求不满足的。把不满足的情况看成两个步骤。1号点参与的联通分量为,剩下的个点随便连。结果很大,需要用大数进行运算。#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef...

2018-08-13 02:07:52 125

原创 UVA - 11375 Matches

题目思路:可以dp[i]代表i根火柴正好能合成多少种数字,也可以dp[i][j]表示以i开头用了j根火柴能合成多少种合法数字。前一种方法最后要减去 ,意思是减去所有以0开头的。最后,结果非常大,需要用大数进行运算。#include <bits/stdc++.h>using namespace std;typedef long long ll;typede...

2018-08-12 19:11:27 127

原创 UVA - 11401 Triangle Counting

题目思路:白书上的做法比较难想到。自己的做法是枚举第二长的边,这样就不会重复计算三角形。但过程更加繁琐,考验自己数学功底多一点。思路如下:ll res = 0;for(int i = 1; i <= n; i++){ ll cur = min(n - i + 1, i - 1); res += cur * (cur - 1) / 2; if...

2018-08-11 22:26:43 111

原创 UVA - 11806 Cheerleaders

题目思路:还不清楚正确的做法是怎样。自己的做法就是容斥。这个MOD不是素数,但是k较小可以分解素因子来计算c(i, j)而不至于溢出。#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef vecto...

2018-08-11 22:07:04 106

原创 UVALive - 4987 Evacuation Plan

题目实在不敢相信瞎写居然过了。思路:都先排序。dp[i][j]表示i支部队守护了j个避难所。dp[i][j] = min(dp[i - 1][j - 1] + dist[i][j], dp[i - 1][j] + dist[i][j]);得到最优解之后,从后往前处理路径。最远的部队一定是守护最远得避难所,之后的每一支部队一定是守护之前部队守护的或者前一个避难所。#...

2018-08-03 23:55:24 145

原创 UVA - 10564 Paths through the Hourglass

题目思路:两种方法可做。第一种meet in the middle暴力可过。#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef vector<int> vi;typedef vector...

2018-07-30 20:11:06 99

原创 UVA - 11795 Mega Man's Mission

题目一开始以为抢来的武器只能用一次,结果tle了一发,晕。。。思路:看到N的范围就知道可以枚举子集了。dp[i]表示状态i的结果。#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef vector&...

2018-07-30 00:53:22 166

原创 UVALive - 4731 Cellular Network

题目思路:贪心 + dp,O(n ^ 2);先选出现次数最多的一定是最优解。dp[i][j]表示前i位分成了m组的最优解。#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef vector<i...

2018-07-29 23:16:26 117

原创 UVALive - 4256 Salesmen

题目思路:暴力,O(n * (n1) ^ 2)。dp[i][j]表示第i位是j的最优解。#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef vector<int> vi;typedef ...

2018-07-28 15:20:26 115

原创 UVA - 10825 Anagram and Multiplication

题目思路:要求x位就乘(x - 1)次的意思也就是说,每次乘法加上原序列的各个个位数就是可能的序列里的数字。然后对除了个位数进行全排列,判断是否可行即可。#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;typed...

2018-07-24 18:44:56 158

原创 UVA - 1377 Ruler

题目第一道想了一天想出来的的题目。思路:既然是找最短的,那BFS可以考虑。可以肯定的是,最小的结果的最大值一定是输入的最大值。考虑这样一组数据43 5 17 19结果是40 2 5 19可以猜到,最后结果的每个数都只能从原数据中或者各个原数据相减得到的新数据中选出。那就把原数据扩大,然后BFS选即可。#include <bits/stdc...

2018-07-24 16:26:13 185

原创 UVA - 11100 The Trip, 2007

题目思路:最少要多少个包裹既是某个数出现的最多次。接下来才是重头戏,怎么输出序列呢?我第一次的做法是用优先队列一次次慢慢输出,虽然结果正确,但代码冗长。#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;type...

2018-07-21 23:27:40 162

原创 UVA - 11039 Building designing

题目思路:虽然说是很简单,但其实好的代码与一般的代码差别还是很大的。一般的想法就是两个数组分别sort,然后用两个指针维护结果。好的想法则是只用一个数组,根据绝对值sort,然后扫一边判断相邻两位的符号是否不同。这基于一个很简单的贪心思路:选的两个数应尽量小并且接近。#include <bits/stdc++.h>using namespace std;...

2018-07-21 02:32:05 127

原创 UVA - 10891 Game of Sum

题目思路:双方每次都会选对自己未来最优的。用一个二维数组储存(i,j)上的最优值,每次询问枚举右边界、左边界,返回最大值。#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef vector<int...

2018-07-20 01:55:28 129

原创 UVA - 10755 Garbage Heap

题目第一次做三维的。思路:先枚举正视图的上下边界,再枚举左视图的左右边界,最后在正视图的左到右做一次最大连续和。#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef vector<int> ...

2018-07-19 13:06:13 135

原创 UVALive - 3905 Meteor

题目思路:得出每个流星出现在长方形内部的进入、退出时间并存起来。按时间从小到大,遇到进入时间就+1,遇到退出时间就-1。#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef vector<int&...

2018-07-18 18:36:55 158

原创 UVA - 11549 Calculator Conundrum

题目思路:除非n无限大,否则都会出现循环。既然会循环,也就是说会有“环”。此时,便可以用floyd判环来解决这个问题,复杂度为O(n)。#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef vect...

2018-07-18 16:46:44 128

原创 Codeforces Round #498 (Div. 3)

Ahttps://codeforces.com/contest/1006/problem/A思路:每次操作等于(x - 1) ^ 1 + 1,发现奇数会+1然后再-1,偶数却只能-1。#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long l...

2018-07-17 15:58:32 122

原创 Educational Codeforces Round 47 (Rated for Div. 2)

Ahttps://codeforces.com/contest/1009/problem/A思路:用两个指针,一个指向费用,一个指向钱,指向费用的每次右移,指向钱的在满足题意的情况下才右移。最后输出第二个指针的位置。#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned...

2018-07-15 21:14:52 110

原创 Wannafly挑战赛19

A链接:https://www.nowcoder.com/acm/contest/131/A来源:牛客网题目描述ZZT 创造了一个队列 Q。这个队列包含了 N 个元素,队列中的第 i 个元素用 Qi 表示。Q1 表示队头元素,QN 表示队尾元素。队列中的元素是 N 的一个全排列。 ZZT 需要在这个队列上执行 P 次操作,操作分两种: FIRST X: 将元素 X 移到队头。 LAST X: ...

2018-07-15 01:19:10 152

原创 Codeforces Round #497 (Div. 2)

Ahttps://codeforces.com/contest/1008/problem/A思路:两种方法。第一种是判断 i 位是否为consonant,然后判断 i + 1 位是否为Vowel。第二种是判断 i 位是否为consonant,然后判断 i - 1 位是否为consonant。#include <bits/stdc++.h>using namespace std;...

2018-07-14 21:10:40 417

原创 牛客小白月赛4 (都是好题)

A链接:https://www.nowcoder.com/acm/contest/134/A来源:牛客网题目描述铁子从森林里收集了n根木棍,她开始将它们按顺序的排成一排,从左到右依次为1到n,她回想起 在数学课上老师教她的三角形知识,她开始从这些木棍中间找三根木棍来组成一个周长最大的三角形, 这时她的兄弟顺溜偷偷的溜了过来,偷走了第i根木棍,现在她想知道现在能够组成周长最大的三角形 的周长是多少?...

2018-07-13 00:43:20 1581

原创 Codeforces Round #496 (Div. 3)

A题思路:判断i位是否一定大于i - 1位即可。#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef vector<int> vi;typedef vector<vi> vii;typedef...

2018-07-12 01:07:41 132

原创 Last Defence UVALive - 7045

一道要动脑的题目。可以发现,一定会有下面两种情况。a, b, ..., b, (a % b);    (a / b) & 1a, b, ..., b, (b - a % b);    (a / b) % 2 == 0其中...的不同数字有a / b个。然后递归解决。可以发现,这个过程看似是更相减损术,实则是gcd算法,这也可以让我们明白其实更相减损术的本质就是gcd算法。#include ...

2018-07-12 00:40:35 155

原创 牛客练习赛21

A题链接:https://www.nowcoder.com/acm/contest/130/A来源:牛客网题目描述黑妹最近在玩一个有趣的游戏,游戏规则是这样的: 刚开始黑板上有三个不同的初始数字,然后黑妹每一次可以选择黑板上的两个不同的数字,然后计算出这两个不同数字之差的绝对值,如果黑板上没有这个数字,那么就把这个新数字写在黑板上。 黑妹已经玩腻了这个游戏,现在黑妹想知道她最多能添加多少个数字。输...

2018-07-12 00:15:36 598

原创 2018 计蒜之道 初赛 第一场 百度科学家(简单)

DFS。#include <bits/stdc++.h>using namespace std;const int MAXN = 200 + 5;typedef long long ll;const ll INF = 0x3f3f3f3f3f3f3f3f;typedef struct Line{ int k; int connect[MAXN]; void init...

2018-05-12 21:18:29 286

原创 SPOJ - GSS1

线段树。每个节点储存四个值,分别是:该区间内连续的最大值,从左边开始连续的最大值,从右边开始连续的最大值,整段的值。我们知道,区间连续的最大值要么在最左边,要么在最右边,要么在中间的某一部分。每次查询找出“完整覆盖”区间位置,从左往右暴力选择区间的起点和区间的终点。#include <bits/stdc++.h>using namespace std;typedef long ...

2018-05-12 16:51:04 282

原创 HDU - 4825

01Trie#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef struct Node{ private: bool exist; Node *_next[2]; Node(){ exist = false; memset(_next, 0, sizeof(...

2018-05-12 12:24:23 163

原创 SGU - 271

双端队列。大于k之后的数可以存在一个栈中,这部分的数不会改变顺序。#include <bits/stdc++.h>#define decode(x) (x - 'A' + 1)using namespace std;typedef long long ll;typedef char word[20];ll Hash(char *A){ ll h = 0; for(i...

2018-05-12 10:42:45 170

原创 POJ - 2970

这道题我当时想了好久,也没有想出解的方法,不知道如何贪心,也不认为是dp,后来受高手指导后发现这道题很简单。这道题的贪心方法和其他题略有不同,一般的贪心是从一开始就开始贪,而这道题是从满足不了题意后开始贪。当i项任务不能在规定时间完成时,我们就需要把前面的任务“加速”,当然是加速a最大的那一项。#include <cstdio>#include <cstring>#in...

2018-05-10 12:49:41 247

原创 POJ - 3468

线段树。#include <cstdio>#include <cstring>#define isInside(L, R, u, v) (u <= L && R <= v)#define isOutside(L, R, u, v) (R < u || v < L)const int MAXN = 2e5 + 100;typ...

2018-05-09 22:27:11 121

原创 POJ - 3264

线段树。#include <cstdio>#include <cstring>#define isInside(L, R, u, v) (u <= L && R <= v)#define isOutside(L, R, u, v) (R < u || v < L)const int MAXN = 2e5 + 100;typ...

2018-05-09 22:20:14 95

原创 CodeForces - 948C

二分每堆雪的消逝时间。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int MAXN = 1e6 + 100;int n;ll v[MAXN], t[MAXN], remain[MAXN], num[MAXN], sum[MAXN], pre[MAXN];int main...

2018-05-09 22:16:14 425 1

原创 2018年5月6日GDCPC (广东赛区)总结

很高兴可以写总结。因为不是第一次打比赛了,加上打了很多场CF,心态在省赛可以说是唯一的亮点了, 不过我一直脑筋转不过弯,事实证明,这确实是一个很大的问题。其实比赛一开始看题的时候感觉挺不错的,都有一些捕风捉影的想法,看A题感觉是推公式的题,但是写了一下发现不会推。。然后就换题了,再看回A的时候已经差不多1个小时了。打完表之后发现数字很好看,规律也不难找,调了一会逆元问题之后就过了。然后我就一直在想...

2018-05-08 20:14:59 334

原创 FZU - 2254 英语考试

这个问题可以转化为:找一个连通图的最小生成树。因为有自环,所以用prim算法会更简单一点。#include <cstdio>#include <cstring>#include <algorithm>#include <vector>#include <queue>using namespace std;typedef lo...

2018-05-08 19:20:17 156

原创 Unidirectional TSP UVA - 116

简单DP,难度在于路径的记录。这里笔者用顺序的方法来递推,但这不方便记录,推荐使用逆序的方法。这里需要注意一点的是,因为矩阵中的点可以是负数,所以不能用dp == -1或者一些其他的数据来判断是否访问过这个dp,当然你也可以预处理所有dp为1E18,或者像笔者一样用一个vis数组来判断。#include <cstdio>#include <cstring>#define...

2018-04-13 16:16:01 112

原创 Calling Circles UVA - 247

传递闭包。利用c[a][b] = c[b][a] = 1; 判断是否在一个圈内~输出结果时再新建个图,对在一个圈内的连线,输出每个连通分量即可。#include <cstdio>#include <cstring>#include <vector>#include <map>#include <set>#include <...

2018-04-02 19:06:03 135

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除