http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2427

线段树+离散化  不离散化不知道会不会超时 一直RE 可能N值没有说的那么小吧 题意有问题 按1W开数组就RE 按10W开就A了

View Code

  1 #include<stdio.h>
  2 #include<string.h>
  3 #include<algorithm>
  4 #include<iostream>
  5 using namespace std;
  6 #define N 100001
  7 int s[N*6],num,f[100011],po[100011][2];
  8 struct node
  9 {
 10     int li,num;
 11 }line[200011];
 12 void build(int l,int r,int w)
 13 {
 14     s[w] = -1;
 15     if(l==r)
 16     {
 17         return ;
 18     }
 19     int m = (l+r)/2;
 20     build(l,m,2*w);
 21     build(m+1,r,2*w+1);
 22 }
 23 void add(int a,int b,int da,int l,int r,int w)
 24 {
 25     if(l==a&&b==r)
 26     {
 27         s[w] = da;
 28         return ;
 29     }
 30     int m = (l+r)/2;
 31     if(s[w]>0)
 32     {
 33         s[2*w] = s[w];
 34         s[2*w+1] = s[w];
 35         s[w] = -1;
 36     }
 37     if(b<=m)
 38         add(a,b,da,l,m,2*w);
 39     else
 40         if(a>m)
 41             add(a,b,da,m+1,r,2*w+1);
 42         else
 43         {
 44             add(a,m,da,l,m,2*w);
 45             add(m+1,b,da,m+1,r,2*w+1);
 46         }
 47 }
 48 void search(int l,int r,int w)
 49 {
 50     if(s[w]>0)
 51     {
 52         f[s[w]] = 1;
 53         return ;
 54     }
 55     if(l==r)
 56         return ;
 57     int m = (l+r)/2;
 58     search(l,m,2*w);
 59     search(m+1,r,2*w+1);
 60 }
 61 bool cmp(node a,node b)
 62 {
 63     return a.num<b.num;
 64 }
 65 int main()
 66 {
 67     int n,i,j,t,a,b;
 68     scanf("%d", &t);
 69     while(t--)
 70     {
 71         memset(f,0,sizeof(f));
 72         num = 0;
 73         scanf("%d", &n);
 74         build(1,N,1);
 75         for(i = 0; i < n ;i++)
 76         {
 77             scanf("%d%d", &po[i][0],&po[i][1]);
 78             line[2*i].li = i+1;
 79             line[2*i].num = po[i][0];
 80             line[2*i+1].li = -(i+1);
 81             line[2*i+1].num = po[i][1];
 82         }
 83         sort(line,line+2*n,cmp);
 84         int te = line[0].num,g = 1;
 85         for(i = 0 ; i < 2*n ; i++)
 86         {
 87             if(te!=line[i].num)
 88             {
 89                 te = line[i].num;
 90                 g++;
 91             }
 92             if(line[i].li>0)
 93             {
 94                 po[line[i].li][0]=g;
 95             }
 96             else
 97                 po[-line[i].li][1]=g;
 98         }
 99         for(i = 1; i <= n ; i++)
100         {
101             add(po[i][0],po[i][1],i,1,N,1);
102         }
103         search(1,N,1);
104         for(i = 1; i <= n ; i++)
105             if(f[i])106                 num++;
107         printf("%d\n",num);
108     }
109     return 0;
110 } 

http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2430

DP 前一个的1或者最高 到这一个1或者最高 中间选一个最优的

