51nod 1354 选数字
来源:互联网 发布:一拍两散 罪人 知乎 编辑:程序博客网 时间:2024/05/22 15:23
1354 选数字
看到题目后直接就01背包,只考虑到排除乘积大于K的….直接在测试运行处就TLE了…
思考一番之后,毫无耐心地查看了官方解题报告。。至于离散化之类的麻烦自然是率先忽略了,只注意到“不是K的约数即可排除”,毕竟就加个判断。
1、n个数里只要不是K的约数即可排除
2、相乘过程中乘积若不是K的约数也可忽略
AC代码:
#include<iostream>#include<stdio.h>#include<map>using namespace std;typedef long long ll;const int MOD = 1e9 + 7;typedef map<ll,int> M;M m;int main(){ int T,n,k,tmp; cin>>T; while(T--){ m.clear(); cin>>n>>k; m[0]++; while(n--){ scanf("%d",&tmp); if(k%tmp)continue; for(M::reverse_iterator it=m.rbegin();it!=m.rend();++it){ ll mu = tmp; if(it->first>0)mu*=it->first; if(mu<=k&&k%mu==0) m[mu]=(m[mu]+it->second)%MOD; } } cout<<m[k]<<endl; } return 0;}
0 0
- 51Nod-1354-选数字
- 51Nod 1354 选数字
- 51nod 1354 选数字
- 51nod 1354 选数字【DP】
- 51 nod 1354 选数字(stl+dp)
- 51nod 1354 选数字 (01背包变形)
- 51 nod 数数字
- 51 nod 数数字
- 数数字(51nod 1770)
- 51nod 1770 数数字
- 51nod-【1770 数数字】
- 51nod--1770数数字
- 1770 数数字 51NOD
- 【51Nod】1770 数数字
- 51nod 1043 幸运数字
- 51nod 1770 数数字
- 51nod--1770数数字
- 51Nod-1371-填数字
- 安卓抓包工具tcpdump
- 2016/12/9
- hadoop hdfs 管理
- 动态数组使用
- 在 Linux 部署 Java Web 项目
- 51nod 1354 选数字
- 对JS中的prototype的理解
- Netty消息延迟
- Essential Qt 第十三章 文件拖放
- js 获取昨天、今天、明天、后天的时间
- 设计模式:抽象工厂模式
- Apache Nifi性能测试
- 2016/12/10
- MongoDB入门使用经验