博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
zoj 2313 Chinese Girls' Amusement(2-A)
阅读量:6499 次
发布时间:2019-06-24

本文共 881 字,大约阅读时间需要 2 分钟。

题目地址:

这题的理论就是当且仅当(a,m)=1  时  a*k+b (1<=k<=m)  遍历mod m的完系  

一开始的感觉就是暴力  从n/2 开始减 ,直到互素为止,于是直接用java大整数写了:

import java.math.*;import java.util.*;import java.io.*;public class Main {		public static void main(String[] args) throws Exception {					    Scanner cin=new Scanner(System.in);	    	    int size=cin.nextInt();	    for(int l=0;l
竟然ac了 ,为啥不会超时?

理论解释是,当n=2*k+1 时 ,结果就是k,  当n=4*k时 结果就是2*k-1,  当n=4*k+2 时,结果就是2*k-2,  所以答案都离n/2距离很近,当然就不会超时了。

有了理论的分析 ,用c++也比较简单

但是还是java代码比较简洁~

#include
#include
using namespace std;void jminus(int a [],int n,int b){ a[n-1]-=b; for(int i=n-1;i>0;i--) { if(a[i]<0) { a[i]+=10; a[i-1]-=1; } }}void divide(int a [],int n ){ for(int i=0;i
>size; for(int l=0;l
>p; int n=strlen(p); int a[n]; for(int i=0;i

转载于:https://www.cnblogs.com/814jingqi/p/3247204.html

你可能感兴趣的文章
windows 自动化目录大纲(各企业架构不一样,按需选择)
查看>>
我的友情链接
查看>>
【Visual C++】游戏开发笔记十三 游戏输入消息处理(二) 鼠标消息处理
查看>>
我的友情链接
查看>>
Java 使用 Redis
查看>>
JPA常用注解
查看>>
Java基础学习总结(1)——equals方法
查看>>
Maven学习总结(6)——Maven与Eclipse整合
查看>>
HTML5:理解head
查看>>
oracle
查看>>
java SpringUtil获取bean
查看>>
Centos6.4最小化安装系统初始化脚本
查看>>
PaaS变厚了
查看>>
赛门铁克开启“容灾即服务”时代
查看>>
复杂度归纳--小结
查看>>
基础篇9-python基本数据结构-列表
查看>>
PHP学习笔记 第八讲 Mysql.简介和创建新的数据库
查看>>
【git】git入门之把自己的项目上传到github
查看>>
js获取鼠标位置
查看>>
2016.8.11 DataTable合并及排除重复方法
查看>>