loj515贪心只能过样例

Posted 探险家Mr.H

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了loj515贪心只能过样例相关的知识,希望对你有一定的参考价值。

bitset练习题。。。

位运算真的是玄学。。。

一开始真的“只能过样例”

后来发现把左移写成了小于号

鬼知道我在想什么/手动微笑

loj第一题

技术分享图片
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<vector>
#include<queue>
#include<set>
#include<map>
#include<stack>
#include<bitset>
#define ll unsigned long long
#define pi 3.14
#define eps 1e-9
#define inf 2147483233
#define m(a) memset(a,0,sizeof(a))
#define M(a) memset(a,127,sizeof(a))
#define REP(i,m,n) for(int i=1;i<=n;i++)
#define DWN(i,n,m) for(int i=n;i>=1;i++)
#define lowbit(x) x&(-x)
using namespace std;
inline int read()
{
    int x=0,f=1;
    char ch=getchar();
    while(!isdigit(ch)){if(ch==-)f=-1;ch=getchar();}
    while(isdigit(ch)){x=10*x+ch-0;ch=getchar();}
    return x*f;
}
inline void write(int x)
{
    int num=0;
    char buf[15];
    while(x)buf[++num]=(x%10)+0,x/=10;
    while(num)putchar(buf[num--]);
    putchar(\n);
}
int n,l,r;
bitset<1010101>bs[2];
int main()
{
    n=read();
    bs[0][0]=1;
    for(int i=1;i<=n;i++)
    {
        l=read(),r=read();
        for(int j=l;j<=r;j++) bs[i&1]|=(bs[!(i&1)]<<(j*j));
        bs[!(i&1)].reset();
    }
    write(bs[(n&1)].count());
    return 0;
}
View Code

 

以上是关于loj515贪心只能过样例的主要内容,如果未能解决你的问题,请参考以下文章

LibreOJ #515. 「LibreOJ β Round #2」贪心只能过样例

「LibreOJ#515」贪心只能过样例 (暴力+bitset)

LibreOJ #515. 「LibreOJ β Round #2」贪心只能过样例

汕头市队赛 SRM10 T1 贪心只能过样例

LibreOJ #515

luogu P5285 [十二省联考2019]骗分过样例