凌晨起来打CF,0:05,也是我第一次codeforces

第一题:

我刚开始怀疑自己读错题了,怎么会辣么水。

判除了0的数字种类

#include <cstdio>
;
];
int main(){
    scanf("%d",&n);int i;
    ;i<=n;++i){
        ;
    }
    printf("%d",ans);
}

第二题:让你找一个x使x<=y且x不能被[2,p]内的数整除,使x尽量大

其实是暴力枚举。

#include <cstdio>
int p,y;
bool ck(int x){
    int i;
    ;i*i<=x&&i<=p;++i));
    ;
}
int main(){
    scanf("%d%d",&p,&y);
    int i;
    for(i=y;i>p;--i)if(ck(i)){
        printf("%d",i);
        ;
    }
    printf("-1");
}

第三题,模拟题,太水了,不细说:

#include <cstdio>
#include <iostream>
using namespace std;
long long k,d,t;
;
int main(){
    scanf(){
        printf("%I64d",t);
        ;
    }
    )*d;tmp-=k;
    ;
    long long tm=(long long)((double)t/(x+y));ans=tm*(k+tmp);double rt=(double)t-(double)tm*(x+y);
    if(rt<=k){
        ans+=rt;printf("%lf",ans);
    }else{
        ans+=k;rt-=k;ans+=rt*(;printf("%lf",ans);
    }
}

第四题:

给你一个有向图,问你能否奇数步走到一个初度为0的点,输出路径

初看吓得我以为是SG函数,然而并不是, tarjan+bfs就行了

bfs和dp一起来,这里的dp可以用spfa的方式,用一个可以让元素多次进出的队列,然后搞dp

tarjan用来判能不能平局,如果s以后的路上没有scc,就输出lose

#include <cstdio>
#include <algorithm>
#include <stack>
#include <queue>
using namespace std;
#define maxn 100010
#define maxm 200010
struct edge{int nxt,to;}e[maxm];
];
],inq[maxn];
void add(int u,int v){e[++pos]=(edge){head[u],v},head[u]=pos;}
stack<int>s;
queue<int>q;
void tar(int u){
    dnf[u]=low[u]=++dfs_cnt;s.push(u);int i;
    for(i=head[u];i;i=e[i].nxt){
        int v=e[i].to;
        if(!dnf[v]){
            tar(v);low[u]=min(low[u],low[v]);
        }else if(!scc[v])low[u]=min(low[u],dnf[v]);
    }
    if(low[u]==dnf[u]){
        for(scc_cnt++;;){
            int x=s.top();s.pop();++scc_size[scc_cnt];
            scc[x]=scc_cnt;if(x==u)break;
        }
    }
}
void dfs(int u,int sta){
    if(u){
        dfs(pre[u][sta],sta== ? :);
        ans[++ans[]]=u;
    }
}
int main(){
    scanf("%d%d",&n,&m);int i;
    ;i<=n;++i){
        int k,x;scanf("%d",&k);
        while(k--){
            scanf("%d",&x);add(i,x);++out[i];
        }
    }
    scanf("%d",&st);
    ;i<=n;++i)if(!dnf[i])tar(i);
    ;
    dp[st][]=;q.push(st);inq[st]=;
    while(!q.empty()){
        ;
        )flg=;
        for(i=head[u];i;i=e[i].nxt){
            int v=e[i].to;
            ] && dp[v][]==){
                dp[v][]=;pre[v][]=u;;
            }
            ] && dp[v][]==){
                dp[v][]=;pre[v][]=u;;
            }
        }
    }
    ;i<=n;++i)] && ){
        dfs(i,);printf("Win\n");
        ;j<=ans[];++j)printf(;
    }
    if(flg)printf("Draw");else printf("Lose");
}

T5:构造题

题意是给定一个字符串S1,S2(这不是两个吗。。。)长度2e3以下

定义操作:

将s1的后缀x个进行一次反转,再放到字符串首

如果操作多余6100,则答案无效

分析:

对于一个字符串:ABxC(A:与s2后缀相符的字符串,x:S2后缀A之前的那个字符,也就是我们要将x放到A前面,B,C:都是无关紧要的乱序字符串)

ABxC->CxBA(每个都反转)->ABCx->xABC 操作次数3n

#include <cstdio>
#include <cstring>
using namespace std;
#define maxn 2010
char s1[maxn],s2[maxn];
],h1[],h2[];
int idx(char c){return c-'a';}
bool jg(){
    ;i<n;++i);
    ;
}
bool ck(int l1,int r1,int l2,int r2){
    ;
    ;
}
int main(){//freopen("o1.txt","w",stdout);
    scanf("%d",&n);
    scanf(;
    int i;
    ;i<n;++i)h1[idx(s1[i])]++,++h2[idx(s2[i])];
    ;i<;++i)if(h1[i]!=h2[i]){
        printf(;
    }
    while(!jg()){
        ,bpos=-,cpos=-,xpos=-;
        ,i-,n-i,n-);--i);len=i;
        apos=len-;
        ;s1[i]!=s2[n-len-];++i);
        bpos=i-;xpos=i;cpos=n;
        ans[++ans[]]=n;ans[++ans[]]=bpos+;ans[++ans[]]=;
        char tmp[maxn];
        tmp[]=s2[n-len-];;
        ;i<=apos;++i)tmp[++ps]=s1[i];
        ;i<=bpos;++i)tmp[++ps]=s1[i];
        //for(i=xpos+1;i<n;++i)tmp[++ps]=s1[i];
        ;i>=xpos+;--i)tmp[++ps]=s1[i];
        ;i<n;++i)s1[i]=tmp[i];
    }
    printf(]);
    ;i<=ans[];++i)printf("%d ",ans[i]);
}

