惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
S
Security Affairs
阮一峰的网络日志
阮一峰的网络日志
L
LangChain Blog
Microsoft Azure Blog
Microsoft Azure Blog
雷峰网
雷峰网
Recent Announcements
Recent Announcements
WordPress大学
WordPress大学
The GitHub Blog
The GitHub Blog
博客园_首页
The Cloudflare Blog
M
MIT News - Artificial intelligence
博客园 - 【当耐特】
MyScale Blog
MyScale Blog
S
SegmentFault 最新的问题
P
Proofpoint News Feed
Y
Y Combinator Blog
Jina AI
Jina AI
博客园 - 聂微东
A
About on SuperTechFans
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
G
Google Developers Blog
云风的 BLOG
云风的 BLOG
F
Full Disclosure
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Microsoft Security Blog
Microsoft Security Blog
爱范儿
爱范儿
T
Tailwind CSS Blog
J
Java Code Geeks
Vercel News
Vercel News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Stack Overflow Blog
Stack Overflow Blog
罗磊的独立博客
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
T
The Blog of Author Tim Ferriss
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
博客园 - 三生石上(FineUI控件)
W
WeLiveSecurity
PCI Perspectives
PCI Perspectives
Attack and Defense Labs
Attack and Defense Labs
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
宝玉的分享
宝玉的分享
IT之家
IT之家
Hacker News: Ask HN
Hacker News: Ask HN
The Register - Security
The Register - Security
T
The Exploit Database - CXSecurity.com
T
Threat Research - Cisco Blogs

博客园 - 老博客哈

[深入浅出系列]System.Environment HDU第11版解题报告(农夫版) 第(前)k大数问题 C#与Matlab混合编程的几种方式 Ajax开发框架(下)[整理] Ajax开发框架(中)[整理] Ajax开发框架(上)[整理] 语义网在线课程 Tidy - 一个把HTML 转成XHTML的工具库[整理] 2008企业级Web产品Top 10 (来源于ReadWriteWeb) (小规模)b牌棋盘完美覆盖数【整理】 一类棋盘互不攻击问题 稳定婚姻问题(Stable Marriage Problem) 2007 South Central USA Regional Programming Contest 解题报告 《C#完全手册》中提到的一些内部工具及编译选项 TC 泛黄了 Introduction to String Searching Algorithms--Rabin-Karp and Knuth-Morris-Pratt Algorithms [翻译] TopCoder C# User List TCHS SRM 1
SRM 144-149
老博客哈 · 2009-06-07 · via 博客园 - 老博客哈

SRM 144:

Match Overview: http://www.topcoder.com/stat?c=round_overview&er=5&rd=4515

Match Editorial: http://www.topcoder.com/tc?module=Static&d1=match_editorials&d2=srm144

1. Time

题意: 将总秒数Sec转换为"时:分:秒"的格式

解答: 时 = Sec / 3600, 分 = Sec % 3600 / 60, 秒 = Sec % 60

2. BinaryCode

题意: 有两个串P和Q,其中P是二进制串(仅含0,1), 两者满足Q[0] = P[0] + P[1], Q[1] = P[0] + P[1] + P[2], Q[2] = P[1] + P[2] + P[3], ...

现给定Q,求以0和1分别打头的P串(如不存在,返回"NONE")

解答: 这种题我认为最好的做法类似于"迷宫加圈"的技巧,在P的两端补0, 这样Q[0] = P[-1] + P[0] + P[1], 可以统一起来.通过一遍遍历,得到P数组,注意需要检查P中是否只是0或者1,并且末尾附加的数字是否为0.(BTW:使用加0的技巧正好解决了当Q长度为1时的情况,否则需要加特判)

3. PowerOutage

题意: 给定一个连通的无向图, 起点为0,问从0开始遍历所有点的最短路程

解答: 不难发现,可以将问题等价位把所有的边走两遍,然后减去最后一条从0出发的最长路即可. 求最长路可以用dfs,bfs求解,当然这里如果注意到输入保证起点小于终点,可以用DP求解

SRM 145:

Match Overview: http://www.topcoder.com/stat?c=round_overview&er=5&rd=4530

Match Editorial: http://www.topcoder.com/tc?module=Static&d1=match_editorials&d2=srm145

1. DitherCounter

题意: 统计一个串中的字符出现在一个字符串数组中的次数

解答: 一遍循环

2. ExerciseMachine

