SGU 160.Magic Multiplying Machine

时间限制: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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290878.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Swift和Objective-C混编

Swift中调用Objective-C文件 1.新建Swift文件SwiftViewController.swift 2.因为工程为OC编写,第一次创建会提示需要创建"桥接文件" 3.此时的工程会有SwiftViewController.swift文件和HelloWorld-Bridging-Header.h桥接文件 4.检查桥接文件HelloWorld-Bridging-Header…

计算机网络病毒解读,【数据挖掘论文】计算机网络病毒防御数据挖掘技术应用(共3503字)...

摘要&#xff1a;网络病毒对网络系统的攻击会造成危害性&#xff0c;并对计算机的网络安全造成影响&#xff0c;使重要文件中毒&#xff0c;导致重要数据丢失。本文将结合数据挖掘技术的相关模式进行探讨&#xff0c;浅析数据挖掘技术对计算机网络病毒防御的实际应用。关键词&a…

Java的LockSupport.park()实现分析

LockSupport类是Java6(JSR166-JUC)引入的一个类&#xff0c;提供了基本的线程同步原语。LockSupport实际上是调用了Unsafe类里的函数&#xff0c;归结到Unsafe里&#xff0c;只有两个函数&#xff1a; park&#xff1a;阻塞当前线程(Block current thread),字面理解park&#x…

Android之用adb screencap -p命令截图

1、截图保存到sdcard adb shell /system/bin/screencap -p /sdcard/screenshot.png 2、pull拉取到本地 adb pull /sdcard/screenshot.png

Avalonia跨平台入门第二篇

前面一篇简单的弄了个Demo去玩耍了一下Avalonia;你还别说效还挺有意思,这不咱们今天接着更深一步的去了解他,来看看效果:在统信UOS下运行效果:环境搭建在统信UOS(多一步开启开发模式):使用开源的PanAndZoom控件&#xff1a;继承Canvas自定义控件,进行网格绘制&#xff1a;最终简…

耶鲁大学计算机科学录取,2020年耶鲁大学排名TFE Times美国最佳计算机科学硕士专业排名第18...

耶鲁大学实力介绍耶鲁大学(Yale University)&#xff0c;简称“耶鲁(Yale)”&#xff0c;是一所坐落于美国康涅狄格州纽黑文的世界著名私立研究型大学&#xff0c;是八所常春藤盟校中最重视本科教育的大学之一。耶鲁大学有3,200名教职工&#xff0c;每年招收约1,250名学生&…

[九]RabbitMQ-客户端源码之Consumer

在[八]RabbitMQ-客户端源码之ChannelN中讲述basicConsume的方法时设计到Consumer这个回调函数&#xff0c;Consumer其实是一个接口&#xff0c;真正实现它的是QueueingConsumer和DefaultConsumer&#xff0c;且DefaultConsumer是QueueingConsumer的父类&#xff0c;里面都是空方…

Performance Metrics(性能指标1)

Performance Metrics(性能指标) 在我们开始旅行本书之前&#xff0c;我必须先了解本书的性能指标和希望优化后的结果&#xff0c;在第二章中&#xff0c;我们探索更多的性能检测工具和性能指标&#xff0c;可是&#xff0c;您得会使用这些工具和明白这些性能指标的意义。 由于业…

ExtJs 4.x Ajax简单封装

/*** Ajax 请求*/ Ext.define("SinoCloudAjaxRequestClass", {constructor : function () {var me this;var viewport me.getViewPort();if(viewport){window.sinoCloudAjaxRequestClassLoadingMak new Ext.LoadMask(viewport, {msg:"处理中..."});}},r…

可能是.NET领域性能最好的对象映射框架——Mapster

我之前文章提到过 MediatR 的作者 Jimmy Bogard&#xff0c;他也是大名鼎鼎的对象映射框架 AutoMapper 的作者。AutoMapper 的功能强大&#xff0c;在 .NET 领域的开发者中有非常高的知名度和使用率。而今天老衣要提的是另外一款高性能对象映射框架&#xff1a;Mapster——它轻…

Android studio之Unknown run configuration type AndroidRunConfigurationType解决办法

1、问题 我也就是只是一开始点击了File->invalidate cachas / restart -> invalidate and restart 在Android studio里面运行之前正常的安卓项目&#xff0c;报下错误Unknown run configuration type AndroidRunConfigurationTyp 2、解决办法 原因&#xff1a;是因为插件…

Delphi XE5实现减少编译出来的程序体积

本文章介绍了Delphi XE5实现减少编译出来的程序体积&#xff0c;一般情况下&#xff0c;编译出来的文件会比较大&#xff0c;对于发布来说&#xff0c;比较不方便&#xff0c;经过查询&#xff0c;找到了两个减少体积的办法1&#xff1a;关闭DEBUG信息&#xff0c;通过下面的步…

超级计算机适用于科学计算,中国科学院

中科院合肥物质科学研究院物质科学计算中心超算用户使用规章为加强物质科学计算中心(中科院超级计算环境合肥分中心)的运行管理&#xff0c;合理和科学地使用超算资源&#xff0c;发挥超算平台在科研工作中的作用&#xff0c;特制订此规章。1. 用户应自觉遵守国家的各项法律规定…

[cocos2d]修改富文本文本和高度

1.local richTable { {text , color cc.c3b(173,118,15)}, {custom , color ItemMacro[index].color, param id} } 2.item:setContentSize(50,20)转载于:https://www.cnblogs.com/Faiz-room/p/6727072.html

CodeForces 546B

题目链接&#xff1a;http://acm.hust.edu.cn/vjudge/contest/view.action?cid82659#problem/C 解题思路&#xff1a;先对输入的数据放入a数组里面存储&#xff0c;再将a数组用sort进行排序&#xff0c;从第二个数开始判断&#xff0c;是否比第一个大&#xff0c;如果大&#…

Avalonia跨平台入门第一篇

作为一枚屌丝程序员来说最大的爱好就是撸代码,有时候根本停不下来(沉迷工作,无法自拔);因为一直都是WPF开发,后面也摸索了一下Xamarin的东西;这不又看到其他人又在搞什么跨平台;我也是手也很痒痒;就像刚开始摸索Xamarin一样,想又不知如何下手;这不再次迈出了第一步去摸索Avalon…

linux之用route命令看简单路由信息

1、我们在linux上简单看路由信息使用下面命令 route -n

三角形带优化库nvtrisrip的使用

nvtrisrip是NVIDIA提供的一个开源优化库&#xff0c;这个库可以将三角形顶点索引数组转换为三角形带索引数组。可以极大的提高渲染速度。NVIDIA这个库的官方地址是&#xff1a;http://www.nvidia.com/object/nvtristrip_library.html不过这里代码不全也不够新&#xff0c;推荐从…

angular-ui-tab-scroll

2019独角兽企业重金招聘Python工程师标准>>> A scrollable tab plugin intended for scrolling UI Bootstrap tabset. 功能介绍&#xff1a;http://npm.taobao.org/package/angular-ui-tab-scroll 下载地址&#xff1a;https://github.com/VersifitTechnologies/ang…

调用带有 out 参数的方法时检查弃元参数

前言C# 支持弃元&#xff0c;弃元是应用程序代码中故意未使用的占位符变量。弃元将意图传达给编译器和读取代码的其他人&#xff1a;你打算忽略表达式的结果。通过为变量分配下划线(_)作为其名称&#xff0c;可以指示变量是弃元变量。例如下列代码&#xff1a;if (DateTime.Try…