【思维】
synlHR
这个作者很懒,什么都没留下…
展开
-
【斐波那契】偷木棍破坏三角形
HDU 5914 Triangle 题意: 输入n表示某人有1,2,3,4……n,一共n根木棍, 求偷走几根木棍后某人无法将剩余的木棍组成三角形。 题解: 由于长度越大越容易组成三角,先用s[i]标记可以留下那些长度的木棍。 贪心思想,留下的长度尽可能小,为后面的留空间: 1,2,3,x,5,x,x,8,x,x,x,x,13……大概可以看出是个斐波那契。 再将标记的s[i]顺序累加...原创 2018-07-24 15:00:52 · 673 阅读 · 0 评论 -
【思维】不同的和
URAL 2065 Different Sums 题意: 输入数组s长度n,数组中至少有k种不同的数,求让数组s各相连子串和种数最少的排列之一。 题解: 从0开始用,0,1,-1,2,-2……最后用0补齐。 s没赋0,wa到死。 #include<cstdio> using namespace std; const int N=500+5; int main() { ...原创 2018-07-24 14:53:51 · 196 阅读 · 0 评论 -
【思维】K.Bro排序
HDU 5122 K.Bro Sorting 题意: 输入个无序无重复数组,选中一个数后可以和其后比他小的一串数换位置,求要换几次。 题解: 用s[i]储存数组,倒序遍历, 在遇到1之前,所有相隔的距离都是要换的数。 #include<cstdio> using namespace std; const int N=1000000+5; int s[N]; int mai...原创 2018-07-24 15:06:53 · 225 阅读 · 0 评论 -
【思维】0,1,2最小串
CodeForces 1009B Minimum Ternary String 题意: 输入一串数,0与1可以互换,1与2可以互换,将这串数换成等长最小的数。 题解: 1可以和另外两种数都换位,记录1的个数, 有2就将1全部放在第一个2之前,以求2尽量靠后,2与0相对位置不变; 没有2就将1放在末尾,让所有0靠前; 注意可以将201换成120。 #include<cstdi...原创 2018-07-24 15:13:01 · 249 阅读 · 0 评论 -
【升序列】列车调度
PTA列车调度 求最少的非连续降序列数 =求最长的非连续升序列长度 #include<iostream> using namespace std; int q[100005]; int main() { int n,m,k=0; cin>>n; while(n--){ cin>>m; if(!k||...原创 2018-10-01 19:27:57 · 340 阅读 · 0 评论 -
【哈夫曼】编码长度
hdu - 2527 #include<cstdio> #include<iostream> #include<cstring> #include<queue> #include<algorithm> using namespace std; typedef long long int lld; int main() { in...转载 2019-05-18 17:50:41 · 3471 阅读 · 0 评论