暑假集训cf50练之15

walfy walfy     2022-09-10     472

关键词:

CodeForces 402A

水题,模拟

技术分享
#include<map>
#include<set>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<cstdio>
#include<cassert>
#include<iomanip>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define C 0.5772156649
#define pi acos(-1.0)
#define ll long long
#define mod 1000000007
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
#pragma comment(linker, "/STACK:1024000000,1024000000")

using namespace std;

const double g=10.0,eps=1e-7;
const int N=100000+10,maxn=500+100,inf=0x3f3f3f;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int k,a,b,v;
    cin>>k>>a>>b>>v;
    int ans=0;
    while(a>0){
        if(b>0)
        {
            if(b>=k-1)
            {
                b-=k-1;
                a-=v*k;
            }
            else
            {
                a-=(b+1)*v;
                b=0;
            }
        }
        else
        {
            a-=v;
        }
      //  cout<<a<<endl;
        ans++;
    }
    cout<<ans<<endl;
    return 0;
}
/*********************

********************/
A

CodeForces 402B

wa了两发,因为没有注意必须为正的情况

技术分享
#include<map>
#include<set>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<cstdio>
#include<cassert>
#include<iomanip>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define C 0.5772156649
#define pi acos(-1.0)
#define ll long long
#define mod 1000000007
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
#pragma comment(linker, "/STACK:1024000000,1024000000")

using namespace std;

const double g=10.0,eps=1e-7;
const int N=1000+10,maxn=500+100,inf=0x3f3f3f;

int a[N],ans[N],b[N];
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n,k;
    cin>>n>>k;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
        b[i]=1+i*k;
    }
    int res=n+2;
    for(int i=0;i<3000;i++)
    {
        int sum=0;
        for(int j=0;j<n;j++)
            if(b[j]+i!=a[j])
                sum++;
        if(sum<res)
        {
            res=sum;
            for(int j=0;j<n;j++)
                ans[j]=b[j]+i;
        }
    }
    cout<<res<<endl;
    for(int i=0;i<n;i++)
    {
        if(a[i]>ans[i])cout<<"- "<<i+1<<" "<<a[i]-ans[i]<<endl;
        else if(a[i]<ans[i])cout<<"+ "<<i+1<<" "<<ans[i]-a[i]<<endl;
    }
    return 0;
}
/*********************

********************/
B

CodeForces 402E

这题以为是找规律之类的,后来发现居然是个强连通。。。把坐标转化为点,值大于1代表联通,如果整个图构成了一个强联通就可以

技术分享
#include<map>
#include<set>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<cstdio>
#include<cassert>
#include<iomanip>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define C 0.5772156649
#define pi acos(-1.0)
#define ll long long
#define mod 1000000007
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
#pragma comment(linker, "/STACK:1024000000,1024000000")

using namespace std;

const double g=10.0,eps=1e-7;
const int N=2000+10,maxn=500+100,inf=0x3f3f3f;

int n;
stack<int>s;
vector<int>v[N],ans[N];
int dfn[N],low[N];
int ins[N],inans[N];
int num,index;
void trajan(int u)
{
    ins[u]=2;
    low[u]=dfn[u]=++index;
    s.push(u);
    for(int i=0;i<v[u].size();i++)
    {
        int t=v[u][i];
        if(dfn[t]==0)
        {
            trajan(t);
            low[u]=min(low[u],low[t]);
        }
        else if(ins[t]==2)low[u]=min(low[u],dfn[t]);
    }
    if(low[u]==dfn[u])
    {
        ++num;
        while(!s.empty()){
            int k=s.top();
            s.pop();
            ins[k]=1;
            ans[num].push_back(k);
            inans[k]=num;
            if(k==u)break;
        }
    }
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
        {
            int m;
            cin>>m;
            if(i!=j&&m!=0)v[i].push_back(j);
        }
    memset(ins,0,sizeof ins);
    memset(inans,0,sizeof inans);
    memset(dfn,0,sizeof dfn);
    memset(low,0,sizeof low);
    num=index=0;
    for(int i=1;i<=n;i++)
        if(!dfn[i])
           trajan(i);
    if(num!=1)cout<<"NO"<<endl;
    else cout<<"YES"<<endl;
    return 0;
}
/********************
10
1 0 1 1 0 1 1 1 0 1
0 1 0 0 1 0 0 0 1 0
1 0 1 1 0 1 1 1 0 1
1 0 1 1 0 1 1 1 0 1
0 1 0 0 1 0 0 0 1 0
1 0 1 1 0 1 1 1 0 1
1 0 1 1 0 1 1 1 0 1
1 0 1 1 0 1 1 1 0 1
0 1 0 0 1 0 0 0 1 0
1 0 1 1 0 1 1 1 0 1
********************/
View Code

 

暑假集训cf50练之14

