解题报告
q1666088056
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
武汉大学第六届Eming杯程序设计竞赛初赛
昨天水了一下初赛题,感觉还不错。1.Eming直接做就可以了~~ a__b=a_b/ab; a=ab+a__b; a/=2; b=ab-a;2.Arithmetic Progression求最长的连续等差数列~~扫一遍~~注意差为0的情况(其实没必要,但是有学弟wa了无数次)3.A Easy Puz有一个棋盘,最大6x6,原创 2013-07-08 15:29:17 · 1382 阅读 · 0 评论 -
POJ2823 Sliding Window
深夜A题,单调队列。以前看过学长的博客,但是没写过,这次总算是写了一次,省赛前找下手感。单调队列就是~~队列里面都是单调的,那么找最值就很简单了~~每次向队列里面插入数据,这里注意插入的要是数值的下标,看插在哪里能让队列里面的数值保持单调,因为是找最大值或者最小值,所以从后向前扫比较好。对于本题,因为是每K个数字里面的最值,所以要保持队列里面所记录的下标之差在K范围内。#i原创 2013-10-11 02:32:22 · 864 阅读 · 0 评论 -
2013regional长沙赛区网赛E题--Travel by Bike
题意:从一个星期的某一天开始行走,工作日行走八个小时,周末行走四个小时,现给出总路程和行走速率,问走完这段路程是在星期几。题解:为了方便计算,把所有的开始的那一天推移到星期一,即在总时间上加上要往前推的时间,然后直接模拟就可以了。#include#include#include#include#include#includeusing namespace std;int原创 2013-09-23 13:52:49 · 1019 阅读 · 0 评论 -
HDOJ4749 Parade Show
题意:给一个串,再一个模式串,问串中有多少个子串和模式串的的规律相同,即相邻的相等大于小于~~如果找到了,那么用过的就不能再用了。题解:直接最朴素的匹配就可以了。#include#include#include#includeusing namespace std;int n,m,k;int a[100010],b[100010];int find(int x){原创 2013-09-22 22:00:30 · 947 阅读 · 0 评论 -
HDOJ4751 Divide Groups 模拟
倒过来做,把不认识的人分开就OK,直接模拟就行。#include#include#include#include#include#include#includeusing namespace std;vector map[110];vector vep[110];int sss[110][110];int n,used[110];int main(){ i原创 2013-09-21 17:31:50 · 727 阅读 · 0 评论 -
hdoj4750 Count The Pairs
把边和询问都按权值排序,然后反过来做,每次找一条最小的边,如果边的两点不在同一个集合,那么他们之间能产生的不能给出的方案数就是集合元素个数之积,然后把这两个集合合并。对于每个询问,把总的方案数减去比它小的不能给出的方案数之和就可以了。#include#include#include#include#include#include#includeusing na原创 2013-09-21 18:15:03 · 948 阅读 · 0 评论 -
Caocao's Bridges HDOJ4738
题目大意:曹操建了一个作战系统,有N个岛,M座桥,如果任意两个岛能通过若干座桥相连,则作战优势很大,每座桥上有K个士兵把守,周瑜有一个炸药包,必须派不少于K个士兵去攻击,问他至少要派多少个士兵。 题解:就是求无向图的最小桥,但要注意当K=0的时候周瑜还是要派一个人去运炸药。还有就是当图本来就不连通,那么就不用派兵过去了(这里可以用并查集)。还有就是重边不会影响算法,因为只要找最小的那原创 2013-09-17 12:14:02 · 860 阅读 · 0 评论 -
2013 ACM/ICPC Asia Regional Online —— Warmup 1002
在根节点有一个影响范围为D的笼子,问有多少个点不在这个笼子范围内#include#include#include#include#includeusing namespace std;struct node{ int x,y,next;}edge[200010];int n,d,T,p,ans;int h[100010],used[100010],dis原创 2013-09-08 17:20:10 · 970 阅读 · 0 评论 -
The 2011 Nordic Collegiate Programming Contest October 01, 2011
暑期组队赛第一场,嗯,比赛的时候数据很坑爹,全部是样例,结果大家做得很开心。然后弄到数据在自己的OJ上重开,没人欢喜都是愁啊。Problem A Robots on a grid一个N*N(1这个题分两个阶段,第一阶段问用方法一有多少种方法,经验告诉我们这里用记忆化数组转移路径条数就可以做了。方程为:dp[ i ] [ j ]=dp[ i-1 ] [ j ]+dp[ i原创 2013-08-23 16:41:40 · 787 阅读 · 0 评论 -
树状数组,HDOJ2494
Ping pong几个打乒乓球的汉子住在一条直线上,他们每个人都有一个rank值,现在他们要比赛,就得选一个人当裁判,裁判只能住在比赛两个人的房子之间,而且rank值也必须在比赛两个人之间。现在问一共能打多少场比赛~~直观就是枚举裁判的位置,那么ans=∑(L(i)*R(i)+(i-(L(i))*(N-i-1-(R(i)))))。也就是左边比他低的乘以右边比他高的 和原创 2013-07-08 16:06:19 · 828 阅读 · 0 评论 -
HDU 1520 Anniversary party 树形DP
有一个party,为了避免不欢乐,员工与他的直接上司不能同时参加,现给你员工之间的关系图,还有每个员工参加party的欢乐值,问你得到的最大欢乐值是多少。如果贪心,那么策略是······想着想着就变成了DP,对于每一个节点,有取与不取两种状态,那么转移方程是:dp[ i ][ 0 ]=sum{ max { dp[ j ] [ 0 ] , dp [ j ] [ 1 ] } }//如果不取这个原创 2013-08-23 10:12:30 · 827 阅读 · 0 评论 -
COCI 2012/2013 6th round, March 9th, 2013
problem A BAKA旧式电话,摇轮子的,每个数字上都有三到四个字母(和手机上九宫格键盘一样),他每次摇一个字母的用时为字母所在键上数字加一,现在给定一个大写英文字符串,问你摇完要多久。模拟就好了,注意7和9上有四个字母~~problem B SUME给你一个矩阵,和一个位置数列a,左斜对角线上的数为0,其余S[i,j]=a[i]+a[j],已知矩阵,求数列。先求原创 2013-08-20 17:36:00 · 1485 阅读 · 0 评论 -
Codeforces Round #192 (Div. 2)
据说这是水题~~三点二十做到四点四十水了三个题,后面的题目真长!A。Cakeministor一个N*M的蛋糕,里面有几个毒草莓,现在这个人一下可以吃一行或者一列,但是不能吃到毒草莓,问最多可以吃掉多少格子的蛋糕。只要算出有多少行和列是没有毒草莓的,若分别为A,B,那么答案就是A*M+B*N-A*B。B。Road Construction有N个城市,彼此之间都没有道路,现原创 2013-08-02 18:18:24 · 822 阅读 · 0 评论 -
HUST2012校赛,USC2013新队员训练第二场
由于前天熬夜,昨天开赛前两个小时没点动静,吐槽下题目,真长!Problem A. Triangles给你N个点M条边(N首先,若点A,B,C共线,AB,BC有边,那么AC也为有边,我们要把这些情况都预处理掉。因为最多200个点,这里可以用到floyd思想,枚举中间点K,看I,J,K是否满足情况,满足连上IJ边。接下来就好做了,直接枚举三个点看是否能构成三角形~~#inclu原创 2013-07-10 13:07:10 · 1050 阅读 · 2 评论 -
POJ2449A*求K短路
暑期培训,胖子交给我一个艰巨的任务,就是讲A*,自己弄懂还是蛮简单,但是要讲出去谈何容易,无奈我只能再拿起来重新阅读。一、现实举例1.我们玩游戏时,经常点击一下鼠标,游戏角色就会自动按照最短路径走向目的地,这需要搜索最短路径,这都是游戏程序帮我们完成了。游戏程序是如何做到高效完成的呢?2.“众里寻他千百度,暮然回首,那人却在灯火阑珊处”,要是我们一开始便知道伊人会在灯火阑珊处,便开始寻原创 2012-07-03 18:08:58 · 1287 阅读 · 5 评论 -
HDOJ1003 考前水一水
#include#include#include#includeusing namespace std;int main(){ int tt,t,n,num,i,j,k,l,r,tl; scanf("%d",&t); tt=t; while (t--) { k=-1000;j=0;l=r=0;tl=0; s原创 2013-05-09 21:23:48 · 917 阅读 · 0 评论 -
ZZ的搬砖难题 ACMORE1059 存边的网络流模版
#include#include#include#include#include#include#include#includeusing namespace std;struct node{ int y,v,nexts,re;}ed[500];map mymap;int h[500],i,j,k,s,e,x,y,v,n,pre[300],ans,p,visi原创 2013-05-06 15:43:05 · 812 阅读 · 0 评论 -
阅读理解题,各种字典序,字符串和字符数组库函数
给定N个int24的正整数,求出所有能组成直角三角形的组合,并按组合后形成的字符串输出。sprintf(字符数组,“输出模式”,对应的内容);字符数组转换成字符串#include #include using namespace std;int main(){ char a[10]="aasdbbbba"; string s(&a[0],&a[strlen(a)]); c原创 2013-04-21 21:10:57 · 850 阅读 · 0 评论 -
POJ1699 校赛D题
嗯,看到就想到爆搜,但是我没参加~悲剧~在POJ上过了,uscOJ上却TLE,嗯,我会尝试更高端的方法。爆搜很简单,用DFS写出全排列,再将串的位置一一对应就A了,代码如下#include#include#include#includeusing namespace std;int t,n,ans,istrue[11],p[11],cmp[11][11];char a[11原创 2013-04-17 16:35:48 · 1211 阅读 · 0 评论 -
HDOJ 4293暨The 37th ACM/ICPC Asia Regional ChengDu Site Online Contest - F Groups
题目大意:有N个人,分成若干个group,然后这些人站成一排(同一个group的人站在一起),依次反馈信息:在自己这个group前面有ai人,之后有bi人,但是有人撒谎,求最大的真话数量。DP,dp[j]表示到第j个人的最多真话数。代码如下(还可以优化)#include#include#include#includeusing namespace std;int dp[5原创 2012-09-18 10:58:57 · 1194 阅读 · 0 评论 -
HDU3809 迭代法结二元二次方程组
题目的意思就是:x1=x-sqrt(y);y1=y-sqrt(x);这里我学会了用迭代法结二元二次方程组。易知:x>x1&&y>y1 ,又把方程换成x=x1+sqrt(y),y=y1+sqrt(x);我们可以付初值x=x1,y=y1,将2试带入1试得x=x1+sqrt(y1+sqrt(x1));显然求得的x是要小于解值的,然后依次进行迭代,使得得到的x和y越来越接近解值,控制好精度原创 2012-08-23 17:03:06 · 2570 阅读 · 1 评论 -
POJ1511 SPFA模版 用边存的最短路
题意:给定一个有向图,求往返的最小距离。很简单,正向求一次最短路,再反向求一次最短路,结果相加就好了。但是题目给定的数据比较大,有1000000个点,用点存边肯定要爆内存,所以要以边存点。嗯,下面开始上代码了:#include#includeusing namespace std;const int maxn=1000005,inf=1000000005;struct原创 2012-09-01 20:11:45 · 630 阅读 · 0 评论 -
poj1066滑雪
好了,指直接上代码#include#includeint n,m,mx;int map[101][101],a[101][101]; bool istrue(int i,int j){ return (i>=0)&&(j>=0)&&(i<n)&&(j<m); }int maxs(int i,int j){ if (i>=j) return i原创 2012-09-01 19:46:03 · 1004 阅读 · 0 评论 -
POJ2516--Minimum Cost最小费用最大流
前向看了下网络流,再听了vivi的讲解,对最小费用最大流也算有了初步的了解。可以理解为:在一个网络流中,每条边都有一定的代价,可正可负可为零。怎样才能在耗费代价最小的情况下求出最大流?有两种求法。一种途径是先用最大流算法算出最大流,然后根据边费用,检查是否有可能在流量平衡的前提下通过调整边流量,使总费用得以减少?只要有这个可能,就进行这样的调整。调整后,得到一个新的最大流。另一种是先通原创 2012-07-06 12:38:33 · 1066 阅读 · 0 评论 -
poj1201差分约束
题目大意:给定一些区间[ai,bi]以及一个数量wi,找到一个几何V,要求区间[ai,bi]在集合V中至少包含wi个元素,求V中至少应包含多少个元素。题解:嗯,这个题目只要把每个区间的长度求出来然后减去重合的部分就可以了,但是今天学习了一种新的算法——拆分约束,解题很方便。给定dis[i]表示第I个点到源点的距离,根据已知条件有:dis[ai]dis[i+1]dis[i原创 2012-09-01 14:41:02 · 497 阅读 · 0 评论 -
HDOJ2830 Matrix Swapping II超水的一道不知道什么题
今天段学妹说在做DP题,然后我就问她讨了一道题,结果,这哪里是DP了···题目大意:给定一个矩阵,矩阵由0、1构成,现可以移动任意列,问移动后所构成矩阵中由1构成的子矩阵的最大的面积。分析:首先我们来看一个简单的例子:110101010001那么经过移动后,形成了011100110001由1构成的自矩阵的最大面积显然就是4了,如上图红色部分那么,原创 2012-08-02 18:41:11 · 2445 阅读 · 0 评论 -
POJ1157解题报告
题目大意:F行V列数,每行取一个数--a[i][j],并且j为递增,问这样取才能使得这F个数之和最大。题意分析:很容易就想到了DP:状态转移方程为f[i][j]=max{f[i-1][j-1]+a[i][j],a[i][j-1]}。代码:#includeusing namespace std;int main(){ int f,v,m=-51; in原创 2012-02-23 19:55:17 · 643 阅读 · 0 评论
分享