Codeforces Round #515 (Div. 3)

 #include<bits/stdc++.h>
 #include<iostream>
 #include<cstdio>
 #include<cstdlib>
 #include<cstring>
 #include<cmath>
 #include<algorithm>
 #include<queue>
 #include<vector>
 #include<map>
 #define lson i<<1
 #define rson i<<1|1
 #define LS l,mid,lson
 #define RS mid+1,r,rson
 #define mem(a,x) memset(a,x,sizeof(a))
 #define gcd(a,b) __gcd(a,b)
 #define ll long long
 #define ull unsigned long long
 #define lowbit(x) (x&-x)
 #define pb(x) push_back(x)
 #define enld endl
 #define mian main
 #define itn int
 #define prinft printf
 #pragma GCC optimize(2)
 //#pragma comment(linker, "/STACK:102400000,102400000")

 const double PI = acos (-1.0);
 const int INF = 0x3f3f3f3f;
 ;
 ;
 ;
 ;

 using namespace std;

 /*
 4
 10 2 3 7
 100 51 51 51
 1234 1 100 199
 1000000000 1 1 1000000000
 */
 int n,L,v,l,r;
 int main() {
     std::ios::sync_with_stdio(false);
     cin.tie(NULL);

     while(cin>>n) {
         while(n--) {
             cin>>L>>v>>l>>r;
             cout<<L/v-(r/v-(l-)/v)<<endl;
         }
     }
 }

A - Vova and Train

分区间讨论,不断更新右极值,注意边界相切的情况(1,2)(3,4)

 #include<bits/stdc++.h>
 #include<iostream>
 #include<cstdio>
 #include<cstdlib>
 #include<cstring>
 #include<cmath>
 #include<algorithm>
 #include<queue>
 #include<vector>
 #include<map>
 #define lson i<<1
 #define rson i<<1|1
 #define LS l,mid,lson
 #define RS mid+1,r,rson
 #define mem(a,x) memset(a,x,sizeof(a))
 #define gcd(a,b) __gcd(a,b)
 #define ll long long
 #define ull unsigned long long
 #define lowbit(x) (x&-x)
 #define pb(x) push_back(x)
 #define enld endl
 #define mian main
 #define itn int
 #define prinft printf
 #pragma GCC optimize(2)
 //#pragma comment(linker, "/STACK:102400000,102400000")

 const double PI = acos (-1.0);
 const int INF = 0x3f3f3f3f;
 ;
 ;
 ;
 ;

 using namespace std;

 /*
 6 2
 0 1 1 0 0 1
 */
 int n,r,a[MAXN];
 int main() {
     std::ios::sync_with_stdio(false);
     cin.tie(NULL);

     while(cin>>n>>r) {
         mem(a,);
         ;
         ;
         ; i<=n; ++i) {
             cin>>temp;
             if(temp) {
                 a[++cnt]=i;
             }
         }
         temp=;
         ;
         ;
         -)<n||a[]-r+>||a[cnt]+r-<n) cout<<-<<endl;
         else {
             ; i<=cnt; ++i) {
                 >temp+) {
                     //cout<<temp<<' '<<a[i]-r+1<<endl;
                     cout<<-<<endl;
                     flag=;
                     break;
                 }
                 if(temp>=n) {
                     //k++;
                     break;
                 }
                 <=temp+&&a[i+]-r+>temp+)||a[i]+r->=n) {
                     //cout<<i<<endl;
                     k++;
                     temp=a[i]+r-;
                 }
                 //cout<<temp<<' ';
             }
             if(!flag) cout<<k<<endl;
         }
     }
 }

