首页 > 其他分享 >hey_left 10 Codeforces Round 871 (Div. 4) 再续

hey_left 10 Codeforces Round 871 (Div. 4) 再续

时间:2024-01-20 14:44:41浏览次数:27  
标签:10 cnt 相与 int hey Codeforces dp left

题目链接

H.

没思路,查看题解
选择数组的非连续的子序列,就是每个数选或不选的问题
求个数,易dp
求子序列的数二进制相与结果有k个1的个数
把所有结果记录,再去筛选满足条件的结果
f[i][j]表示到第i个数,相与结果为j的子序列个数
正向思维:多个数相与得到结果
dp思维:枚举结果,考虑数如何相与得到
对于每个数:
不选:dp[i][j]+=dp[i-1][j]
选 :dp[i][j&a[i]]+=dp[i]j

#include <bits/stdc++.h>
using namespace std;

#define int long long
const int mod=1e9+7;
const int N=2e5+10;
int ans,n,k;

int num1(int x){
    int cnt=0;
    while(x){
        if(x&1)cnt++;
        x/=2;
    }
    return cnt;
}
void solve(){
    cin>>n>>k;ans=0;
    vector<int>a(n+1);
    vector<vector<int>>f(n+1,vector<int>(100));
    for(int i=1;i<=n;i++){
        cin>>a[i];f[i][a[i]]=1;
    }
    for(int i=1;i<=n;i++){
        for(int j=0;j<64;j++){
            f[i][j]=(f[i][j]+f[i-1][j])%mod;
            f[i][j&a[i]]=(f[i][j&a[i]]+f[i-1][j])%mod;
        }
    }
    for(int i=0;i<64;i++){
        if(num1(i)==k)ans=(ans+f[n][i])%mod;
    }
    cout<<ans<<'\n';
}

signed main(){
    int hey_left=1;
    cin>>hey_left;
    while(hey_left--){
        solve();
    }
}

标签:10,cnt,相与,int,hey,Codeforces,dp,left
From: https://www.cnblogs.com/wwww-/p/17976474

相关文章

  • hey_left 9 Codeforces Round 871 (Div. 4) 续
    题目链接E.连通块的搜索debug:用不上回溯,把连通块的贡献全部加起来#include<bits/stdc++.h>usingnamespacestd;intn,m;intg[1010][1010];boolvis[1010][1010];intma,tmp;intdx[5]={-1,1,0,0};intdy[5]={0,0,1,-1};voiddfs(intx,inty){tmp+=g[x][y];......
  • Windows 10 version 22H2 (updated Jan 2024) 中文版、英文版下载
    Windows10version22H2(updatedJan2024)中文版、英文版下载Windows1022H2企业版arm64x64作者主页:sysin.orgWindows10更新历史记录Windows10,version22H2,alleditions发布日期:2022/10/18版本:Windows10,版本22H2Windows10版本信息2022/10/19从W......
  • GYM102596L Yosupo's Algorithm【分治,支配对】
    给定平面上\(2n\)个点,每个点有坐标\((x_i,y_i)\),权值\(w_i\)及颜色\(c_i\)。所有点满足:若\(c_i=0\),则\(x_i<0\);若\(c_i=1\),则\(x_i>0\)。\(q\)次查询,每次给定\(L_i,R_i\),你需要选择两个点\(i,j\)满足如下条件:\(c_i=0,c_j=1\)。\(x_i<L,x_j>R\)或\(x_......
  • Educational Codeforces Round 161 (Rated for Div. 2)
    基本情况A犯病卡半小时。主要就是太着急,题目没有彻底分析清楚就开始想一些错误做法。C最优想法出来的慢。E比较好想。C.ClosestCitiesProblem-C-Codeforces就,显然是能走最近城市就走,不行就不走。一开始弄了一个自作聪明的预处理,但实际上每次查询还是\(\operatorn......
  • DB107S-ASEMI智能LED灯具专用DB107S
    编辑:llDB107S-ASEMI智能LED灯具专用DB107S型号:DB107S品牌:ASEMI封装:DBS-4最大重复峰值反向电压:1000V最大正向平均整流电流(Vdss):1A功率(Pd):50W芯片个数:4引脚数量:4类型:贴片、方桥正向浪涌电流:50A正向电压:1.05V最大输出电压(RMS):700V封装尺寸:如图工作温度:-55°C~150°C......
  • Codeforces Round 920 (Div. 3)
    题目链接点这里这场div3F题的算法很基础,但是我此前居然完全没接触过。(芙莉莲震惊.jpg)不过这下能够算法沙漠面积--了。CF1921ASquarevoidsolve(){intx1=1e9,y1=1e9,x2=-1e9,y2=-1e9,x,y;for(inti=1;i<=4;++i){cin>>x......
  • Python手相识别教程10命运线
    10命运线土星线是手相中信息量最大的线条之一。它记录了工作和生活方式的重大变化,描述了我们在人生不同阶段的安全感。这条线有很多名字:命运线、命运线,以及最贴切的安全线。命运线反映了货币安全,但这并不是土星线上显示的唯一一种安全。这条线的标记和特征可能是客观的,也可能......
  • [OI] 洛谷P1001过河卒题解
    [NOIP2002普及组]过河卒题目描述棋盘上\(A\)点有一个过河卒,需要走到目标\(B\)点。卒行走的规则:可以向下、或者向右。同时在棋盘上\(C\)点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。棋盘用坐标表示,\(A\)点\((0......
  • 初中英语优秀范文100篇-063Persistence Makes My Life Better-坚持让我的生活更美好
    PDF格式公众号回复关键字:SHCZFW063记忆树1Persistenceislikeateacherofmine.翻译坚持就像我的一位老师简化记忆坚持句子结构主语:"Persistence"(坚持)谓语:"islike"(像是)补语:"ateacherofmine"(我的一位老师)2Itteachesmealotandmakesm......
  • 10种经典神经网络结构优缺点
    十种常见的CNN架构LeNet优点:是最早的卷积神经网络之一,对于手写数字识别等小规模图像分类任务表现良好。缺点:对于大规模图像数据集或高维数据处理能力有限。应用场景:手写数字识别、简单的图像分类任务。AlexNet优点:引入了ReLU激活函数和Dropout技术,大幅提高了网络的准确性和稳定性......