Codeforces Round #337 (Div. 2) 战报

这次CF很难得是白天比赛= =于是果断现场赛了
A Pasha and Stick
题意:给出总的木棍长度,求把木棍拆成一个矩形的方案数,不含正方形。
这个水题直接给代码了。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,ans;
int main()
{
    scanf("%d",&n);
    if(n%2){puts("0");return 0;}
    n/=2;
    if(n%2)ans=n/2;
    else ans=n/2-1;
    printf("%d\n",ans);
}

B Vika and Squares
题意:给出一个环状序列,可以从任意起点开始走。然后每经过一个格子就要把这个格子的值减一,如果走到一个格子值为0了就退出。问最多走多少步。
这个首先肯定要走序列最小值*长度这么多步,然后考虑接下来的状况,把整个数列的每个数都减去最小值,然后看最长的非0子串有多长,因为这个是环所以要破环为链。注意最后是long long。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a[400010],n,mv=1000000001,len,tmp;
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;++i)
        scanf("%d",&a[i]),mv=min(mv,a[i]),a[i+n]=a[i];
    for(int i=1;i<=2*n;++i)
    {
        a[i]-=mv;
        if(a[i])++tmp,tmp=min(tmp,n);
        else tmp=0;
        len=max(len,tmp);
    }
    printf("%I64d\n",1ll*mv*n+len);
}

C Harmony Analysis
题意:给出n,请你构造出2^n个2^n维向量使得它们两两垂直
题解:比如这是n=2的状况:
++- -
+-+-
++++
+- -+
仔细观察这个图,可以发现它是由n=1的状况演变而来的
++
+-
n=2的图的左上部分是n=1的图,左下部分是n=1的图,右上部分是n=1的图翻转后取反
加加
加减
加加
减加
减减
加减
右下部分的图是n=1的图翻转。
于是想到分治。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n;
bool map[600][600];
void work(int s,int xa,int xb,int ya,int yb,bool f)
{
    if(s==0)
    {
        map[ya][xa]=f;
        return;
    }
    int l=min(xa,xb),r=max(xa,xb);
    work(s-1,l,(r+l)>>1,ya,(yb+ya)>>1,f);
    work(s-1,l,(r+l)>>1,((yb+ya)>>1)+1,yb,f);
    work(s-1,r,((r+l)>>1)+1,ya,(yb+ya)>>1,!f);
    work(s-1,r,((r+l)>>1)+1,((yb+ya)>>1)+1,yb,f);
}
int main()
{
    scanf("%d",&n);
    work(n,1,1<<n,1,1<<n,1);
    for(int i=1;i<=(1<<n);++i)
    {
        for(int j=1;j<=(1<<n);++j)
            printf("%c",map[i][j]?'+':'*');
        puts("");
    }
}

D Vika and Segments
这个题的正解是扫描线。。。对这方面的题不熟。。还有40多分钟的时候开始做,还是没写出来。。

E Alphabet Permutations
觉得查询太魔性了于是没写。。

这次CF做对了3个题,rank250= =rating涨了108。。
如果做题速度更快的话那么rank会高100左右;
如果A了第四题那就前50了。。
所以还是要提高速度和姿势水平啊。。
不过这次D题考得不是很对我胃口,前面几次的D题以前有背景的比较好想些。
希望下次继续涨rating。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值