服务好的企业网站怎么建设wordpress里的小工具
web/
2025/10/8 1:59:09/
文章来源:
服务好的企业网站怎么建设,wordpress里的小工具,金华建设局网站,seo基础知识时间限制:0.5s 空间限制6M 题意#xff1a; 给出n个#xff08;1n10000#xff09;1~m#xff08;2m1000#xff09;范围内的数#xff0c;选择其中任意个数#xff0c;使它们的 乘积 模m 最大#xff0c;输出最大的分数#xff0c;和选择的数的编号。…时间限制:0.5s 空间限制6M 题意 给出n个1n100001~m2m1000范围内的数选择其中任意个数使它们的 乘积 模m 最大输出最大的分数和选择的数的编号。 Solution: DP, 从第一个数开始,f[]记录当前有哪些数可以得到.如果k可以得到令f[k]1; 再记录路径,和更新ans。 如果单纯使用二重循环将是N*M 的复杂度。有很大可能超过0.5s的时限。 于是这里使用数组实现的记录了哪些数可以得到的链表p是链表头。 code31ms AC #includecstdio
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/web/88814.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!