ZOJ 4061 Magic Multiplication——暴搜

题意:规则举例:1234*5678=5678101214161516212420242832,现在给出最终串,以及两个原串的长度,问两个原串是多少,设原串为A B,多解先令A尽量小,然后再令B尽量小 所有传的长度都在2e5以内,除非串只有一个0,否则没有前导0 思路:现场赛的时候拿到这个题一开...

2018-11-09 22:09:14

阅读数:7

评论数:0

Codeforces 1073C——思维

题意: 一个机器人在(0,0),给出n个指令,指令的种类为L R D U,分别代表左移一步 右移一步 下移一步 上移一步,现在给出一个终点( x,y),要通过改变序列中的一些指令使得机器人最终停在(x,y),并使得花费最小,输出最小花费(原本就能达到输出0,无解输出-1),只允许把一个指令更改...

2018-11-02 20:15:48

阅读数:32

评论数:0

HDU 6237 A Simple Stone Game——思维

题意:有n(1e5)堆石子,第i堆石子有a[i](1e5)个,现在可以进行任意次操作,每次操作可以把一个石头从一堆挪到另一堆,问最少操作几次可以达成这个条件:存在一个x,使得每堆的石子数量都是x的倍数 思路:首先对石子总数进行质因分解,x一定是这些素因子中的一个,这个是我凭感觉蒙的,事实证明确实...

2018-10-29 16:56:10

阅读数:15

评论数:0

HDU - 6274 Master of Sequence——二分

按a的值分组,处理一下余数,二分一下就可以了 但是我二分上界设置的1e18,在计算过程中爆炸了,正确的上界应该是1e14 真的调了很久才意识到这个问题。。。 明天就打区域赛了。。。 #include <bits/stdc++.h> using ...

2018-10-25 15:09:00

阅读数:26

评论数:0

HDU 6266 Hakase and Nano——思维

首先明确这是一个不公平的游戏,作弊的那个人一定更有利,由此猜测所有作弊的人必胜,除非条件实在太差, 我们要找的就是这些作弊也挽回不了的局面,思考后可发现作弊的一方拿只有一个石子的石头堆没有办法,因此从这上面出发,得到下面的结论: 1.先手时必胜,除非石子总数是三的倍数且每一堆都只有一个石子 2...

2018-10-22 20:43:44

阅读数:17

评论数:0

ZOJ - 3981 Balloon Robot——思维

先选1作为起始点跑一遍不高兴值,按不高兴值从小到大排序,然后顺序扫描,当要把第i个位置变为0时,实际上就是将i前面的元素+m,然后整体-unhappy[i] #include <bits/stdc++.h> using namespace std; ...

2018-10-18 23:15:43

阅读数:11

评论数:0

HDU 5977 Garden of Eden——点分治

上来按照dp的思想没什么头绪,因为5e4*(1<<10)有点大,所以往暴力上想了,树上暴力的话一般是往点分治上想,稍加思考发现这题只要枚举子集就可以在n(log(n))^2内解决,注意root是全局变量会改变,要存一下,因为这个直接自闭 #inclu...

2018-10-18 15:58:29

阅读数:12

评论数:0

HDU 5976 Detachment——贪心

很容易想到最优策略是2*3*4一直乘到前缀和小于n的最靠后的位置,设这个位置为p 当segma(2,p)==n时明显答案就是mul(2,p) 但是当segma(2,p) != n时会有一个余项,设为need,need=n-segma(2,p),显然现在项数不会再增加了,我们只能把need按照一...

2018-10-17 22:34:43

阅读数:16

评论数:0

UVALive 3403 Mobile Computing——爆搜

有点像状压dp的爆搜 #include <bits/stdc++.h> using namespace std; typedef pair<double, double> P; const int maxn...

2018-10-13 10:51:13

阅读数:7

评论数:0

UVALive 4726 Average——斜率优化

维护下凸线,然后二分或者单调队列 #include <cstdio> #include <cstring> #include <iostream> #includ...

2018-10-11 15:38:16

阅读数:11

评论数:0

HDU 5952 Counting Cliques——剪枝

剪就完事了 #include <bits/stdc++.h> using namespace std; const int maxn = 110; int T, n, m, s, ans; vector<int&...

2018-10-08 16:52:48

阅读数:27

评论数:0

Gym - 101550C Card Hand Sorting——思维

开始读错题意了,题目要求的是相同花色之间有序,知道这一点以后就枚举一下序列跑几个LCS就好了 #include <bits/stdc++.h> using namespace std; const int maxn = 100; char str[m...

2018-10-08 11:33:31

阅读数:16

评论数:0

Gym - 101550D Daydreaming Stockbroker——贪心

一个简单的小贪心,被队友坑着写了一发dp,emm。。。 #include <bits/stdc++.h> using namespace std; typedef long long LL; const int maxn = 1000; int N;...

2018-10-08 10:07:46

阅读数:26

评论数:0

UVALive 4850 Installations——思维

按d排序保证最大惩罚最小,但是此时次大惩罚+最大惩罚不一定最小,可以牺牲一个任务使得最大惩罚增大,次大惩罚减小使得最终答案减小 #include <bits/stdc++.h> using namespace std; const int maxn ...

2018-10-04 22:36:14

阅读数:14

评论数:0

HDU - 6000 Wash——思维

首先优先队列处理每件衣服最早洗完的时间 然后按照最晚洗完的衣服用最快的烘干机的原则贪心 #include <bits/stdc++.h> using namespace std; const int maxn = 1e5 + 10; typedef...

2018-10-03 10:39:13

阅读数:32

评论数:0

UVALive - 4254 Processor——二分+优先队列

截止时间越早的任务应该优先完成,二分优先队列什么的都很好想,问题就是一开始我以为一个任务只能执行整数段时间,后来发现可以执行浮点数段时间。。。其实这也很好处理,只要处理单位时间的工作量就可以了 可以参考judge函数,while里面就是处理的单位时间的工作量 #include &am...

2018-09-28 19:28:40

阅读数:20

评论数:0

UVALive - 4636 Cubist Artwork——思维

把正视图用体积为1的小格子先填上一层,如果把这些列重排一下恰好能构成右视图,那么当前的填充方法就是最优的,基于这个思想我们对两个数列从大到小排序后瞎搞就可以了 #include <bits/stdc++.h> using namespace std;...

2018-09-28 17:21:38

阅读数:31

评论数:0

UVALive 4356 Fire-Control System——思维

极角排序,枚举半径,然后扫一圈、 #include <bits/stdc++.h> using namespace std; const int maxn = 1e4; const double pi = acos(-1.0); struct Poi...

2018-09-28 16:33:48

阅读数:14

评论数:0

UVA - 10827 Maximum sum on a torus——单调队列

首先解决循环问题,只要把四个相同的矩阵拼起来就好 然后在新的大矩阵上求长宽最大为n的最大子矩阵和,最大子矩阵和可以转化成最大子段和问题(Uva108),因此这个问题可以转为在长度为m的数列上求一个长度至多为n的最大子段和,这个处理一个前缀和就可以O(n^2)求,具体形式为sum[i]-sum[j...

2018-09-27 22:22:44

阅读数:13

评论数:0

UVA - 108 Maximum Sum——思维

搞个竖着的前缀和然后枚举连续的行做尺取就可以了,水题 #include <bits/stdc++.h> using namespace std; const int INF = 0x3f3f3f3f; int n, a[150][150], sum[...

2018-09-27 19:41:00

阅读数:16

评论数:0

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