- 博客(9)
- 收藏
- 关注
原创 zoj 3353 Chess Board 高斯消元
高斯消元其本应用:这题是要枚举自由元的;#include#include#include#define M 250using namespace std;int mat[M][M], ans[M], rem[M];int id[20][20], num;int n, m;int dx[8] = {-1,-1,-1,0,0,1,1,1};int dy[8] = {
2012-09-28 18:42:43 889
原创 hdu 4419 Colourful Rectangle (2012杭州区域赛 1010 )
扫描 + 线段树;首先离散化y, 节点用二进制保存7种颜色的个数, #include#include#include#includeusing namespace std;#define M 20010struct Line{ int up, down, x, left, col; Line(){} Line( int a, int b, int c, in
2012-09-24 10:43:13 654
原创 poj1568 Find the Winning Move
题意:给出一个棋盘,x为先手,问是否有必胜策略,如果有输出第一步的坐标(如果有多种必胜策略,输出字典序最小);对博弈问题生疏的可以搜一下“极大极小过程”;#includeusing namespace std;#define M 600000int now[4][4];char g[5][5];int bit[20], d[20], e, WW;int vis
2012-09-19 08:58:42 523
原创 poj 2168 Joke with Turtles
hdu 4293 的加强版, 区间dp#include#include#include#include#includeusing namespace std;#define M 1210struct Node{ int x, y; int n; vector v; // 记录区间内有哪些Turtles; void init(){ n = 0;
2012-09-18 17:32:48 439
原创 hdu 4293 Groups (2012 ACM/ICPC Asia Regional Chengdu Online)
题目可以转化为: ,每一个人的回答都可以确定他是处于队列的哪个区间, 有一个简化版的问题:在一个数轴上最多有多少个不相交的区间, 而这一题的每个区间还容纳不同的人数, 求不相连的区间的人数和最大 。扫一遍dp就过了;值得注意的是, 每个区间人数不能超过它的长度: #include#include#include#include#define M 1010using
2012-09-16 22:07:31 721 2
原创 hdu 4288 Coder (2012 ACM/ICPC Asia Regional Chengdu Online)
题目一上来就是线段树树, 队友旻健当场A了, 这是我赛后写的。首先要把x离散化, 就是把需要要操作到的x存起来, 排序, 计算出每个x排在第几位置。 线段树节点存的是:1.num[p]:当前区间有多少个位置是有值的;2.sum[i][p]: 当前区间mod 5 余i 的和;转移方程 for( int i = 0; i 5; i++ ){ int ex =
2012-09-16 21:24:08 475
原创 hdu 4282 A very hard mathematic problem (2012 天津网络赛 1005)
题意: X^z + Y^z + X*Y*z = M 有多少不同解, 枚举 z 和X 然后二分 Y ,复杂度看起来很高, 可以因为涉及到了幂, 枚举数一下子就降了很多;#include#includeusing namespace std;#define M 50000long long x[M];int main(){ long long K; int z, ans,
2012-09-10 21:06:00 1351
原创 hdu 4284 Travel (2012 天津网络赛 1007 )
这题当场没有做出来, 看了芳姐代码后面还弄出了个超时,spfa 加位压缩的bfs过的;先spfa算出目标点两两之间的最短距离;bfs搜的是dp[i][j]; 当前所在点为i, 状态是j, 2进制j的第x位为1表示第x个目标点已经购买过了通行证;复杂度O(15*(2^15))+O(15*15*spfa());险过#include#include#include#defi
2012-09-10 16:00:27 1230
原创 hdu 4283 You Are the One (2012 ACM/ICPC Asia Regional Tianjin Online 1006 )
一开始的想法是贪心, 是错的。 最后是dp做的dp[x][y]表示第x位到第y位所需要的花费, 然后是转移方程 dp到x位的时候会有3个决策1. x最先出栈;2.x最后出栈;3.先有i个出栈,然后x出栈,到剩下的出栈;/*tmp = min( tmp, a[x]*i + dfs( x+1, x+i ) + dfs( x+i+1, y ) + (i+1)*(s[y]-s[x+i])
2012-09-10 14:04:13 746
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人