时间限制:0.5s

空间限制6M

题意:

       给出n个(1<=n<=10000)1~m(2<m<1000)范围内的数,选择其中任意个数,使它们的 乘积 模m 最大,输出最大的分数,和选择的数的编号。


Solution:

              DP,

              从第一个数开始,f[]记录当前有哪些数可以得到.如果k可以得到令f[k]=1;

              再记录路径,和更新ans。

              如果单纯使用二重循环将是N*M 的复杂度。有很大可能超过0.5s的时限。

              于是这里使用数组实现的记录了哪些数可以得到的链表,p是链表头。

code(31ms AC)

#include<cstdio>
int n, m, x;
int g[10009], pr[1009][2], f[1009][2];
void write (int x) {if (pr[x][0] != 0) write (pr[x][0]);printf ("%d ", pr[x][1]);
}
int main() {scanf ("%d %d", &n, &m);for (int i = 1; i <= n; i++) scanf ("%d", &x), g[i] = x % m;int p = 0, ans = 0;for (int i = 1; i <= n; i++) {for (int j = p; j != 0; j = f[j][1]) {int tem = (g[i] * j) % m;if (tem > 1 && !f[tem][0]) {f[tem][0] = 1; f[tem][1] = p;p = tem, pr[tem][0] = j, pr[tem][1] = i;if (tem > ans) ans = tem;}}if (!f[g[i]][0]) {f[g[i]][0] = 1, f[g[i]][1] = p;p = g[i], pr[g[i]][1] = i;if (g[i] > ans) ans = g[i];}}if (ans > 0) {printf ("%d\n", ans);write (ans);return 0;}puts ("1");return 0;
}

  

  

转载于:https://www.cnblogs.com/keam37/p/3904921.html

SGU 160.Magic Multiplying Machine相关推荐

  1. SGU 109 Magic of David Copperfield II

    SGU_109 一开始没有看到Ki是有范围限制的,于是构造了一个最简单的情况,先挪1步,然后把除左上角3个以外全删掉,然后再挪3步,除左上角外两个也删掉.返回的结果是PE,也着实让我困扰了一阵子. 虽 ...

  2. 史上最全的SGU题目分类

    由于SGU上神题遍地,特列此表,便于训练时分类训练. 101 Domino 欧拉路 102 Coprime 枚举/数学方法 103 Traffic Lights 最短路 104 Little Shop ...

  3. POJ前面的题目算法思路【转】

    1000 A+B Problem 送分题 49% 2005-5-7 1001 Exponentiation 高精度 85% 2005-5-7 1002 487-3279 n/a 90% 2005-5- ...

  4. 动态规划详解 转自瞿老师的博客

    目录     一.动态规划初探       1.递推       2.记忆化搜索       3.状态和状态转移       4.最优化原理和最优子结构       5.决策和无后效性   二.动态规 ...

  5. POJ 超详细分类

    POJ 各题算法 1000    A+B Problem            送分题     49%    2005-5-7 1001    Exponentiation         高精度   ...

  6. Principles of Machine Learning -- Before You Start 翻译

    全世界都在学习AI,当然我也不能例外.自动驾驶.人脸识别.遍地的机器人...So,今天起,我将开始着手翻译Principles of Machine Learning全书,全书共7个章节加一个导读,如 ...

  7. DBA常用Sql语句--留着给自己看

    查看表空间的名称及大小: SQL>select t.tablespace_name,round(sum(bytes/(1024*1024)),0) ts_size from dba_tables ...

  8. Fedora12 编译s3c2416 U-Boot1.3.4的Makefile和头文件

    复制Makefile到./ 和smdk2416.h到include/configs 执行: $ make distclean $ make smdk2416_config $make /** (C) ...

  9. objects365数据集类别对应表

    {'name': 'human', 'id': 1} #人 {'name': 'sneakers', 'id': 2} #运动鞋:球鞋:网球鞋 {'name': 'chair', 'id': 3} { ...

最新文章

  1. 强大的矩阵奇异值分解(SVD)和特征值及其应用
  2. 清华大数据软件成果亮相第三届数字中国建设峰会成果展览
  3. Silverlight:正式进入2.0
  4. java 实现HTTP连接(HTTPClient)
  5. python27安装-linux安装python2.7
  6. 多个结果集ResultSet的问题
  7. JavaScript原型与原型链(总结篇)
  8. tensorflow与keras的关系
  9. php获取html中文本框内容_小猿圈Python入门之批量获取html内body内容的方法
  10. kloxo 一行安装 -cnblogs
  11. django-admin源码解析
  12. Spring框架入门程序:获取Bean的三种方式
  13. 博士生如何进行文献阅读和文献整理?
  14. 考育婴师看什么书?中级育婴师需要备考多久?
  15. VBV缓冲区大小-MPEG2规范
  16. 【转】网页提示“证书错误:导航已阻止”,无法跳转解决办法。
  17. 解决 VMware 无法复制粘贴问题
  18. Linux /usr目录挂载到新分区
  19. Bulletproof零知识证明
  20. Html HBuilder封装APP

热门文章

  1. wordpress 当前栏目名,当前栏目的分类名
  2. Yii2 behavior运用
  3. visualstudio调试html,Visual Studio Code中调试JavaScript
  4. 嵌入式软件工程师2021面试指南【转】
  5. 多级指针和静动态内存的跨函数访问
  6. python发邮件给女朋友代码_python实现邮件发送完整代码(带附件发送方式)
  7. Spring事务CallbackPreferringPlatformTransactionManager
  8. 根据图片地址得到文件流
  9. run()方法和start()方法测试解析
  10. 10个常见的JS语言错误总汇