【noi 2.6_747】Divisibility(DP)

这题题意与前面的“判断整除”重复了。具体解释可看我这篇的博文。

http://www.cnblogs.com/konjak/p/5936738.html

 1 #include<cstdio>
 2 #include<cstdlib>
 3 #include<cstring>
 4 #include<iostream>
 5 using namespace std;
 6 #define N 10010
 7 #define K 110
 8 int a[N],f[N][K];
 9
10 int main()
11 {
12     int i,j,n,k;
13     scanf("%d%d",&n,&k);
14     for (i=1;i<=n;i++)
15       scanf("%d",&a[i]),a[i]%=k;
16     f[0][0]=1;
17     for (j=1;j<k;j++) f[0][j]=0;
18     for (i=1;i<=n;i++)
19      for (j=0;j<k;j++)
20      {
21        int x=(j-a[i]+k)%k,y=(j+a[i]+k)%k;
22        f[i][j]=f[i-1][x]|f[i-1][y];
23      }
24     if (f[n][0]) printf("Divisible\n");
25     else printf("Not divisible\n");
26     return 0;
27 }
时间: 2024-10-23 01:38:50

【noi 2.6_747】Divisibility(DP)的相关文章

【noi 2.6_9267】核电站(DP)

题意:n个数中不能同时选连续m个或以上,问方案数. 解法:f[i][j]表示从前i个中选,到第i个已经连续选了j个.j!=0时,  =f[i-1][j-1];j=0时, =f[i-1][0~m-1]; 优化1:f[i][m]存f[i-1][0~m-1],就不用多for一重. 1 #include<cstdio> 2 #include<cstdlib> 3 #include<cstring> 4 using namespace std; 5 6 long long f[5

【noi 2.6_90】滑雪(DP)

题意:输出最长下降路径的长度. 解法:f[i][j]表示结尾于(i,j)的最长的长度.由于无法确定4个方位已修改到最佳,所以用递归实现. 1 #include<cstdio> 2 #include<cstdlib> 3 #include<cstring> 4 #include<iostream> 5 using namespace std; 6 #define Maxn 110 7 8 int a[Maxn][Maxn],f[Maxn][Maxn]; 9 i

【noi 2.6_8464】股票买卖(DP)

题意:N天可买卖2次股票,问最大利润. 解法:f[i]表示前 i 天买卖一次的最大利润,g[i]表示后 i 天. 注意——当天可以又买又卖,不要漏了这个要求:数据较大. 1 #include<cstdio> 2 #include<cstdlib> 3 #include<cstring> 4 #include<iostream> 5 using namespace std; 6 7 #define N 100010 8 #define INF 1000010

【noi 2.6_9268】酒鬼(DP)

题意:有N瓶酒,不能连续喝>=3瓶的酒,问能喝的最大的酒量. 解法:同前一题相似,可以f[i][j]表示前i瓶中连续喝了j瓶的最大酒量.1.f[i][0]=f[i-1][3] ; 2.i=1或2时,f[i][j]=f[i-1][j-1]+a[i];   3. f[i][3]=mx;也可以只用f[i]. 1 #include<cstdio> 2 #include<cstdlib> 3 #include<cstring> 4 #include<iostream&

【noi 2.6_2989】糖果(DP)

题意:求取到总和为K的倍数的糖果的最大值. 解法:用模K的余数作为一个维度,f[i][j]表示在前i种糖果中取到总颗数模K余j的最大总颗数. 注意——f[i-1][j]要正常转移,而其他要之前的状态存在才能状态转移. 1 #include<cstdio> 2 #include<cstdlib> 3 #include<cstring> 4 #include<iostream> 5 using namespace std; 6 7 int a[110],f[11

【NOIP模拟题】Incr(dp)

太水的dp没啥好说的.. #include <cstdio> #include <cstring> #include <cmath> #include <string> #include <iostream> #include <algorithm> #include <queue> #include <set> #include <vector> #include <map> usin

【POJ 3071】 Football(DP)

[POJ 3071] Football(DP) Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4350   Accepted: 2222 Description Consider a single-elimination football tournament involving 2n teams, denoted 1, 2, -, 2n. In each round of the tournament, all tea

【POJ 3034】 Whac-a-Mole(DP)

[POJ 3034] Whac-a-Mole(DP) Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 3621   Accepted: 1070 Description While visiting a traveling fun fair you suddenly have an urge to break the high score in the Whac-a-Mole game. The goal of the W

【VMCloud云平台】SCCM(五)创建第一个集合

继上一篇云平台完成SCCM部署篇之后,SCCM篇正式开始,今天将开始介绍SCCM创建第一个集合,集合作用跟GPO中的作用域是一样的,即有时候你需要对不同范围的机器进行分发操作或其他操作时则需要把范围规定起来(紫色为完成实施,红色为实施中): 1. 打开管理控制台,定位点客户端符合性: 2. 在设备集合上点击右键选择创建设备集合: 3. 输入新集合名称,并选择目标机器所在的集合: 4. 点击下一步,新建成员规则,选择直接规则: 5. 输入资源类型与规则: 6. 接着就会出现筛选出来的值,进行勾选: