- 博客(15)
- 收藏
- 关注
原创 USACO Transformations
~~~题目链接~~~ 题目大意: 一块N x N(1<=N<=10)正方形的黑白瓦片的图案要被转换成新的正方形图案。写一个程序来找出将原始 图案按照以下列转换方法转换成新图案的最小方式: #1:转90度:图案按顺时针转90度。 #2:转180度:图案按顺时针转180度。 #3:转270度:图案按顺时针转270度。 #4:反射:图案在水平方向翻转(形成原图案的镜像)。 #5:
2012-11-30 19:14:26 565
原创 HDOJ 1003 Max Sum
~~~题目链接~~~ 思路:前几个数的连续和加上当前这个数, 如果比当前这个数小就从当前这个位开锁重新记区间,否则加入当前区间,注意有负数, 不能用连续的几个数和小于0做结束判断 code: #include #include using namespace std; int main() { int i = 0, j = 0, t = 0, x = 0,
2012-11-30 19:12:18 443
原创 POJ 1018 Communication System (枚举)
~~~题目链接~~~ 题目大意:现有n个通讯点, 要从n家通讯商那,每个通讯商中选出一个设备, 要求所选设备的带宽中最小的做为最小带宽B, 总价格为P, 现在要求求出B/P的值最大 思路:依次枚举B能到的值 code: #include #include #define inf 0x7fffffff using namespace std; stru
2012-11-30 19:11:41 435
原创 POJ 1050 To the Max
~~~题目链接~~~ 题目大意:现给出一个矩阵, 现在求这个矩阵中子矩阵最大和是多少 思路:子矩阵是连续的一块, 可以把它看成一个整体, 如矩阵第1第2行相加合并后成为单独的一行, 对这行求最大连续和就是求这2行矩阵的子矩阵和最大 code: #include #include #define inf -0x7fffffff using namespace
2012-11-30 19:07:48 448
原创 POJ 1088 滑雪
~~~题目链接~~~ 题目大意:给出一个n*m的矩阵, 要求求它的最大递减序列的长度, 序列的路径为在矩阵中连续的一条路线 思路:记忆化搜索, DP #include #include using namespace std; int n = 0, m = 0, map[102][102], num[102][102]; int cur = 0,
2012-11-30 18:59:14 479
原创 POJ 1125 Stockbroker Grapevine
~~~题目链接~~~ 题目大意: 思路:先用floyd求出任意两点间的最短距离, 在依次枚举每个点为起点的时间, 选时间最小的点 #include #include #define inf 100000000 using namespace std; int n = 0, m = 0, map[102][102]; void floyd() {
2012-11-30 18:57:59 483
原创 POJ 2305 Basic remains (大数余)
~~~题目链接~~~ code: #include #include #include #include using namespace std; int a = 0, b = 0, k = 0, x = 0, y = 0; void translate1()//把k进制的数转化为10进制 { int cnt = 0; x = y = 0; whil
2012-11-19 22:47:54 853 1
原创 HDOJ 4228 Flooring Tiles (反素数)
~~~题目链接~~~ 题目大意:现有若干面积相同的小正方行, 给出n种面积相同的长方行, 问用最少用多少个正方行能恰好拼出n种长方行, 如n = 2, 这时最少用4个正方行可拼出2中长方形, 分别是1*4, 和2*2面积相同的长方形。 定义 对于任何正整数x,其约数的个数记做g(x).例如g(1)=1,g(6)=4.如果某个正整数x满足:对于任意i(0
2012-11-17 19:25:49 666
原创 vijos P1033 整数分解(版本2)
~~~题目链接~~~ 思路: 3 = 1+2 4 = 2+2 5 = 2+3 6 = 3+3 7 = 2+2+3 8 = 2+3+3 9 = 3+3+3 10 = 2+2+3+3 ..........通过分解发现把一个数分解成尽可能多的2与3就为最大值。 code: #include #include #include using namespace std;
2012-11-08 20:15:06 722
原创 vijos p1042 捕风捉影
~~~题目链接~~~ 思路:这的上限为100000000, 直接对每个数判断要超时, 后来打表发现了最多到10000000有数, 这之后的数都不符合要求。所以上限调整为10000000 code: #include #include #define N 10000002 using namespace std; int is_prime(int x) { int
2012-11-07 23:17:51 706
原创 POJ 3468 A Simple Problem with Integers
~~~题目链接~~~ 思路:线段树, 更新区间求区间。 code: #include #include #include #define N 100002 //typedef __int64_t __int64; using namespace std; int n = 0, q = 0; __int64 t[4*N], cv[4*N]; void build
2012-11-07 17:20:19 449
原创 HDOJ 1698 Just a Hook
~~~题目链接~~~ 题目大意:现给出一个区间, 刚开始时区间中的每个点对应的值为1, 现在更新q次, 把x-y区间的点的值全跟新为z, 现在求出整个区间点的值的和。 思路:线段树, 跟新每个区间时只更新到覆盖的区间, 下回更新时再通过cv【】数组往下更新。 code: #include #include #define N 100002 using names
2012-11-06 21:25:55 491
原创 POJ 2828 Buy Tickets
~~~题目链接~~~ 题目大意:有一群人要插队, 现在给出组要插队的人要插到第几个人后, 和该人对应的编号, 求最后这个队列从头到尾所对应的编号。 思路:一开始用线性表和链表试了下都超时了, 无赖想不出怎么用线段树, 可耻的看了解题报告, 换一个思路, 从最后一个人往回推,就有思路了。 code: #include #define N 200002 u
2012-11-03 20:17:17 689
原创 HDOJ 1394 Minimum Inversion Number (逆序数对)
~~~题目链接~~~ 题目大意:给出一个序列, 要求求出这个序列和他经过环移后, 逆序数对中最小的一个。 思路;用线段树求逆序数, 每当加入一个数x时, 就求x~n-1有多少个数出现过, 出现多少就是多少逆序数对。 求出一组序列后, 环移后的逆序数对可以用公式求出, 环移用STL实现 code: #include #include #include #def
2012-11-03 15:46:50 502
原创 HDOJ 2795 Billboard
~~~题目链接~~~ 题目大意:在一个高为h, 宽为w的面板上贴上n张海报, 每个海报的高都为1, 每张海报能尽可能的贴在高度最高的地方, 当同一个高度有多个地方可以贴海报时,贴在最左边, 现在求每个海报能贴在哪个高度。 思路:用线段树进行2分区间, 把高度看成区间。区间的高度为最小的(h, n), 注意n == 1时; code: #include #defin
2012-11-03 14:55:08 502
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人