自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xuelanghu407

ACM蒟蒻de脑残之旅

  • 博客(106)
  • 资源 (1)
  • 收藏
  • 关注

原创 override ?

// -----------------------------------------------------------------------------class A { def f(a:Int):Int = a + 3}class B extends A{ val f = 2}scala> val b= new Bb: B = B@6990bf8dscala> b.f

2016-08-13 18:05:34 308

原创 Structural Types

// -- if it walks like a duck and talks like a duck, it must be a duckdef f (eater: {def eat(s:String):String}) (food:String) { println(eater.eat(food))}class Dog { def eat (food:String):String =

2016-08-01 15:41:04 412

原创 Implicit conversions

class A { def m (key:Int): Unit = { println(s"Calling the method m in Class A with key value $key") }}implicit class B (a: A) { println("implicit transform Class A to Class B") def f (str:

2016-07-30 18:03:41 465

原创 Args in class constructor

class Person (name:String, val age:Int, private val sex:Boolean) { def getName = { name } def getSex = { sex match { case true => "Boy" case false => "girl" } }}scala> v

2016-07-30 17:40:46 681

原创 Dynamic Invocation in Scala

import scala.language.dynamicsclass DynamicPerson extends Dynamic{ def selectDynamic(key:String):Any = { println(s"field '$key' selected") } def updateDynamic(key:String)(args:Any) = { pri

2016-07-30 09:55:08 352

原创 codeforces 688 E. The Values You Can Make

E. The Values You Can Make题意Pari 从自己的n个硬币中给了Arya K元钱,现在他想知道Arya能用这k元钱凑出哪些钱数。思路dp[i][j][k]表示前i个硬币中,给Arya总共j元钱,Arya能否凑出k元钱。 于是Pari选择把第i+1个硬币不给Arya则 dp[i+1][j][k]|=dp[i][j][k];dp[i+1][j][k] |= dp[i][j][

2016-07-14 09:56:45 352

原创 codeforces 682 D. Alyona and Strings

D. Alyona and Strings题意题目类似与求两个字符串的最长公共子序列,不过有个要求是这个公共子序列需是由不超过k段子串组成。这些字串需在两个原串中一样出现。思路LCS再加一维限制子串个数。并预处理出公共子串。code#include <cstring>#include <iostream>using namespace std;#define MAXN (1000 + 5)int

2016-07-14 09:37:32 292

原创 codeforces 682C. Alyona and the Tree

codeforces 628C. Alyona and the Tree题意有一颗树,树上的点和边都有权值。要求删除树上若干节点,使得树上每个节点u到其子树上的节点v的dis(u,v)≤a(u)dis(u, v) \le a(u)。问最少需要删除多少个节点。思路类似与最大连续子段和的思想,对于每个节点是否要保留,在于是否有从根节点方向到以他为结尾的树链的权值比其点权大,有则删除该子树,无则保留该节点

2016-07-14 09:26:05 338

原创 Astar Round2B 1005 区间交 区间覆盖 线段树

题意给出n个数和m个区间,要求在m个区间中找出k个区间,并让这k个区间的交集的和最大。思路我们可以知道,如果一个区间满足被k个区间覆盖,那么其子区间也一定被k个区间覆盖。那么我们可以用双指针的思想,如果[l, r]区间满足条件,那么l++, 否则 r++ 直到满足。即我们要知道如何快速的知道一个区间是否被k个区间覆盖。 对区间[l, r] 我们维护一个数组sg,我们对所有的左端点比l 小的区间的右

2016-05-22 20:39:32 382

原创 Astar Round2A 1002 Sitting in Line 记忆化搜索

Sitting in Line题意给出n个数,和确定部分数的位置。要求最大的 ∑i=1n−1(a[i]∗a[i+1])\sum_{i=1}^{n-1}(a[i]*a[i+1])思路从左到右前m个用的数字集市S,且最右边是pr的最优解。 dp[S][pr]=max(dp[s‘][i]+a[pr]∗a[i])dp[S][pr] = max(dp[s`][i]+a[pr] * a[i])code#in

2016-05-21 21:25:51 393

原创 codeforces 633C. Spy Syndrome 2 trie + dp

题意间谍通过一些规则吧密信进行了加密。现在需要你对其解密。加密规则是把密文全部改成小写字母,然后翻转每个单词。并删去空格。现在给你加密后的文字和字典,要你找出原来的密文。思路因为密文的单词是翻转后的,所以我们可以把字典里的单词翻转,存进字典树中。dp[i]表示i之前是否能组成正确的信息(true)。 dp[j] = dp[i] 当dp[i]为真,并且(i, j-1)能在字典树中找到。路径还原,其实

2016-03-03 20:16:44 412

原创 codeforces C. Famil Door and Brackets dp

题意有个字符串由(,)组成。并且从左往右数时保证(的数量不小于),并且括号是匹配的。现在给该串中间的一部分,求符合要求的串的个数。思路简单的想法就是枚举给出串的左边的(,)的个数,然后计算出另一个串的个数。然后相乘,累加。于是要保证这样填充的时候满足串的要求。这个可以根据符号个数进行判断。dp[i][j] 表示i个(j个)满足题目要求的情况下的方案数。dp[i][j] = dp[i-1][j] +

2016-03-01 18:03:43 316

原创 codeforces 628 B. New Skateboard

题意给出一串数字,问有多少个子串所代表的数字可以被4整除。思路因为100是4的倍数。所以只需要考虑两位以内是否能整除就行了。code#include <bits/stdc++.h>using namespace std;char s[300000 + 5];int main () { scanf ("%s", s); int len = strlen(s); long long

2016-03-01 17:00:28 331

原创 codeforces 615 C. Running Track trie + dp

题意输入两个字符串S和T。用S的子串和其子串的反转来凑T,要求尽可能的少使用子串数量。思路把S串的子串插入trie树中。dp[i]表示T串的i到结尾最少要用到多少个S的子串。dp[i]=min(dp[j]+1);dp[i] = min(dp[j] + 1);其中T的i到j-1的子串必须在trie树中。路径还原。trie树中的每个节点都要记录该串的起点和终点。反串用负数记录较为方便。再用pr数组记录转

2016-02-29 20:22:39 335

原创 hdu 1171 Big Event in HDU 费用可行性背包 dp

题意一个学院分成了两个学院,于是他们要分一些公共设备。总共有n种设备,每种设备的价值v[i]和数量m[i],要求分配的时候尽可能的让两个学院分到的价值接近。并且保证第一个学院分得的价值不小于第二个学院。求最佳分配结果。思路要尽可能的平均分配,就是尽可能地用这些设备凑成总价值的一半。而只需要知道那种价值能否凑出来。code#include <bits/stdc++.h>using namespace

2016-02-26 14:01:56 273

原创 codeforces 629 D. Babaei and Birthday Cake dp + 线段树

题意有n个圆柱形蛋糕,现在需要把他们叠在一起,要求标号小的蛋糕在下面,并且要求保证下面的蛋糕的体积严格的比上面的小。思路类似于“最重子序列”,用dp[i]以第i个蛋糕为最高的能得到的最大的体积。dp[i] = max(dp[j] + a[i].v);,此时j要满足两个条件,j蛋糕的标号要比i小,并且j的体积要比i的体积小。此时我们可以对蛋糕的体积排序,这样从左往右进行dp的时候便可以保证体积的大小关

2016-02-22 16:05:26 435

原创 Educational Codeforces Round 6 A.B.C.D.E

A. Professor GukiZ’s Robot题意robot可以走八个方向。给出起点坐标和终点坐标,问最少要走几次。思路最优当然是尽可能的斜着走喽。codecout << max(abs(x_1 - x_2), abs(y_1 - y_2)) << endl;B. Grandfather Dovlet’s calculator题意max用计算器从数字a按倒数字b,问计算器显示了多少segmen

2016-01-27 14:14:44 549

原创 Codeforces Round #333 (Div. 2) B C D

Codeforces Round #333 (Div. 2)B. Approximating a Constant Range題意對於一個長爲n的序列且相臨的兩個數字相差1,求一個最長的區間,區間的最大值和最小值的差爲1。思路考慮dp,序列有三個狀態, 0. 序列的最後一個數字是該序列的最小值 1. 序列是一個全部數字一樣的序列 2. 序列的最後一個數字是該序列的最大值於是對於a[

2015-12-05 19:04:45 471

原创 2012 Asia Tianjin Regional Contest

A - Mahjong题意麻将,现在手上有13张牌,问你还要抽到哪张牌就能胡牌。胡牌规则题目给出。思路模拟,枚举下张抽到的牌,判断是否胡牌。注意每种牌的数量不能超过4。鉴于上次做模拟题的教训,我让队友写去了。B - Sum of divisors题意求一个数的因子在m进制下的各数位的平方和,答案用m进制表示思路sqrt(n)求得n的因子,然后对因子按m进制数位分离,再求平方和。so,还是队友写的。C

2015-11-15 15:52:50 558

原创 2011 Asia ChengDu Regional Contest

B - Break the Chocolate题意有一块n*m*k的巧克力,要求把它分成1*1*1的小块。有两种操作。一是用手掰,每次只能把一块巧克力掰成两块;一种是用刀切,每次可以把若干块巧克力叠起来一起切。问分别采用两种方法个需要操作多少次。思路对于第一种用手掰的方法,先掰行,共要n-1次。再掰列,需要n*(m-1)次,同理掰高需要n*m*(k-1)次。所以总共需要n-1+n*(m-1)n*m*

2015-11-14 16:45:57 425

原创 2013 Asia Hangzhou Regional Contest

A - Lights Against Dudely题意Harry要闯过一个迷宫,他有一些灯,把灯放在(x,y)位置,它会照亮(x, y) (x-1, y) (x, y+1)三个位置。并且Harry有一盏神奇的灯,它的方向可以旋转 0°, 90°, 180° 或270°。现在,Harry不能点亮#位置,并且要点亮所有的.位置。问Harry最少要用多少盏灯。思路一年前就做过这道题,当时用的状压dp,这次

2015-11-11 21:08:19 776

原创 uva 11538 Chess Queen

uva 11538 chess queen題意在一個n∗mn*m的棋盤里放置兩枚皇后,每個皇后的攻擊範圍爲該行該列及對角線,問皇后會互相攻擊的方案數,兩個皇后視爲不同的棋子。思路對皇后的放置位置,我們可以分成三種情況。即在同一行,同一列,同一對角線。 在同一行的情況下,第一個皇后有n∗mn*m種位置,第二個只有(m−1)(m-1)種位置,即方案數爲n∗m∗(m−1)n*m*(m-1)。 同理,在

2015-10-30 15:45:27 361

原创 2011 Asia Dalian Regional Contest

D - Hexadecimal View題意把一行字符轉換成16進制的ASCAL碼,每行16個字符,倆倆間空格,還要輸出十六進制的行號。並在最右面輸出該行的代表的字符串,大寫換消小寫,小寫換大寫。思路模擬唄,兩位16進制可以用%2x\%2x直接輸出,但是行號有前導靈所以得自己寫。code讀一行直到文件末尾:while (gets(str) != NULL) {}E - Number String題意

2015-10-25 12:16:31 515 1

原创 弱校联萌十一大决战之强力热身

A.Easy Math題意給出一個序列a1,a2,a3,...,ana_1, a_2, a_3, ...,a_n,問他們的開方的和a√1,a√2,a√3,...,a√n,\sqrt a_1, \sqrt a_2,\sqrt a_3,...,\sqrt a_n,是否是一個整數。思路除非每個數都是平方數,否則一定開方的和不會是個整數(gt的鍋)。code#include <cstdio>#includ

2015-10-02 17:40:26 436

原创 codeforces 525E. Anya and Cubes

题意有n个数字,先在里面选择若个,然后可以把其中最多k个数字变成其的阶乘,问你有多少中方法可以使和变成S。 (1 ≤ n ≤ 25,0 ≤ k ≤ n,1 ≤ S ≤ 1016,1≤ai≤109)(1 \le n \le 25, 0 \le k  \le n, 1 \le S \le 10^{16}, 1 \le a_i \le 10^9)思路S非常大,S非常大,S非常大。重说三。所以要另想办法。

2015-09-30 20:03:09 516

原创 codeforces 580D. Kefa and Dishes dp

题意总共有nn种菜,需要吃mm盘。每盘的美味值为aia_i。并有k个规则,在吃完第xix_i盘后紧接着吃yiy_i盘菜可以多获得viv_i的美味值。问你能得到的最大美味值是多少。(1≤m≤n≤18,0≤k≤n∗(n−1))(1 \le m \le n \le 18, 0 \le k \le n*(n-1))思路n的数据范围比较小,可以用状压。S表示当前已经吃过的菜品的集合。题目中菜品吃的先后顺序是

2015-09-28 09:19:38 387

原创 2013 Asia Regional Changchun

A Hard Code题意不是我敲的。题目意思好像是把一个字符串分成NN份长度为MM的子串吧?GT手速慢,被他妹子强了FB。233333code#include<cstdio>#include<cstring>#include<cmath>#include<iostream>#include<algorithm>#include<string>using namespace std;i

2015-09-26 01:15:34 680

原创 Codeforces #313 (Div. 1) C. Gerald and Giant Chess dp 组合数 逆元

描述有一个 h×wh \times w 的棋盘,需要从左上角走到右下角。每次只能向右或者向下走一步。其中有 nn 个格子被标记成不能就经过,这些格子的坐标为(ri,ci)(r_i, c_i)。问走到右下角可以有多少种方案数。 (1≤h,w≤105,1≤n≤2000,1≤ri≤j,1≤ci≤w,ansmod109+7)(1 \le h,w \le 10^5, 1 \le n \le 2000, 1

2015-09-21 12:44:49 415

原创 codeforces gym 100712

题目链接:http://codeforces.com/gym/100712A. Who Is The Winner?有n个人参加ACM比赛,给出每个队伍的过题数s和使用时间p,问第一是哪个队伍。结构体排序,按照以s为升序,p为降序排序,后输出最后一个队伍的名字即可。B. Rock-Paper-ScissorsBahosain和他的朋友玩剪刀石头布的猜拳游戏,总共比n次,给出Bahosain朋友的出拳

2015-09-20 22:41:35 860

原创 codeforces 566F. Clique in the Divisibility Graph dp

描述:有n个点,点上有值a[i], 任意两点(i, j)有无向边相连当且仅当 (a[i]moda[j])==0||(a[j]moda[i])==0(a[i] \mod a[j]) == 0\quad || \quad (a[j]\mod a[i]) == 0 问这幅图中的最大连通子图是多少。思路因为边是特殊要求的,所以一个连通子图的点是一成倍数关系的序列。 aa⋅m1a⋅m2a⋅m3…a⋅mk

2015-09-18 11:23:53 523

原创 codeforces #315B. Symmetric and Transitive dp

描述: 给定一个集合A,集合中有 n 个元素,定义 p(a, b) 为集合中的二元关系,p是等价关系,当且仅当p满足自反,对称,传递。而 Johnny 觉得并不需要自反性,因为if p(a,b), then p(b,a), thenp(a,b)if \space p(a, b), \space then \space p(b, a),\space then p(a, b)但是这个说法明显是错的

2015-09-18 10:41:30 433

原创 codeforces #317B. Minimization dp && greedy

描述:题目给出一个长为 n 序列A,你可以任意调整序列中数字的顺序。使得 ∑i=1n−k|A[i]−A[i+k]|\sum_{i=1}^{n-k}|A[i]-A[i+k]| 尽可能的小。(序列下标从1开始)输入:第一行输入n, k; (2≤n≤3⋅105,1≤k≤min(5000,n−1))(2\le n \le 3\cdot10^5, 1 \le k \le min(5000, n-1)

2015-09-13 17:29:30 444 2

原创 hdu 4832

HDU 4832 Chessn*m的棋盘中起点为(x, y),每次可以移动到(x+1, y), (x-1, y), (x, y+1), (x, y-1), (x+2, y), (x-2, y), (x, y+2), (x, y-2) 八个位置。可以重复走。问移动k次有多少方案(%9999991)。两次移动被视为不同的方案当且仅当移动中至少存在一次移动方向不同。(1≤n, m, k≤1000; 1≤x

2015-09-11 12:11:30 1456 1

原创 uva 672 dp

UVA 672 - Gangstersn个歹徒打算打劫一个饭店。饭店的门在[0, k]的范围变化。第i个歹徒在t[i]时刻来到饭店,能打劫到p[i]的钱,但至于门的状态等于s[i]时才能进去打劫。问这n个歹徒最多能拿到多少钱。(1≤N≤100,1≤K≤100,0≤T≤300001 \le N \le 100, 1 \le K \le 100, 0 \le T \le 30000) (0≤Ti≤T0

2015-09-10 14:55:17 400

原创 uva 590 dp

UVA 590 - Always on the run小偷要从城市1经过k天道城市n,给出这n个城市之间的航班表,要求第k天到城市n的最小花费。dp[i][j] 第i天小偷在城市j的最小花费。枚举第i-1天其所在的城市k,找出(k-j)在第i天的航班价格s,dp[i][j] = min(dp[i-1][k] + s);#include <bits/stdc++.h>using namespace

2015-09-10 14:50:43 435

原创 uva 473 dp

UVA 473 - Raucous Rockers给出n首歌, m张磁盘,每张可以存t分钟歌曲。和每首歌的时间。歌曲必须按顺序存放。 以磁盘的存储情况为状态,dp[i][j][k]表示前i首歌存在前j个磁盘并且第j个磁盘花了k分钟的最大存储歌曲数量。第i-1首歌可能存在第j个磁盘或者第j-1个磁盘。得出转移dp[i][j][k]=max{dp[i−1][j][k−a[i]]dp[i−1][j−1]

2015-09-10 14:40:43 371

原创 uva 437 dp

UVA 437 - The Tower of Babylon给了一堆a*b*c的石头,求最高能堆多高,石头使用不限次数。 每个石头可以视为6个石头,对其底面大小进行排序,然后类似最长上升子序列的做法。#include <bits/stdc++.h>using namespace std;struct Node { int a, b, c; Node(){} Node(in

2015-09-08 11:45:17 343

原创 uva 10453 dp

UVA 10453 - Make Palindrome给出一个字符串,可以在任意位置插入任意字符,求使其变成回文串最少要插入多少字符,并给出可行解。 一开始打算dp[l][r]表示(l, r)区间的插入最少字符组成的回文串(string)。然后再转移。最后发现严重tle,然后改记忆化为for循环还是好慢。果然string那里有个O(n),要改算法了。如果只要求至少要插入多少字符还是好办的,而要找可

2015-09-08 11:36:37 286

原创 uva 10163 dp

UVA 10163 - Storage Keepers公司有N(1 ≤ N ≤ 100)个仓库,需要安保。现在有M(1 ≤ M ≤ 30)个人应聘职位,每个人有个值Pi (1 ≤ Pi ≤ 1000);安排第i个人看守k个仓库,则这k个仓库的安全值是Pi/k,并且花费为Pi。公司要保证所有仓库的最小安全值尽可能的大,求解这个值并且求这个方案的最小花费。dp[i][j]:表示安排前i个人看守j个仓库能

2015-09-08 11:17:27 1418

原创 uva 1291 dp

UVA 1291 - Dance Dance Revolution有一个跳舞机。原点为0,有四个方向,上左下右,分别标成(1234),初始玩家两只脚站在 0 位置,跳舞机会给出一串数字,玩家要按照顺序踩下四个方向的数字。移动脚会消耗玩家的能量,从0位置移动到四个方向消耗2点能量,从一个方向移动到另一个相邻的方向消耗3点能量,从一个方向移动到相反方向消耗4点能量,原点踩一下消耗1点能量。

2015-08-25 23:29:49 621

sublime Text 3 (x64)

sublime 一款优美的编辑器。鄙人主要用于写C++,据说用它写HTML也·挺不错的。就是这样。资源为官网下载。未进行任何修改。(我没那技术。支持正版,反对侵权。)

2014-12-30

空空如也

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

TA关注的人

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