CodeforcesRound#425(Div.2)A超级水,三分钟1a#include<map>#include<set>#include<cmath>#include<queue>#include<stack>#include<vector>#include<cstdio>#include<cassert 查看详情

暑假集训cf50练之19

CodeforcesRound#388(Div.2)A水,总是忘记输出个数#include<map>#include<set>#include<cmath>#include<queue>#include<stack>#include<vector>#include<cstdio>#include<casser 查看详情

暑假集训cf50练之10

A水题,判断第一个,后面的全是0#include<map>#include<set>#include<cmath>#include<queue>#include<stack>#include<vector>#include<cstdio>#include<cassert>#include<ioma 查看详情

暑假集训cf50练之18

CodeforcesRound#426(Div.2)A,判断向哪边旋转的,枚举过的= =,感觉我的太复杂了,应该有更简单的方法#include<map>#include<set>#include<cmath>#include<queue>#include<stack>#include<vector>#include& 查看详情

暑假集训cf50练之7

CodeforcesRound#409第一题很水但是wa了一发,因为没考虑K前面是K的情况#include<map>#include<set>#include<cmath>#include<queue>#include<stack>#include<vector>#include<cstdio>#include&l 查看详情

暑假集训cf50练之12

这是一场爆0的比赛。。。。。。第一题wa了20发,longlong改double再改unsignedlonglong还是wa,最后判断的时候改成除,边界设为1e19就过了#include<map>#include<set>#include<cmath>#include<queue>#include<stack>#include<ve 查看详情

暑假集训cf50练之3

CodeforcesRound#349(Div.2)第一题直接算就行了为了追求手速忘了输出yes导致wa了一发。。。第二题技巧题,直接sort,然后把最大的和其他的相减就是构成一条直线,为了满足条件就+1#include<map>#include<set>#include<cmath>#include&... 查看详情

暑假集训cf50练之8

CodeforcesRound#400最近好像总是有点不想打,专题也刷不动,还是坚持这做了一场,虽然打到一半就没打了。。。(反正通常都只能做出两题)感觉自己切水题越来越熟练了,然而难题还是不会做。。A题,水,用vector存下来就行了#... 查看详情

暑假cf50练之1

CodeforcesRound#202(Div.2)第一题水题但是wa了一发,排队记录下收到的25,50,100,看能不能找零,要注意100可以找25*3复杂度O(n)第二题贪心,先找出最小的花费,然后就能得出最长的位数,然后循环对每个位上的数看能不能加上剩... 查看详情

[暑假集训--数位dp]cf55dbeautifulnumbers

Volodyaisanoddboyandhistasteisstrangeaswell.Itseemstohimthatapositiveintegernumberisbeautifulifandonlyifitisdivisiblebyeachofitsnonzerodigits.Wewillnotarguewiththisandjustcountthequantityofbeautifulnu 查看详情

2022.07.15暑假集训个人排位赛(代码片段)

2022.07.15暑假集训个人排位赛(十)赛后反省最后一场了,马马虎虎吧。最后1小时上了个厕所,回来没有继续研究麻烦的做法,反而从简去思考,然后就过题了。不用把题目想得太过复杂的。ProblemA出处HDU-4... 查看详情

2022.07.15暑假集训个人排位赛(代码片段)

2022.07.15暑假集训个人排位赛(十)赛后反省最后一场了,马马虎虎吧。最后1小时上了个厕所,回来没有继续研究麻烦的做法,反而从简去思考,然后就过题了。不用把题目想得太过复杂的。ProblemA出处HDU-4... 查看详情

暑假集训day11

时间回到昨天。今天学了一个超丧的东西——博弈论倒是挺有趣的。Treblecross(UVA_10561)这题细节很多,de了一天的bug话说博弈论的代码不是都不超过50行的吗、、、、#include<iostream>#include<cstdio>#include<cstring>usingnamespacest... 查看详情

暑假集训day7

从今天开始,进入数据结构专场。今天讲线段树。第一题就好丧,调了快一天。LA3938好像没什么可说的,就是细节比较多罢了#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>usingnamespacestd;constintmaxn=500010;inl... 查看详情

2022.07.11暑假集训个人排位赛(代码片段)

2022.07.11暑假集训个人排位赛(六)赛后反省看着比之前都好,但是还是一般般吧。动态规划还是不熟练。继续加油。昨晚一晚没睡,打完cf太激动了,然后看了会手机看了会题就更加兴奋睡不着了。不补题了... 查看详情

2022.07.11暑假集训个人排位赛(代码片段)

2022.07.11暑假集训个人排位赛(六)赛后反省看着比之前都好,但是还是一般般吧。动态规划还是不熟练。继续加油。昨晚一晚没睡,打完cf太激动了,然后看了会手机看了会题就更加兴奋睡不着了。不补题了... 查看详情

2021软件创新实验室暑假集训总结篇

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

2021软件创新实验室暑假集训总结篇

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