View Code

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<string.h>
 4 #include<cmath>
 5 using namespace std;
 6 int main()
 7 {
 8     int i,j,n,m,x,a[111],k;
 9     double dp[111][111];
10     while(scanf("%d",&n)!=EOF)
11     {
12         memset(dp,0,sizeof(dp));
13         for(i = 1; i <= n ; i++)
14         scanf("%d",&a[i]);
15         scanf("%d", &k);
16         if(n==1)
17         {
18             printf("0.000000\n");
19             continue;
20         }
21         for(i = 2; i <= n ; i++)
22         {
23             x = a[i-1];
24             if(dp[i][1]<dp[i-1][x]+sqrt(k*k+(x-1)*(x-1)))
25             dp[i][1] = dp[i-1][x]+sqrt(k*k+(x-1)*(x-1));
26             if(dp[i][1]<dp[i-1][1]+k)
27             dp[i][1] = dp[i-1][1]+k;
28             if(dp[i][a[i]]<dp[i-1][x]+sqrt(k*k+(x-a[i])*(x-a[i])))
29             dp[i][a[i]] = dp[i-1][x]+sqrt(k*k+(x-a[i])*(x-a[i]));
30             if(dp[i][a[i]]<dp[i-1][1]+sqrt(k*k+(a[i]-1)*(a[i]-1)))
31             dp[i][a[i]] = dp[i-1][1]+sqrt(k*k+(a[i]-1)*(a[i]-1));
32         }
33         if(dp[n][1]>dp[n][a[n]])
34         printf("%.6lf\n",dp[n][1]);
35         else
36         printf("%.6lf\n",dp[n][a[n]]);
37     }
38     return 0;
39 }
40  

http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2429

模拟 这题WA惨了 最后两分钟交对 好险。。

x不能为负值 就算最后有符合的负值也是输出-1 考虑两种情况x为0或者不为0的情况

View Code

 1 #include<stdio.h>
 2 #include<string.h>
 3 int main()
 4 {
 5     int i,j,n,f[401],m;
 6     long long  k,a[61],stack[401],b[61];
 7     while(scanf("%d",&n)!=EOF)
 8     {
 9         int top =200;
10         memset(stack,0,sizeof(stack));
11         memset(f,0,sizeof(f));
12         for(i = 1; i <= n ; i++)
13         {
14             scanf("%lld",&a[i]);
15             b[i] = a[i];
16         }
17         scanf("%lld", &k);
18         for(j = 1; j <= n ; j++)
19         {
20             if(a[j]==-1)
21                 a[j]=0;
22             if(a[j]==0)
23             {
24                 top--;
25                 long long  x = stack[top];
26                 top--;
27                 x+=stack[top];
28                 stack[top++] = x;
29             }
30             else
31                 stack[top++] = a[j];
32         }
33         top--;
34         if(stack[top]==k)
35         {
36             printf("0\n");
37             continue;
38         }
39         top = 200;
40         for(j = 1; j <= n ; j++)
41         {
42             if(b[j]==-1)
43             {
44                 f[top]=1;
45                 stack[top++] = 0;
46             }
47             else
48             if(b[j]==0)
49             {
50                 top--;
51                 long long  x = stack[top];
52                 top--;
53                 x+=stack[top];
54                 if(f[top]||f[top+1])
55                 {
56                     f[top] = 1;
57                 }
58                 stack[top++] = x;
59             }
60             else
61                 stack[top++] = b[j];
62         }
63         top--;
64         if(!f[top]&&stack[top]==k)
65         {
66             printf("0\n");
67             continue;
68         }
69         if(f[top]&&k-stack[top]>0)
70             printf("%lld\n",k-stack[top]);
71         else
72             printf("-1\n");
73     }
74     return 0;
75 } 

转载于:https://www.cnblogs.com/shangyu/archive/2012/08/27/2659191.html

