- 浏览: 308717 次
- 性别:
- 来自: 珠海
文章分类
最新评论
-
xialluyouyue:
Ubuntu下搭建nodejs+express+mongodb环境简单教程 -
k317544294:
Good 陈迪峰
(开源游戏) DOTA音效版 俄罗斯方块 -
基德KID.1412:
su1216 写道竖线代表或者,不代表替换
对哦~ 谢谢你的提 ...
正则表达式中特殊字符的用法(收藏) -
su1216:
竖线代表或者,不代表替换
正则表达式中特殊字符的用法(收藏) -
qiqijianglu:
基德KID.1412 写道qiqijianglu 写道基德KI ...
【高斯消元 求期望】HDU 4418 Time travel
KIDx 的解题报告
http://acm.hdu.edu.cn/listproblem.php?vol=31
4001:直接一个最长递增子序列模板,注意数据范围就可以了
4002:猥琐打表找规律+大数乘法,Java暴力水过
4004:二分枚举答案+暴力检验
4006:优先队列暴力水过
4007:最暴力的解法,相信没有人能够破我记录----史上最慢
先优先sort-x坐标,再枚举2条垂直于x轴的扫描线,再从p数组中筛选出在这2条扫描线中的x个点入tp数组,然后优先sort-y坐标,再枚举2条垂直于y轴的扫描线,再从tp数组中筛选出在这2条扫描线中的tmp个点,就是4条扫描线所围成的正方形里的点的个数
http://acm.hdu.edu.cn/listproblem.php?vol=31
4001:直接一个最长递增子序列模板,注意数据范围就可以了
#include <iostream> #include <algorithm> using namespace std; #define L __int64 #define M 1005 struct block{ L a, b, c, d; }x[M]; L dp[M]; bool cmp (block x, block y) { if (x.a == y.a) { if (x.b == y.b) return x.d > y.d; return x.b < y.b; } return x.a < y.a; } int main() { int n, i, j; while (scanf ("%d", &n), n) { for (i = 0; i < n; i++) { scanf ("%I64d%I64d%I64d%I64d", &x[i].a, &x[i].b, &x[i].c, &x[i].d); if (x[i].a < x[i].b) x[i].a ^= x[i].b, x[i].b ^= x[i].a, x[i].a ^= x[i].b; } sort (x, x+n, cmp); for (i = 0; i < n; i++) dp[i] = x[i].c; for (i = 0; i < n; i++) { for (j = i + 1; j < n; j++) { if (x[j].d == 0 && x[j].a >= x[i].a && x[j].b >= x[i].b || x[j].d == 1 && x[j].a >= x[i].a && x[j].b >= x[i].b && x[j].a*x[j].b > x[i].a*x[i].b || x[j].d == 2 && x[j].a > x[i].a && x[j].b > x[i].b) if (dp[j] < dp[i]+x[j].c) dp[j] = dp[i]+x[j].c; } } printf ("%I64d\n", *max_element (dp, dp+n)); } return 0; }
4002:猥琐打表找规律+大数乘法,Java暴力水过
import java.util.*; import java.io.*; import java.math.*; public class Main { static public void main(String[] args) throws IOException { Scanner cin = new Scanner(new BufferedInputStream(System.in)); BigInteger prime[] = new BigInteger[60], tp, n; int hash[] = new int[300], k, i, j, num, t; for (i = 0; i < 300; i++) hash[i] = 1; k = 0; for (i = 2; i < 242; i++) { if (hash[i] == 1) { prime[k] = BigInteger.valueOf(i); k++; for (j = i * 2; j < 242; j += i) hash[j] = 0; } } for (i = 1; i < k; i++) prime[i] = prime[i].multiply(prime[i-1]); t = cin.nextInt(); while (true) { if (t == 0) break; t--; n = cin.nextBigInteger(); for (i = 0; i < k; i++) if (n.compareTo(prime[i]) == -1) break; System.out.println(prime[i-1]); } } }
4004:二分枚举答案+暴力检验
#include <iostream> #include <algorithm> using namespace std; #define M 500005 int x[M], v[M]; int main() { int L, n, m, i, k, maxs, l, r, mid, num, tp; while (~scanf ("%d%d%d", &L, &n, &m)) { x[0] = 0; for (i = 1; i <= n; i++) scanf ("%d", x+i); sort (x, x+n+1); x[n+1] = L; k = maxs = 0; for (i = 1; i < n + 2; i++) { v[k++] = x[i] - x[i-1]; if (v[k-1] > maxs) maxs = v[k-1]; } l = maxs, r = L; while (l < r) { tp = num = 0; mid = (l + r) / 2; for (i = 0; i < k; i++) { if (tp + v[i] > mid) num++, tp = v[i]; else tp += v[i]; } num++; if (num <= m) r = mid; else l = mid + 1; } printf ("%d\n", r); } return 0; }
4006:优先队列暴力水过
#include <iostream> #include <queue> using namespace std; struct Int{ int v; friend bool operator < (Int a, Int b) { return a.v > b.v; } }; int main() { Int tp; int n, x, k; char ch[3]; while (~scanf ("%d%d", &n, &k)) { priority_queue<Int> q; while (n--) { scanf ("%s", ch); if (ch[0] == 'Q') { while (q.size() > k) q.pop(); printf ("%d\n", q.top().v); } else { scanf ("%d", &x); tp.v = x; q.push (tp); } } } return 0; }
4007:最暴力的解法,相信没有人能够破我记录----史上最慢
先优先sort-x坐标,再枚举2条垂直于x轴的扫描线,再从p数组中筛选出在这2条扫描线中的x个点入tp数组,然后优先sort-y坐标,再枚举2条垂直于y轴的扫描线,再从tp数组中筛选出在这2条扫描线中的tmp个点,就是4条扫描线所围成的正方形里的点的个数
#include <iostream> #include <algorithm> using namespace std; #define M 1005 struct point{ int x, y; }p[M], tp[M]; bool cmp (point a, point b) { if (a.x == b.x) return a.y < b.y; return a.x < b.x; } bool cmp2 (point a, point b) { if (a.y == b.y) return a.x < b.x; return a.y < b.y; } int main() { int n, R, i, j, k, lx, rx, ly, ry, x, maxs, tmp; while (~scanf ("%d%d", &n, &R)) { for (i = 0; i < n; i++) scanf ("%d%d", &p[i].x, &p[i].y); sort (p, p+n, cmp); maxs = 0; for (i = 0; i < n; i++) { rx = p[i].x; lx = rx - R; x = 0; for (j = 0; j < n; j++) { if (p[j].x > rx) break; if (p[j].x >= lx && p[j].x <= rx) tp[x++] = p[j]; } sort (tp, tp+x, cmp2); for (j = 0; j < x; j++) { ry = tp[j].y; ly = ry - R; tmp = 0; for (k = 0; k < x; k++) { if (tp[k].y > ry) break; if (tp[k].y >= ly && tp[k].y <= ry) tmp++; } if (tmp > maxs) maxs = tmp; } } printf ("%d\n", maxs); } return 0; }
发表评论
-
HDU 4746 Mophues
2013-10-01 17:29 2975莫比乌斯函数完整定义的通俗表达: 1)莫比乌斯函数μ(n ... -
HDU 3221 Brute-force Algorithm
2013-05-04 13:31 1660/* * [题意] * 略 * [解题方法] ... -
UVA 10168 Summation of Four Primes
2013-02-14 21:48 1784/* * [题意] * 将一个数拆成四个素数的和, ... -
UVA 10139 Factovisors
2013-02-09 22:56 2116/* * [题意] * 判断n!是否能被m整除(n ... -
UVA 10104 Euclid Problem
2013-02-09 22:50 1476新手请进:扩展欧几里德入门 /* * ... -
UVA 10006 Carmichael Numbers
2013-02-08 08:27 2423/* * [题意] * 输入n,若满足如下两个条件 ... -
UVA 10110 Light, more light
2013-02-08 08:23 1402/* * [题意本质] * 输入n,如果n的约 ... -
《挑战编程》第11章-动态规划
2013-02-02 12:46 1467UVa 题号: 10131 Is Bigger Smart ... -
UVA 10201 Adventures in Moving - Part IV
2013-02-01 17:40 1659// [解题方法] // dp[i][j]表示到达第 ... -
UVA 10271 Chopsticks
2013-02-01 11:47 2199// [解题方法] // 将筷子按长度从大到小排序 ... -
UVA 10261 Ferry Loading
2013-01-31 16:34 3093// [题意] // n辆车按顺序安排在一个渡口的左 ... -
UVA 10003 Cutting Sticks
2013-01-31 15:35 1914// [解题方法] // 记忆化搜索(递归,子问题的 ... -
UVA 116 Unidirectional TSP
2013-01-30 09:53 1652// [解题方法] // 记忆化搜索(递归,子问题的 ... -
UVA 10154 Weights and Measures
2013-01-30 09:40 1959// 乌龟塔问题:每个乌龟有力量和重量,求最多能堆多少乌 ... -
UVA 10069 Distinct Subsequences
2013-01-29 16:23 1421// [解题方法] // dp[i][j]表示Z串的 ... -
UVA 10131 Is Bigger Smarter?
2013-01-29 16:01 1811// [解题方法] // 对大象增加编号属性i,以免 ... -
hdu 4170 Supply Mission
2012-09-22 10:03 1206KIDx的解题报告 ... -
UVA 10202 + HDU 1270 小希的数表
2012-09-15 20:01 2696KIDx的解题报告 题目链接:http://ac ... -
【polya+Euler】HDU 2239 机器人的项链
2012-08-20 13:06 1422KIDx的解题报告 题目 ... -
HDU 1979 Fill the blanks
2012-08-20 12:40 1076KIDx的解题报告 题目链接:http://ac ...
相关推荐
2011ACM黑龙江大学校赛2011ACM黑龙江大学校赛2011ACM黑龙江大学校赛2011ACM黑龙江大学校赛2011ACM黑龙江大学校赛2011ACM黑龙江大学校赛
第34届ACM/ICPC亚洲区预选赛合肥赛区网络预选赛试题
2015年沈阳acm-icpc区域赛B题代码,自己练手,神牛勿喷
ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM...
2010ACM选拔赛2010ACM选拔赛2010ACM选拔赛2010ACM选拔赛2010ACM选拔赛
浙江2020年ACM省赛题目,第十七届省赛ACM比赛试题
里面介绍了ACM编程里面的很多例题。,想学习的可以自己做下题
15.6 应用…………………………………………………………………………………………………………227 〖案例l〗果园篱笆………………………………………………………………227 〖案例2〗巨人和鬼………………...
2009年ACM程序设计竞赛选拔赛试题。
北大ACM题库(3000多道题) html格式 想成为ACM高手?谁能做出1000道以上的那就绝对是高手了!
浙江省2018年ACM省赛题目,15届ACM省赛题目
ACM函数整理_ACM模板……………………………………………………
ACM比赛试题 对扩充算法思想和提高编程能力有很大帮助 真正的比赛试题
ACM速刷水题,分类汇总,附答案。
09年ACM区域赛 网络赛 武汉大学 包括题目(PDF)、测试数据和标程
里面有20道中文ACM题 和10道英文题,只要做中文的就好了
这是一位ACM大牛写的《2008ACM浙江省赛解题报告》,希望对ACM爱好者有帮助。
好的几道练习题ACM几道经典习题。希望初学者能够鸟他一下。大牛自动飘过