B - Heaters

 #include<bits/stdc++.h>
 #include<iostream>
 #include<cstdio>
 #include<cstdlib>
 #include<cstring>
 #include<cmath>
 #include<algorithm>
 #include<queue>
 #include<vector>
 #include<map>
 #define lson i<<1
 #define rson i<<1|1
 #define LS l,mid,lson
 #define RS mid+1,r,rson
 #define mem(a,x) memset(a,x,sizeof(a))
 #define gcd(a,b) __gcd(a,b)
 #define ll long long
 #define ull unsigned long long
 #define lowbit(x) (x&-x)
 #define pb(x) push_back(x)
 #define enld endl
 #define mian main
 #define itn int
 #define prinft printf
 #pragma GCC optimize(2)
 //#pragma comment(linker, "/STACK:102400000,102400000")

 const double PI = acos (-1.0);
 const int INF = 0x3f3f3f3f;
 ;
 ;
 ;
 ;

 using namespace std;

 /*
 8
 L 1
 R 2
 R 3
 ? 2
 L 4
 ? 1
 L 5
 ? 1
 */
 int n;
 char c;
 int ind;
 int a[MAXN];
 int main() {
     //std::ios::sync_with_stdio(false);
     //cin.tie(NULL);

     while(cin>>n) {
         ,r=;
         mem(a,);
         while(n--) {
             cin>>c>>ind;
             if(c=='L') {
                 a[ind]=l--;
             } else if(c=='R') {
                 a[ind]=r++;
             } else {
                 //cout<<a[ind]<<' '<<a[l+1]<<' '<<l+1<<endl;
                 cout<<min(a[ind]-(l+),r--a[ind])<<endl;
             }
         }

     }
 }

C - Books Queries

逆推+二分

 #include<bits/stdc++.h>
 #include<iostream>
 #include<cstdio>
 #include<cstdlib>
 #include<cstring>
 #include<cmath>
 #include<algorithm>
 #include<queue>
 #include<vector>
 #include<map>
 #define lson i<<1
 #define rson i<<1|1
 #define LS l,mid,lson
 #define RS mid+1,r,rson
 #define mem(a,x) memset(a,x,sizeof(a))
 #define gcd(a,b) __gcd(a,b)
 #define ll long long
 #define ull unsigned long long
 #define lowbit(x) (x&-x)
 #define pb(x) push_back(x)
 #define enld endl
 #define mian main
 #define itn int
 #define prinft printf
 #pragma GCC optimize(2)
 //#pragma comment(linker, "/STACK:102400000,102400000")

 const double PI = acos (-1.0);
 const int INF = 0x3f3f3f3f;
 ;
 ;
 ;
 ;

 using namespace std;

 int n,m,k;
 int a[MAXN];
 int b[MAXN];

 bool check(int x) {
     mem(b,);
     ;
     ; i<=x; ++i) {
         ;
         for(int j=temp; j<=m; ++j) {
             if(b[j]+a[i]<=k) {
                 flag=;
                 b[j]+=a[i];
                 temp=j;
                 break;
             }
         }
         if(!flag)
             return false;
     }
     return true;
 }

 int main() {
     //std::ios::sync_with_stdio(false);
     //cin.tie(NULL);

     while(cin>>n>>m>>k) {
         mem(a,),mem(b,);
         ; i--)
             cin>>a[i];
         ,r=n+,mid,cnt=;
         while(cnt--) {
             mid=(l+r)/;
             if (check(mid))
                 l=mid;
             else
                 r=mid;
         }
         cout<<mid<<endl;
     }
     /*
     while(cin>>n>>m>>k) {
         for(int i=n; i>=1; i--)
             cin>>a[i];
         int x;
         cin>>x;
         cout<<check(x)<<endl;
     }
     */
 }

D - Boxes Packing

