话说,总有人认为我是黑别人电脑的(雾??其实,我不黑电脑,我黑手机

T1

此题巨水,比较四个面积就就好了。。

/* make by ltao */
#include <iostream>
#include <cstdio>
#include <stack>
#include <queue>
#include <deque>
#include <algorithm>
#include <cstring>
#include <string>
#include <vector>
#include <list>
#include <map>
#include <time.h>
#include <cmath>
#include <math.h>
#include <fstream>
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
#define inf 1e6
#define sz 666666
#define fake int
#define re return
#define get() getchar()
using namespace std;
int read(){
    int x=0;bool f=0;
    char ch=get();
    while(ch<'0'||ch>'9'){
        if(ch=='-') f=1;
        ch=get();
    }
    while(ch<='9'&&ch>='0'){
        x=(x<<1)+(x<<3)+(ch-'0');
        ch=get();
    }
    re f?-x:x;
}
int t,a,b,x,y;
int main(){
    //freopen("EE.in","r",stdin);
    t=read();
    while(t--){
        a=read();b=read();x=read();y=read();
        printf("%d\n",max(max((a-x-1)*b,(x)*b),max((b-y-1)*a,y*a)));
    }

    re 0;
}

至于我为什么把 那个 return define 成了 re ,这是一种信仰吧。

T2

此题做法显然,但是,最好判一下最后是不是单独一个。。

/* make by ltao */
#include <iostream>
#include <cstdio>
#include <stack>
#include <queue>
#include <deque>
#include <algorithm>
#include <cstring>
#include <string>
#include <vector>
#include <list>
#include <map>
#include <time.h>
#include <cmath>
#include <math.h>
#include <fstream>
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
#define inf 1e6
#define sz 666666
#define fake int
#define re return
#define get() getchar()
using namespace std;
int read(){
    int x=0;bool f=0;
    char ch=get();
    while(ch<'0'||ch>'9'){
        if(ch=='-') f=1;
        ch=get();
    }
    while(ch<='9'&&ch>='0'){
        x=(x<<1)+(x<<3)+(ch-'0');
        ch=get();
    }
    re f?-x:x;
}
const int Maxn=1e5+11;
int t,a,b,cc,cnt;
struct Node{
    int l,r;//l 闭 ,r开
    char d;
}aa[Maxn];
char c[Maxn];
int main(){
//  freopen("EE.in","r",stdin);
    t=read();
    while(t--){
        a=read();b=read();cc=read();cnt=0;
        scanf("%s",c+1);
        int len=strlen(c+1);
        int last=1;
        for(int i=2;i<=len;i++){
            if(c[i]!=c[i-1]){
                aa[++cnt].d=c[i-1];
                aa[cnt].l=last;aa[cnt].r=i;
                last=i;
            }
        }
        aa[++cnt].d=c[len];
        aa[cnt].l=last;aa[cnt].r=len+1;
        int s=0,ind=len;
        for(int i=(aa[cnt].l==len)?cnt-1:cnt;i>=1;i--){
            s+=aa[i].d=='A'?a:b;
            if(s>cc) break;
            ind=aa[i].l;
        }
        printf("%d\n",ind);
    }
    re 0;
}

T3

此题做法真是(雾,因为我看到了他的 \(\sum n=100\) ,然后因为信仰打了爆搜,考场的时候过了,,然后,再测就 TLE

然后,事实上有贪心的想法,而且是成立的。。其实有道理

/* make by ltao */
#include <iostream>
#include <cstdio>
#include <stack>
#include <queue>
#include <deque>
#include <algorithm>
#include <cstring>
#include <string>
#include <vector>
#include <list>
#include <map>
#include <time.h>
#include <cmath>
#include <math.h>
#include <fstream>
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
#define inf 1e6
#define sz 666666
#define fake int
#define re return
#define get() getchar()
using namespace std;
int read(){
    int x=0;bool f=0;
    char ch=get();
    while(ch<'0'||ch>'9'){
        if(ch=='-') f=1;
        ch=get();
    }
    while(ch<='9'&&ch>='0'){
        x=(x<<1)+(x<<3)+(ch-'0');
        ch=get();
    }
    re f?-x:x;
}
const int Maxn=1e3+11;
int t,b[Maxn],a[Maxn*2],n;
bool f,flag[Maxn];
void solve(){
    for(int i=1;i<=n;++i){
        bool f=0;
        for(int j=a[2*i-1]+1;j<=2*n;++j)if(!flag[j]){
            a[2*i]=j;
            flag[j]=1;
            f=1;break;
        }
        if(!f){
            printf("-1\n");return;
        }
    }
    for(int i=1;i<=2*n;++i)printf("%d ",a[i]);
    printf("\n");
}

int main(){
    //freopen("EE.in","r",stdin);
    t=read();
    while(t--){
        memset(flag,0,sizeof flag);f=0;
        n=read();
        for(int i=1;i<=n;i++) {
            b[i]=read();
            flag[b[i]]=1;
            a[i*2-1]=b[i];
        }
        if(!flag[1]||flag[n*2]){
            printf("-1\n");
            continue;
        }
        solve();
    }
    re 0;
}

T4

此题真是太心酸了。

其实,用贪心的想法,做好堆就好了。。其实是大根堆。。。

#include<cstdio>
#include <iostream>
#include<algorithm>
#include<queue>
#include<vector>
using namespace std;
typedef long long ll;
const int MAXN=200010;
int n;
ll totw,ans;
struct Node{
    int num,w;
}a[MAXN];
bool cmp(Node x,Node y){
    if(x.num!=y.num)return x.num<y.num;
    else return x.w>y.w;
}
int main(){
//  freopen("EE.in","r",stdin);
    scanf("%d",&n);
    for(int i=1;i<=n;++i)scanf("%d",&a[i].num);
    for(int i=1;i<=n;++i)scanf("%d",&a[i].w);
    sort(a+1,a+n+1,cmp);
    priority_queue<int> q;
    for(int i=2;i<=n;++i){
        if(a[i-1].num==a[i].num){
            totw+=a[i].w;//记录同一位置的总和
            q.push(a[i].w);
        }
        else{
            for(int p=a[i-1].num+1;totw>0&&p<=a[i].num-1;++p){
                ans+=totw;
                totw-=q.top();q.pop();
            }
            ans+=totw;
            if(totw>0&&a[i].w<q.top()){
                totw-=q.top();q.pop();
                totw+=a[i].w;q.push(a[i].w);
            }
        }
    }
    while(totw>0){
        ans+=totw;
        totw-=q.top();q.pop();
    }
    printf("%lld\n",ans);
    return 0;
}

这几次成绩不好的原因

  1. 实力太弱
  2. 缺乏分析
  3. 没有想法

所以,oi之路漫漫,吾将上下而求索

CF #623 div.2的更多相关文章

  1. CF #376 (Div. 2) C. dfs

    1.CF #376 (Div. 2)    C. Socks       dfs 2.题意:给袜子上色,使n天左右脚袜子都同样颜色. 3.总结:一开始用链表存图,一直TLE test 6 (1)如果需 ...

  2. CF #375 (Div. 2) D. bfs

    1.CF #375 (Div. 2)  D. Lakes in Berland 2.总结:麻烦的bfs,但其实很水.. 3.题意:n*m的陆地与水泽,水泽在边界表示连通海洋.最后要剩k个湖,总要填掉多 ...

  3. CF #374 (Div. 2) D. 贪心,优先队列或set

    1.CF #374 (Div. 2)   D. Maxim and Array 2.总结:按绝对值最小贪心下去即可 3.题意:对n个数进行+x或-x的k次操作,要使操作之后的n个数乘积最小. (1)优 ...

  4. CF #374 (Div. 2) C. Journey dp

    1.CF #374 (Div. 2)    C.  Journey 2.总结:好题,这一道题,WA,MLE,TLE,RE,各种姿势都来了一遍.. 3.题意:有向无环图,找出第1个点到第n个点的一条路径 ...

  5. CF #371 (Div. 2) C、map标记

    1.CF #371 (Div. 2)   C. Sonya and Queries  map应用,也可用trie 2.总结:一开始直接用数组遍历,果断T了一发 题意:t个数,奇变1,偶变0,然后与问的 ...

  6. CF #365 (Div. 2) D - Mishka and Interesting sum 离线树状数组

    题目链接:CF #365 (Div. 2) D - Mishka and Interesting sum 题意:给出n个数和m个询问,(1 ≤ n, m ≤ 1 000 000) ,问在每个区间里所有 ...

  7. CF #365 (Div. 2) D - Mishka and Interesting sum 离线树状数组(转)

    转载自:http://www.cnblogs.com/icode-girl/p/5744409.html 题目链接:CF #365 (Div. 2) D - Mishka and Interestin ...

  8. CF round 623 Div.1D Tourism 题解

    题目链接:https://codeforces.com/contest/1314/problem/D 大意: \(n\) 个顶点的有向图,顶点编号为 \(1\) 到 \(n\),任意两个不同的顶点 \ ...

  9. CF#138 div 1 A. Bracket Sequence

    [#138 div 1 A. Bracket Sequence] [原题] A. Bracket Sequence time limit per test 2 seconds memory limit ...

随机推荐

  1. geoserver wfs属性查询

    Geoserver参考连接:http://docs.geoserver.org/latest/en/user/services/wfs/reference.html 使用实例: http://loca ...

  2. devops与CICD

    前言 devops的概念已经在前一章已经说过了,下面介绍CICD的概念. CI(Continuous Integration,持续集成) 持续集成中,开发人员将会频繁地向主干提交代码,这些新提交的代码 ...

  3. kubernetes容器端口设置的坑

    1.使用dockerhub上面的镜像的时候,先到dockerhub上看镜像的相关信息. 2.不能随便修改容器应用的镜像,会出问题.

  4. nginx命令行及演示:重载、热部署、日志切割

    重载配置文件 nginx -s reload 热部署(升级nginx) 首先备份二进制文件 cp nginx nginx.old  拷贝新版本的nginx替换以前的nginx二进制文件 cp  ngi ...

  5. C++零食:WTL中使用双缓冲避免闪烁

    双缓冲的原理可以这样形象的理解:把电脑屏幕看作一块黑板.首先我们在内存环境中建立一个"虚拟"的黑板,然后在这块黑板上绘制复杂的图形,等图形全部绘制完毕的时候,再一次性的把内存中绘制 ...

  6. 【大白话系列】MySQL 学习总结 之 初步了解 MySQL Server 的 binlog 组件

    一.上节回顾 上节我们讲到,建议将 redo log 的刷盘策略设置为1:即提交事务时,强制将 redo log buffer 里的 redo log 刷入到磁盘后才算事务提交成功. 但是我们都知道, ...

  7. Codeforces_831

    A.线性判断. #include<bits/stdc++.h> using namespace std; ] = {}; int main() { ios::sync_with_stdio ...

  8. python之面向对象01

    1.面向过程编程最容易被初学者接受,其往往用一段长代码来实现指定功能,开发过程的思路是将数据与函数按照执行的逻辑顺序组织在一起,数据与函数分开考虑. 2.类与对象 (1)类是抽象的,是有相同属性和行为 ...

  9. ELF文件之四——使用链接脚本-2个函数-data

    main.c ; int main() { ; } int add() { ; } main.o 反汇编可以看到多了.text节的反汇编,存储的是全局变量的初始化数值 main.o对比,text段后面 ...

  10. Angular 从入坑到挖坑 - 组件食用指南

    一.Overview angular 入坑记录的笔记第二篇,介绍组件中的相关概念,以及如何在 angular 中通过使用组件来完成系统功能的实现 对应官方文档地址: 显示数据 模板语法 用户输入 组件 ...