2016.10.30 济南学习 Day2 下午 T1

【问题描述】

  一张长度为??的纸带,我们可以从左至右编号为0 ? ??(纸带最左端标号为 0)。现在有??次操作,每次将纸带沿着某个位置进行折叠,问所有操作之后纸带 的长度是多少。

【输入格式】

  第一行两个数字??, ??如题意所述。 接下来一行??个整数代表每次折叠的位置。

【输出格式】

   一行一个整数代表答案。

【样例输入】

  5 2 3 5

【样例输出】

  2

【样例解释】

   树上有只鸟。

【数据规模与约定】

  对于60%的数据,??, ?? ≤ 3000。 对于100%的数据,?? ≤ 1018 , ?? ≤ 3000。

 1 #include<iostream>
 2 #include<cstdio>
 3 #define ULL unsigned long long
 4 using namespace std;
 5 ULL f[3005],n,L,R;
 6 int m;
 7 inline ULL read()
 8 {
 9     ULL w=0,flag=1;char ch=getchar();
10     while(ch>‘9‘||ch<‘0‘){if(ch==‘-‘)flag=-1;ch=getchar();}
11     while(ch<=‘9‘&&ch>=‘0‘){w=w*10+ch-‘0‘;ch=getchar();}
12     return w*flag;
13 }
14 int main()
15 {
16     freopen("he.in","r",stdin);
17     freopen("he.out","w",stdout);
18     n=read();m=read();
19     L=0;R=n;
20     for(int i=1;i<=m;i++)f[i]=read();
21     for(int i=1;i<=m;i++)
22     {
23
24         if(f[i]*2>=L+R) R=f[i];// 舍掉右边
25         else L=f[i];//  舍掉左边
26
27         for(int j=i+1;j<=m;j++)
28         {
29             if(f[j]>R)    f[j]=R*2-f[j];
30             if(f[j]<L)    f[j]=L*2-f[j];
31         }
32
33     }
34
35     cout<<R-L<<endl;
36     fclose(stdin);
37     fclose(stdout);
38     return 0;
39 }
时间: 2024-12-24 11:14:13

2016.10.30 济南学习 Day2 下午 T1的相关文章

2016.10.30 对时间的感悟

2016.10.30 对时间的感悟 时间的单位是什么,年,月日,时,分秒? 对于我们来说时间应该是这辈子,然后被我们 切割成一个个时间段,这很有意思, 其实我想说, 有时候我们感觉来不及, 我们很烦躁, 我们快乐不起来, 可能是因为我们没有在自己规定的时间段完成规定的目标, 我们希望小孩上好的学校, 希望工资高点, 希望今天公安局办理身份证的人员有上班等等, 当我们完不成目标的时候就会有各种不良反应, 不是说有目标不好,有目标是很好的,这没毛病, 问题是我们在不够了解这个世界的规则的情况下常常高

2016.10.30 NOIP模拟赛 day2 PM 整理

满分:300分 直接全部爆零,真的是很坑啊! 10.30的题目+数据:链接:http://pan.baidu.com/s/1jHXLace 密码:i784 T1: 题目中的难点就是每次折叠的点可能应经被覆盖了,我的做法是递归去推出它现在在哪个位置,不仅超时,而且答案错误. 也曾想过用数组去存下它当前的位置,但是被10^18的数据吓到了. 正解:并不是所有的坐标都有用,仅仅是那m个将要用到的点有用,所以每次折叠,就只对之后的有用的k个点进行更新,这样就行了. 时间复杂度O(m^2) 不会超时的.

2016.10.30 NOIP模拟赛 day2 AM 整理

题目+数据:链接:http://pan.baidu.com/s/1gfBg4h1 密码:ho7o 总共得了:130分, 1:100分  2:30分(只会这30分的暴力) 3:0(毫无思路) 虽然不高,但是比较满意,因为把自己会的分数都拿到了. T1:100分 1 /* 2 T1明显是个数论题. 3 正确的思路:把n!质因数分解,把所有质因数的指数都取到最大的偶数,它们的乘积便是最终的结果. 4 有一种很快的方法在Eular筛中可以n!的质因数分解. 5 if(!is_prim[i]) 6 { 7

2016.10.24 继续学习

今天继续学习,进入面向对象的学习. 1.输出换行可以这样输出 System.out.println(); 2.数组学得有点蒙.... public class PracMultiArray { public static void main(String[] args) { int[][] a1 = {{1, 2, 4}, {3, 1, 2}, {14, 5, 3}}; System.out.println(a1[1][2]); for(int i=0;i<a1.length;i++){ for

济南学习 Day2 T2 am

[问题描述]有??个数,随机选择一段区间,如果这段区间的所有数的平均值在[l,r]中则你比较厉害.求你比较厉害的概率.[输入格式]第一行有三个数N,l,r,含义如上描述.接下来一行有??个数代表每一个数的值.[输出格式]输出一行一个分数 a/b代表答案,其中a,b互质.如果答案为整数则直接输出该整数即可.[样例输入 1]4 2 33 1 2 4[样例输出 1]7/10[样例输入 2]4 1 43 1 2 4[样例输出 2]1[样例解释]塔外面有棵树.[数据规模与约定]对于30%的数据,1<=N<

2016.10.26 继续学习

今天继续学习面向对象部分 1.static的使用 静态方法不能访问非静态变量 非静态方法可以访问静态变量 a.静态变量 public class PracStaticParam { int id = 0; static int num = 0; PracStaticParam(int x) { this.id = x; num++; } public static void main(String[] args) { PracStaticParam s1 = new PracStaticPara

【Dairy】2016.10.30 BirthdayParty

今天又有人生日耶,鹏哥和骥哥两兄弟,Happy Birthday 开始听到这件事,我傻逼的想了一下,咦,这两人这么有缘,同一天生日...脑抽了... 小胖犇极缓音调来了首烟花易冷,劲啊! 发张什么图呢?烟花...恩...

每周例行报告2016.10.07-2016.10.14

PSP 日期 类型 任务 开始时间 结束时间 被打断时间(min) 实际(min) 2016.10.07 需求分析 看spec,分析每个功能的需求 14:59 15:38 3 36 编码学习 设计文件存放.分词.词频统计,阅读同学的代码 15:44 17:11 5 82 编码学习 词频排序.读取目录下书目.主函数设计 19:00 21:26 19 127 2016.10.08 编码学习 学习重定向 15.01 15:39 2 36 代码复审 写博客.调试运行结果 15:45 17:12 6 81

软件工程 2016.6.30 日报

软件工程 2016.6.30 日报 今天主要学习的内容是C# socket网络编程中的TCP通讯技术.socket编程的原理如下: 在服务端的处理流程为: (1)建立服务器端的Socket,开始侦听整个网络中的连接请求. (2)当检测到来自客户端的连接请求时,向客户端发送收到连接请求的信息,并建立与客户端之间的连接. (3)当完成通信后,服务器关闭与客户端的Socket连接. 在服务端的处理流程为: (1)建立客户端的Socket,确定要连接的服务器的主机名和端口. (2)发送连接请求到服务器,