Codeforces Round #515 (Div. 3)的更多相关文章

  1. Codeforces Round #515 (Div. 3) 解题报告(A~E)

    题目链接:http://codeforces.com/contest/1066 1066 A. Vova and Train 题意:Vova想坐火车从1点到L点,在路上v的整数倍的点上分布着灯笼,而在 ...

  2. Codeforces Round #515 (Div. 3) B. Heaters【 贪心 区间合并细节 】

    任意门:http://codeforces.com/contest/1066/problem/B B. Heaters time limit per test 1 second memory limi ...

  3. Codeforces Round #515 (Div. 3) E. Binary Numbers AND Sum

    E. Binary Numbers AND Sum 题目链接:https://codeforces.com/contest/1066/problem/E 题意: 给出两个用二进制表示的数,然后将第二个 ...

  4. CodeForces Round #515 Div.3 D. Boxes Packing

    http://codeforces.com/contest/1066/problem/D Maksim has nn objects and mm boxes, each box has size e ...

  5. CodeForces Round #515 Div.3 C. Books Queries

    http://codeforces.com/contest/1066/problem/C You have got a shelf and want to put some books on it. ...

  6. CodeForces Round #515 Div.3 A. Vova and Train

    http://codeforces.com/contest/1066/problem/A Vova plans to go to the conference by train. Initially, ...

  7. CodeForces Round #515 Div.3 B. Heaters

    http://codeforces.com/contest/1066/problem/B Vova's house is an array consisting of nn elements (yea ...

  8. CodeForces Round #515 DIv.3 F. Yet another 2D Walking

    http://codeforces.com/contest/1066/problem/F Maksim walks on a Cartesian plane. Initially, he stands ...

  9. B. Heaters ( Codeforces Round #515 (Div. 3) )

    题解:对于每个点 i 来说,从 j = i + r - 1 开始往前找,如果找到一个 a [ j ] 是 1 ,那么就把它选上,但是我们需要判断交界处,也就是如果前面选的那个可以让这个点变温暖,就不用 ...

随机推荐

  1. Repeater控件的分页实现

    本文讲解Repeater控件与PagedDataSource相结合实现其分页功能.PagedDataSource 类封装那些允许数据源控件(如 DataGrid.GridView)执行分页操作的属性. ...

  2. BFS的队列

    按老师上课的话来总结,队列变化多端:   普通模板没有代价: 普通队列FIFO 01代价: 双端队列,单调队列 任意代价: 优先队列/堆,最短路SPFA/DIJKSTRA

  3. o(1), o(n), o(logn), o(nlogn)算法复杂度

    在描述算法复杂度时,经常用到o(1), o(n), o(logn), o(nlogn)来表示对应算法的时间复杂度, 这里进行归纳一下它们代表的含义: 这是算法的时空复杂度的表示.不仅仅用于表示时间复杂 ...

  4. vim下如何去掉windows编辑的文件中的^M

    可以去掉^M, 例如: 在终端下敲命令: dos2unix a.c 直接转换成unix格式,这样就可以去掉^M •$dos2unix filename •vim filename :%s/^M$//g ...

  5. 001_fpm打包命令详解

    使用fpm来制作rpm包 2017/2/22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ...

  6. java JVM指令2

    https://www.cnblogs.com/dreamroute/p/5089513.html 指令码 助记符 说明 0x00 nop 什么都不做 0x01 aconst_null 将null推送 ...

  7. VS Code 折腾记 - (5) Angular 2+ && Typescript 2 + 必备插件推荐

    前言 说起来我会用VSCode,有很大一方面是因为工作需求[以前主力工具是Atom],刚好公司的前端技术栈是NG2+TS2;对于喜欢折腾的我,裸奔的VSCODE是不可以接受的.so-. eg: vsc ...

  8. sed的一些使用技巧

    一.当一个文件里有两行相同的内容,但这时只想修改第一行的内容或者第二行的内容,而不是全部修改,以下例子说明下: 1.修改匹配到第一行为port的内容(若要真修改前面记得-i): [root suppo ...

  9. vue组件库(一):前期准备工作

    前言 将近期项目内自行开发一个vue组件,做个总结,记录下自己的思维过程~~~ 正文 接到这个任务后,还是要做些准备工作的. 主要内容如下: 1.优化下所在团队前端开发流程 服务器搭建gitlab,采 ...

  10. linux 命令点滴记录(centos)

    2016年5月26日:创建root用户 [lx@localhost ~]$ su root Password: [root@localhost lx]# 帐号:root ;密码:输入的Password ...