博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #502 (in memory of Leopoldo Taravilse, Div. 1 + Div. 2)-D. The Wu
阅读量:4114 次
发布时间:2019-05-25

本文共 519 字,大约阅读时间需要 1 分钟。

D. The Wu

题意:给你有n个字符的01串,串中每个位置都有一个价值,同事给你有m个字符串的集合,集合中的串有n个字符,也都是01串,给你q个询问,每行有一个01串,还有一个整数k,将这个串和集合中的串进行比较,如果两个串中某一个位置的字符相同,那么就加上这一位的价值,问你在集合s中有多少个串与这个串比较之后得到的和小于k,输出满足条件的串的数量。

思路:

我们可以发现n很小,k也很小,我们可以把字符串转化为整数,通过(2^n)*(2^n)*n的时间复杂度预处理所有01串排列满足条件的数量。

 

#include 
#include
#include
#include
#include
#include
#include
#include
using namespace std;int a[20];int num[1<<13][150];char s[20];int numm[1<<13];int main(){ int n,q,m; scanf("%d%d%d",&n,&m,&q); for(int i=0; i

 

转载地址:http://lbgsi.baihongyu.com/

你可能感兴趣的文章
Reverse Integer--反转整数
查看>>
Container With Most Water --装最多水的容器(重)
查看>>
Longest Common Prefix -最长公共前缀
查看>>
Letter Combinations of a Phone Number
查看>>
Single Number II --出现一次的数(重)
查看>>
Valid Parentheses --括号匹配
查看>>
Remove Element--原地移除重复元素
查看>>
Remove Duplicates from Sorted Array--从有序数组中移除重复元素
查看>>
Count and Say
查看>>
Gas Station
查看>>
Palindrome Partitioning --回文切割 深搜(重重)
查看>>
Valid Palindrome 简单的回文判断
查看>>
Pascal's Triangle -- 生成杨辉三角
查看>>
Pascal's Triangle II 生成杨辉三角中的某行
查看>>
Minimum Depth of Binary Tree -- 二叉树的最小深度 DFS 加剪枝
查看>>
Climbing Stairs 爬楼梯方法 动态规划
查看>>
Merge Two Sorted Lists 合并两个有序链表
查看>>
pow(x,n) 为什么错这么多次
查看>>
Jump Game 动态规划
查看>>
Binary Tree Maximum Path Sum 自底向上求解(重重重重)
查看>>