
HDU
南宫嘉俊
学生
展开
-
HDU-5417Victor and Machine
//推公式:每次开启都有p=x/w+1个小球弹出,第n个小球弹出的时刻是(n-1)/p*(x+y)+(n-1)%p*w;AC代码:#include#include#includeusing namespace std;int main(){ int x,y,w,n; while(scanf("%d%d%d%d",&x,&y,&w,&n)!=EOF) {原创 2015-08-22 22:32:43 · 280 阅读 · 0 评论 -
HDU-1166敌兵布阵
//一维数状数组模板题AC代码:#include#include#define N 50005int a[N];char s[10];int n;int lower_bit(int i){ return i&(-i);}void add(int i,int v){ while(in) { a[i]+=v; i+原创 2015-08-20 20:43:01 · 291 阅读 · 0 评论 -
HDU -1541-stars
//题意:给定一些点,求在这点左下方的点的个数;思路:此题可以用二维树状数组做,但仔细看题,可以得到给出的y是从小到大的,这样,只需对x进行操作,进而转换为在x左边的点有多少个AC代码:#include#include#define N 32005int a[N];int b[N];int n;int lower_bit(int i){原创 2015-08-22 09:36:39 · 287 阅读 · 0 评论 -
HDU 1394 Minimum Inversion Number
//线段树求逆序数,解题报告在这里:http://wenku.baidu.com/view/6e02b7492e3f5727a5e9623f.htmlAC代码:#include#include#includeusing namespace std;#define lson l,m,rt1#define rson m+1,r,rt1|1const int MAX=50原创 2015-08-25 17:04:47 · 238 阅读 · 0 评论 -
HDU 2795 Billboard
//思路:每次找到最大值的位子,然后减去L//AC代码:#include#include#includeusing namespace std;#define lson l,m,rt1#define rson m+1,r,rt1|1const int MAX=200005;int sum[MAX2];int h,w,n;void pushup(int rt){原创 2015-08-25 19:44:14 · 275 阅读 · 0 评论 -
HDU 1698 Just a Hook
//题意:有t组测试数据,n为钩子长度(1AC代码:#include#include#includeusing namespace std;#define lson l,m,rt1#define rson m+1,r,rt1|1const int MAX=100005;int sum[MAX2];int add[MAX2];void pushup(int rt原创 2015-08-26 16:39:57 · 259 阅读 · 0 评论 -
HUD-4217-Data Structure?
//题意就是给你1-n的数,叫你每次删除第K小的数,求删除这些数的和//AC代码:#include#include#includeusing namespace std;#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define LL long longconst int MAX=262145;int sum[MA原创 2015-08-26 20:42:26 · 245 阅读 · 0 评论 -
HDU 1863 畅通工程
//第一次做最小生成树的题目,感觉这题用克鲁斯卡尔算法还行//AC代码:#include#include#includeusing namespace std;struct node{ int w,v,c;} t[20000];int cmp(node p,node q){ return p.cq.c;}int n,m;int p[20000];原创 2015-08-27 22:22:49 · 292 阅读 · 0 评论 -
POJ -1258 Agri-Net
AC代码:#include#include#includeusing namespace std;#define N 200005int p[N];int n;int L;struct node{ int w,v,c;}t[N];int cmp(node p,node q){ return p.cq.c;}int find(int k){原创 2015-08-28 14:37:12 · 299 阅读 · 0 评论 -
POJ 1751 Highways
//技巧:当G++超时时,用C++,当C++超时,用G++,二者换着试试,说不定就AC了//AC代码(G++):#include#include#includeusing namespace std;#define N 800int p[N];int n;int L;struct node{ int x,y,w,v,c;}t[N*N],T[N*N];原创 2015-08-28 22:58:55 · 285 阅读 · 0 评论 -
HDU-1875-畅通工程再续
//很简单的克鲁斯卡尔算法,注意细节就容易AC了//AC代码:#include#include#include#includeusing namespace std;#define N 10000005int p[N];struct node{ int x,y,z,z1,z2; double c;} t[N],T[N];int n,cnt;int原创 2015-08-28 08:43:40 · 520 阅读 · 0 评论 -
HDU -1879-继续畅通工程
AC代码:#include#include#includeusing namespace std;#define N 10005int n,L;struct node{ int w,v,c,x;}t[N],q[N];int p[N];int cnt;int cmp(node p,node q){ return p.cq.c;}int find(i原创 2015-08-28 08:56:22 · 473 阅读 · 0 评论 -
HDU 1301 Jungle Roads
//最小生成树水题//AC代码:#include#include#includeusing namespace std;#define N 20000char s1[8],s2[8];int L,p[N],n;struct node{ int w,v,c;}t[N];int cmp(node p,node q){ return p.cq.c原创 2015-08-28 11:48:42 · 366 阅读 · 0 评论 -
HDU 3790 最短路径问题
//用dij方法做,最简单。注意:可能有重边的情况#include#include#includeusing namespace std;#define N 1005const int inf=1<<29;int vis[N], w[N][N],c[N][N];int d[N],f[N];int n,m;void dij(int st,int ed){ int i,原创 2015-08-31 20:47:39 · 389 阅读 · 0 评论 -
HDU 1596 find the safest road
用floyd水之,注意格式问题#include#include#includeusing namespace std;#define N 1005double w[N][N];int main(){ int n; while(scanf("%d",&n)!=EOF) { int i,j,k; double v;原创 2015-09-02 09:17:15 · 248 阅读 · 0 评论 -
HDU 2112 HDU Today
//题意就不说了,题也是个水题,但是值得注意的就是要清空//#include#include#include#includeusing namespace std;#includemapa;const int inf=1<<29;char s1[151],s2[151];char r1[151],r2[151];int w[155][155],vis[155],d[155]原创 2015-09-01 11:40:35 · 242 阅读 · 0 评论 -
HDU 2680 Choose the best route
题意:求几个点到到终点那个的距离最小,输出该值,若不存在,输出-1.注意:这题连个相同的点的距离为无限大。#include#include#includeusing namespace std;#define N 1005const int inf=1<<29;int vis[N],w[N][N],d[N];int n,m,s;void dij(int s){ int原创 2015-09-01 15:45:33 · 284 阅读 · 0 评论 -
HDU 1599 find the mincost route
#include#include#includeusing namespace std;#define N 105const int inf=1<<29;int w[N][N],d[N][N];int n,m;int main(){ while(scanf("%d%d",&n,&m)!=EOF) { int i,j,k; for(i原创 2015-09-02 10:31:15 · 336 阅读 · 0 评论 -
HDU 2393 Higher Math
勾股定理#include#includeint main(){ int t; scanf("%d",&t); int k=1; while(t--) { int a,b,c; scanf("%d%d%d",&a,&b,&c); printf("Scenario #%d:\n",k++);原创 2015-09-01 17:50:06 · 243 阅读 · 0 评论 -
HDU 1874 畅通工程续
//弗洛得算法(初学):来个比较水的代码AC代码:#include#include#includeusing namespace std;#define N 205const int inf=129;int w[N][N];int n,m;int main(){ while(scanf("%d%d",&n,&m)!=EOF) { int原创 2015-08-30 23:21:25 · 293 阅读 · 0 评论 -
HDU 1217 and POJ 2240 Arbitrage
题意:给你一些汇率转换,问你从起点转一圈后又回到起点是否赚钱。#include#include#include#includeusing namespace std;#includemapa;#define N 150double w[N][N],c;char s1[N],s2[N],s3[N];int n,m;int main(){ int n; in原创 2015-09-02 11:50:12 · 311 阅读 · 0 评论 -
HDU-2642-Stars
//二维数状数组模板题,不解释AC代码:#include#include#includeusing namespace std;#define N 1005int a[N][N];int vis[N][N];char s[5];int lower_bit(int i){ return i&(-i);}void add(int x,int y,int v)原创 2015-08-20 20:17:08 · 313 阅读 · 0 评论 -
HDU 5422 Rikka with Graph
分析:(1)不管在什么情况下,最短距离总是1这个点到n这个点的最小距离,为1,因为两点之间直线最短。所以最短距离为1(2)假如没有1-n这条边,我们就连这条边,方案数为1,假如有这条边,那么我们就可以随便连,没影响,方案数为(n-1)*n/2;#include#include#includeusing namespace std;#define N 105int vis[N][N];原创 2015-09-10 08:58:13 · 269 阅读 · 0 评论 -
HDU 1754 I hate it
//线段树,单点更新+区间求和AC代码:#include#include#includeusing namespace std;#define lson l,m,rt1#define rson m+1,r,rt1|1const int MAX=200005;int sum[MAX2];char s[8];void push(int rt){ sum[rt]=原创 2015-08-24 22:33:49 · 247 阅读 · 0 评论 -
HDU 5228 ZCC loves straight flush
ZCC loves straight flush Accepts: 167 Submissions: 726 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)问题描述在前往ZJOI2015一试的路上,ZCC在同Fsygd打德州扑原创 2015-09-10 10:21:05 · 324 阅读 · 0 评论 -
HUD 1556 Color the ball
Color the ballTime Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 13160 Accepted Submission(s): 6579Problem DescriptionN个气球排成原创 2015-09-10 16:34:21 · 271 阅读 · 0 评论 -
HDU-2612-Find a way
//这题坑了我一晚上,用C++交不行,结果用C或者G++却过来,哎。。。。这题让我明白,如果用BFS,要保存到达“@”点的步数,bfs一直搜索,直到没发走才停。让后在主函数中进行输出比较。。。AC代码:#include#include#define max 205char map[max][max];int vis[max][max];int dir[4][2]= {{1原创 2015-07-23 20:54:14 · 545 阅读 · 0 评论 -
HDU-5142NPY and FFT
// 这个题直接模拟就行,把数表示成二进制,然后翻转一下,再倒着算出来,就行了AC代码:#include#include#define N 100000int a[N];int b[N];int main(){ int t; scanf("%d",&t); while(t--) { int n; scanf原创 2015-08-21 19:43:21 · 395 阅读 · 0 评论 -
HDU 1180 诡异的楼梯(BFS,用优先队列过)
#include#include#include#includeusing namespace std;char map[25][25];int PRE[25][25];int dir[4][2]= {{1,0},{-1,0},{0,1},{0,-1}};int m,n;int sx,sy,ex,ey;struct node{ int x; int y;原创 2015-09-25 16:56:13 · 338 阅读 · 0 评论 -
HDU-5146_Sequence
//水题AC代码:#include#include#define N 1005int a[N];int main(){ int t; scanf("%d",&t); while(t--) { int n; scanf("%d",&n); int i; for(i=1;in;i++)原创 2015-08-22 09:57:42 · 252 阅读 · 0 评论 -
HDU 5475 2015 ACM/ICPC Asia Regional Shanghai Online An easy problem(线段树)
题意:给你n个数和mod,X=1;接下来的n个数a,b,如果a=1,表示X=X*b;如果a=2,表示X=X/(第b个数的b值),线段树做之;if (a==2)将第b个数表示成1;#include#include#includeusing namespace std;#define LL long long#define lson l,m,rt<<1#define rson m+1,原创 2015-09-28 15:47:11 · 381 阅读 · 0 评论 -
HDU 1026 Ignatius and the Princess I(优先队列+BFS+打印路径)
#include#include#include#includeusing namespace std;const int maxm=150;int dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}};char s[maxm][maxm];int map[maxm][maxm];int vis[maxm][maxm];int list[maxm][max原创 2015-09-28 20:40:29 · 327 阅读 · 0 评论 -
HDU 2066 一个人的旅行
#include#include#includeusing namespace std;#define N 1005const int inf=1<<29;int w[N][N],vis[N],d[N];int num1[N],num2[N];int t,s,D;void dij(int v,int n){ int i,j; for(i=1;i<=n;i++)原创 2015-09-06 13:16:20 · 280 阅读 · 0 评论 -
HDU 5443 2015.9.13长春网络赛G题
很简单的线段树水题,就是求区间最值#include#include#includeusing namespace std;#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1const int maxm=1e6+10;int sum[maxm<<1];void push(int rt){ sum[rt]=max(sum[rt原创 2015-09-13 19:41:32 · 468 阅读 · 0 评论 -
HDU 4974 A simple water problem
#include#includeusing namespace std;int main(){ int t; scanf("%d",&t); int k=1; while(t--) { int n; scanf("%d",&n); int x,sum=0,MAX=0; for(int i原创 2015-09-29 20:32:44 · 329 阅读 · 0 评论 -
HDU 3371 Connect the Cities
最短路水题,Kus算法秒过#include#include#includeusing namespace std;const int maxm=25000+10;int n,m,k,p[maxm],w;int sum;struct node{ int u,v,c;} t[maxm],tt[maxm];int cmp(node p,node q){ return原创 2015-09-14 14:53:02 · 248 阅读 · 0 评论 -
HDU 5247 找连续数
第一次用映射做题,感觉挺简单的。#include#include#include#includeusing namespace std;const int maxm=1e4+10;int num[maxm];int sum[maxm];int main(){ int n,m; scanf("%d%d",&n,&m); for(int i=0;i<n;i++原创 2015-09-29 19:01:56 · 409 阅读 · 0 评论 -
HDU 5247 找连续数(用映射做题,set)
#include#include#include#includeusing namespace std;const int maxm=1e4+10;int num[maxm];int sum[maxm];int main(){ int n,m; scanf("%d%d",&n,&m); for(int i=0;i<n;i++) {原创 2015-09-29 19:03:13 · 309 阅读 · 0 评论 -
HDU 2037 今年暑假不AC
#include#include#includeusing namespace std;#define N 105struct node{ int s,e;}t[N];int cmp(node p,node q){ if(p.e==q.e) { return p.s<q.s; } else { ret原创 2015-09-15 15:26:04 · 264 阅读 · 0 评论 -
HDU 1559 最大子矩阵
题意:RT分析:刚开始准备用DP做,想了很久,有了思路,去打代码还是有点困难,很多细节不好处理(还是自己太弱),结果居然让我想出了二维树状数组,瞬间秒过#include#include#includeusing namespace std;#define N 1005int add[N][N];int lower_bit(int i){ return i&(-i);原创 2015-09-14 22:17:55 · 284 阅读 · 0 评论