2012暑假集训内部测试赛3相关推荐

  1. 2017年寒假集训分组测试赛2 Ranklist

    初级二十四点游戏 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 受李老师的影响,他4岁的孩 ...

  2. 暑假集训中期测试 Problem D: 装箱问题2 (并查集)

    Description 有很多个棱长为1的正方体货物整齐地堆在一堆.不过有一些是悬空的, 大概是粘上去的吧... 给出这些货物的相邻关系,求最小的长方体(或正方体)能装下这些货物的集装箱的体积,(集装 ...

  3. 比赛2016年暑假集训盲打首秀赛结果

    4 53 2015计算机科学与技术1班 15111205046 鞠明杭 149 Fishing For Jasmine 75.50KPM 99.34% 149 2016-06-25 19:23:04 ...

  4. 【2021软件创新实验室暑假集训】SpringMVC框架(设计原理、简单使用、源码探究)

    系列文章目录 20级 Java篇 [2021软件创新实验室暑假集训]计算机的起源与大致原理 [2021软件创新实验室暑假集训]Java基础(一) [2021软件创新实验室暑假集训]Java基础(二) ...

  5. 暑假集训考试反思+其它乱写

    7.20 Sat 下午返校 回来改题 sdfz的巨佬觉得线上虐人不够爽,所以他们过来了 改T2的时候发现一个问题 如果要用$i$和$i\ xor\ 1$表示相邻的两条边,链式前向星tot初值必须设为1 ...

  6. 2016暑假集训小结

    小结 暑假集训之前,有很多事情在忙,什么考试,**之类.集训开始的时候还回了一趟家,这趟回家也发生了对我影响最大的事,之后想了很久,觉得也还是有必要继续走下去,因为我还是很爱这个集训队,很爱思考题解题 ...

  7. 2015暑假集训总结

    这个暑假,我很明显的感觉,我的许多方面都发现了缺陷或得到了提升. 首先是做比赛.做题策略方面的,我还有很多要改进的地方.比赛时,我总是想到一些有些神奇的想法,有时会接近正解或者就是,有时会相差甚远,打 ...

  8. 2017ACM暑假集训总结

    作为一个即将大二的学生,第一次参加杭电的暑期集训. 集训7月底开始,我和其他队员一样,大老远的跑到学校,烈日炎炎,正式夏天最热的时候.而且正逢学校装修宿舍,无奈,只好在外租房子租: 尽管坏境艰苦,但我 ...

  9. 【软件创新实验室2021年暑假集训】Java技术培训——Java前置知识学习

    [软件创新实验室2021年暑假集训]Java技术培训--Java前置知识学习 文章目录 [软件创新实验室2021年暑假集训]Java技术培训--Java前置知识学习 前言 一.了解计算机 1.计算机的 ...

最新文章

  1. 中国高校首个Apache开源项目 清华数为物联网时序数据库IoTDB 及可自由组装的大数据软件栈系列组件发布...
  2. 什么样的NLP库,可以支持53种语言?
  3. linux内核技术文章
  4. 联想e480一键恢复小孔_联想IdeaPad 340C评测:3000必入的15寸轻薄本
  5. php while for 性能,php的foreach,while,for的性能比较
  6. Object-c学习之路三(@class与#import的区别)
  7. 一行 Python 代码能实现这么多丧心病狂的功能?(代码可复制)
  8. 10-9-用户登录控制
  9. LAMP+LNMP视频教程
  10. python3.7.2安装与pycharm_Python3和PyCharm安装与环境配置【图文教程】
  11. DX中关于error C2664: “ID3DXEffect::SetMatrix”: 不能将参数 1 从“const char [17]”转换为“D3DXHANDLE”
  12. mysql 运算符转义_我的MYSQL学习心得(五) 运算符
  13. 从零开始的FPGA学习5-同步复位D触发器、异步复位D触发器
  14. python对数正态分布函数_scipy,对数正态分布-参数
  15. Layui树形表格组件的实现
  16. 网易im 会话列表不显示的问题
  17. Unity灯光(light)
  18. 怎样用matlab建立igbt的仿真分析模型,基于MATLAB/Simulink的IGBT导通模型研究
  19. 【读书笔记】被讨厌的勇气之自卑感
  20. ***常用工具下载大全

热门文章

  1. 用C#实现仿Ruby的XML Builder
  2. .NET平台PE结构分析之Metadata(一)
  3. 在ASP.NET中把数据POST到其他页面
  4. php屏幕共享功能,利用无线投屏技术同屏直播,精彩随时共享
  5. 怎么把模组直接装在Java里面_如何使用jythonj将python模块添加到java中
  6. python编写函数、计算三个数的最大公约数_Python实现利用最大公约数求三个正整数的最小公倍数示例...
  7. python模块与包
  8. main函数执行前执行一个函数的写法
  9. 从理念到实践跳跃式演进!云的原生“免疫系统”如何有机作战?
  10. php百度人脸识别做登陆,php调用百度人脸识别接口查询数据库人脸信息实现验证登录功能...