Codeforces Round #467(Div2)题解的更多相关文章

  1. [Codeforces Round #461 (Div2)] 题解

    [比赛链接] http://codeforces.com/contest/922 [题解] Problem A. Cloning Toys          [算法] 当y = 0 ,   不可以 当 ...

  2. CodeForces round 967 div2 题解(A~E)

    本来准备比完赛就写题解的, 但是一拖拖了一星期, 唉 最后一题没搞懂怎么做,恳请大神指教 欢迎大家在评论区提问. A Mind the Gap 稳定版题面 https://cn.vjudge.net/ ...

  3. Codeforces Round #407 div2 题解【ABCDE】

    Anastasia and pebbles 题意:你有两种框,每个框可以最多装k重量的物品,但是你每个框不能装不一样的物品.现在地面上有n个物品,问你最少多少次,可以把这n个物品全部装回去. 题解:其 ...

  4. Codeforces Round#704 Div2 题解(A,B,C,D,E)

    FST ROUND !!1 A Three swimmers: 直接整除一下向上取整就好了: #include <bits/stdc++.h> using namespace std; t ...

  5. Codeforces Round#687 Div2 题解

    打这场的时候迷迷糊糊的,然后掉分了( A Prison Break: 题面很复杂,但是题意很简单,仅需求出从这个点到四个角的最大的曼哈顿距离即可 #include <bits/stdc++.h& ...

  6. CodeForces Round #516 Div2 题解

    A. Make a triangle! 暴力... 就是给你三个数,你每次可以选一个加1,问最少加多少次能构成三角形 #include <bits/stdc++.h> #define ll ...

  7. Codeforces Round #467 (div.2)

    Codeforces Round #467 (div.2) 我才不会打这种比赛呢 (其实本来打算打的) 谁叫它推迟到了\(00:05\) 我爱睡觉 题解 A. Olympiad 翻译 给你若干人的成绩 ...

  8. Codeforces Round #539 div2

    Codeforces Round #539 div2 abstract I 离散化三连 sort(pos.begin(), pos.end()); pos.erase(unique(pos.begin ...

  9. Codeforces Round #543 Div1题解(并不全)

    Codeforces Round #543 Div1题解 Codeforces A. Diana and Liana 给定一个长度为\(m\)的序列,你可以从中删去不超过\(m-n*k\)个元素,剩下 ...

随机推荐

  1. UVA12163 游戏

    题目大意 现在有两个人在一个n个结点的有向图上玩一个双人游戏,保证图中无环和自圈.游戏的规则如下:1.初始的时候$i$号点有一个正权值$value_i$2.两名玩家依次操作,每个玩家在当前回合可以选择 ...

  2. bzoj1059ZJOI2017矩阵游戏

    小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏——矩阵游戏.矩阵游戏在一个N *N黑白方阵进行(如同国际象棋一般,只是颜色是随意的).每次可以对该矩阵进行两种操作:行交换操作:选 ...

  3. CH5103 [NOIP2008]传纸条[线性DP]

    给定一个 N*M 的矩阵A,每个格子中有一个整数.现在需要找到两条从左上角 (1,1) 到右下角 (N,M) 的路径,路径上的每一步只能向右或向下走.路径经过的格子中的数会被取走.两条路径不能经过同一 ...

  4. 移动端H5 button 默认事件

    button 在移动端下会有自带的默认事件,如果不处理的话,点击按钮的时候会有自动刷新页面的效果,原因就是button的默认事件没有阻止. 所以在点击事件里面要加上 e.preventDefault( ...

  5. 【转】Pro Android学习笔记(三十):Menu(1):了解Menu

    目录(?)[-] 创建Menu MenuItem的属性itemId MenuItem的属性groupId MenuItem的属性orderId MenuItem的属性可选属性 Menu触发 onOpt ...

  6. Python知识点:distutils常用子模块

    from distutils.core import setup, Extension, Commandfrom distutils.command.build import buildfrom di ...

  7. 自定义滚动条jQuery插件- Perfect Scrollbar

    主要特性: 不需要修改任何的元素的css 滚动条不影响最初的页面布局设计 滚动条支持完整的自定义 滚动条的尺寸和位置会随着容器尺寸或者内容的变化而变化 依赖于jQuery和相关几个类库 不需要定义宽度 ...

  8. VC6.0 工程转到VS2010一些问题的描述及解决方法

    下列为VC6.0 工程转到VS2008一些问题的描述及解决方法 //////////////////////////////////////////////////////////////////// ...

  9. linux命令-gzip压缩

    把很大的目录/文件压缩成更小的文件,传输节省带宽,从服务端到客户端下载过程节省时间,减少带宽,节省使用率.使用cpu的资源. 压缩命令gzip [root@wangshaojun ~]# ls111. ...

  10. position应用之相对父元素的定位

    分别添加以下style即可: 父元素position:relative; 子元素position:absolute; right:0px; bottom:0px;