题意: 有一个不能显示小数的百分比计时器,给定一个工作完成所需要的时间,问能够渐进的显示多少次整数百分比

解答: 我是找规律找出来的-_- 枚举percent (后来看到解答结果其实就是gcd(总秒数,100) - 1,真神奇)

3. VendingMachine

题意: OOXX... 太长了

解答: 模拟题,最好把rotate的过程单独拿出来写,逻辑比较清晰 

SRM 146:

Match Overview: http://www.topcoder.com/stat?c=round_overview&er=5&rd=4535

Match Editorial: http://www.topcoder.com/tc?module=Static&d1=match_editorials&d2=srm146

1. Yahtzee

题意: 统计9个数字中"出现次数*数字"最大的数

解答: 可以二重循环枚举每一个出现的数字;如果注意到9个数字只有[1,6],可以外层枚举[1,6]即可

2. RectangularGrid

题意: 统计w*h的长方形中所有的长方形(不包括正方形)的个数

解答: 推导公式: w*(w + 1)*h*(h + 1) / 4 - ∑(w - k + 1) * (h - k + 1)  k的范围在[1, min(w,h)]

3. BridgeCrossing

题意: 经典的过桥问题,见我的这篇文章《过桥问题》(范围限定在6个人以内)

解答: 方法1: 采用《过桥问题》中的线性算法解决; 方法2: 由于人数较少,可以采用bfs或者dfs对桥左边的人进行位压记忆化搜索

SRM 147:

Match Overview: http://www.topcoder.com/stat?c=round_overview&er=5&rd=4540

Match Editorial: http://www.topcoder.com/tc?module=Static&d1=match_editorials&d2=srm147

1. CCipher

题意: 将一个字符串中的每个字母向左移动shift个位数,例如shift等于1, 'B'变为'A'

解答: (c - 'A' - shift + 26) % 26 + 'A' 

2. PeopleCircle

题意: 给定循环战列的m个男士和f个女士,按照约瑟夫一样的方式数k出列,问当玩到f次的时候所有女士出列的原始站队方式

解答: 范围比较小,直接模拟

3.GoldenChain

题意: 给定若干条项链,问将这些项链串接起来需要剪下多少个长度为1的小段

解答: 贪心,优先使用较短的项链

SRM 148:

Match Overview: http://www.topcoder.com/stat?c=round_overview&er=5&rd=4545

Match Editorial: http://www.topcoder.com/tc?module=Static&d1=match_editorials&d2=srm148

1.DivDigits

题意: 计算一个十进制n中,各位上能整除n的个数

解答: 一个小技巧可以把n转换成string来处理;当然直接做也可以

2. PeopleCircle

题意: 给定一个串,并给定若干字母的轮换,求转换后的字符串

解答: 直接计算出映射串

3. MNS

题意: 给定9个数字,求出有多少种不重复的方法使得这9个数排列成3*3的矩阵,每行每列值相等

解答: next_permutation求解,最坏情况是党9个数字互不相同,才9!  这里也可以直接dfs做,注意判重

SRM 149:

Match Overview: http://www.topcoder.com/stat?c=round_overview&er=5&rd=4550

Match Editorial: http://www.topcoder.com/tc?module=Static&d1=match_editorials&d2=srm149

1. FormatAmt

题意: 格式化货币

解答: 转换成string处理比较方便. 我形成思维定势了,默认只能s += "," 其实大可以 s = "," + s或者 s = ',' + s ,这样避免了Array.Reverse

2. BigBurger

题意: 给定一组人先后到达的时间和需要花费的时间,问谁等待时间最长

解答: 保存当前时间,直接模拟

3. Pricing

题意: 将价格数组中的数划分成1组,2组,3组或者4组,每个小组的单价为本小组的最低价,求最大的总价值

解答: O(n5)可以见Editorial(方法是枚举4个小组中的最低价格,然后统计总价值);O(n4)可以枚举三个分界的价格,然后统计;O(n3)我是这么做的,

记f(i, j)表示[i,j]区间内所能获得的最大的总价值(i <= j), 那么f(i, j) = Max{(j - k + 1) * price[k]} (i <= k <= j)。特别地,当i>j的时候定义f(i,j)=0。接下来枚举三个边界i, j, k,那么结果为Max{f[0,i] + f[i + 1, j] + f[j + 1, k] + f[k + 1, n - 1]}. (0 <= i < n, i <= j < n, j <= k < n,n为价格数组的长度)。