P1383盗窃-黑珍珠

背景

怪盗基德 VS OIBH

第二话

描写叙述

今次怪盗基德再次对阵OIBH,目标是Black Star!基德已经突破了数层封锁,到达

了OIBH总部存放Black Star的房间门口。OIBH的人也不是等闲之辈,他们在门上

设了password。password问题上仅仅有两个正整数n,m。

基德已经获悉password的生成方法。现

在要你帮他计算出password。

生成方法是这种:

设一个数组a[1..n](n即是上述中的n)中按递增存放了1..n这n个数。数组s是

a的子数组(就是集合s为集合a的子集)。而数组s中随意两个数的和都不被m整

除。s中数的数目最大值就是password!

格式

输入格式

一行两个整数n,m

输出格式

仅仅有一个数max,即password。

例子1

例子输入1[复制]

50 7

例子输出1[复制]

23

限制

每一个点1S

提示

1<=n,m<=10000

非常easy哦~~

来源

From 玛维-影之歌;

感谢kaito&aoko提供測试数据

此题的要素:

将1....n对m进行取余

得到了0.....m -1

显然假设0出现过的话,0仅仅能出现一次,

接着能够发现因为取余得到的结果的顺序是如此:0..5..m-1,0...5...m-1

所以在m/2前出现的数肯定比后面的数多,然后又由于x + y == m是不成立的

所以我们仅仅要取m/2范围内的数就能够了

#!/usr/bin/env python3
# -*- coding: utf-8 -*- import math
n, m = map(int,raw_input().split())
L = []
F = [0] * m
for i in range(1,n + 1):
F[i % m] += 1
cnt = 0
for i in range(1, m / 2 + 1):
cnt += F[i]
if F[0]:
cnt += 1
if m % 2 == 0:
if F[m / 2]:
cnt -= F[m / 2] - 1
print cnt

vijos- P1383盗窃-黑珍珠 (python + 代码优化)的更多相关文章

  1. python基础===Python 代码优化常见技巧

    Python 代码优化常见技巧 代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构.优化.扩展以及文档相关的事情通常需要消耗 8 ...

  2. Python 代码优化常见技巧

    代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构.优化.扩展以及文档相关的事情通常需要消耗 80% 的工作量.优化通常包含两方 ...

  3. python代码优化技巧

    转自:http://www.douban.com/group/topic/31478102/ 这个资料库还有些不错的好文章: http://www.ibm.com/developerworks/cn/ ...

  4. Python 代码优化技巧(一)

    Table of Contents 1. 代码优化Part1 1.1. if 判断的短路特性 1.2. join 合并字符串 1.3. while 1 和 while True 1.4. cProfi ...

  5. Python代码优化概要

    Python即是面向过程语言,也是面向对象语言,很多其它情况下充当脚本语言的角色.虽是脚本语言,但相同涉及到代码优化的问题,代码优化可以让程序执行更快,它是在不改变程序执行结果的情况下使程序执行效率更 ...

  6. python代码优化---就喜欢细节

    地址:http://www.codeproject.com/Tips/829060/Python-Code-Optimizations-Part-One 转发过来保存一下.喜欢精雕细琢,编程才有乐趣. ...

  7. Python代码优化及技巧笔记(一)

    前言 这里是记录一些本人在开发过程中遇到的一些细节问题.与君共勉. 版权说明 著作权归作者全部.商业转载请联系作者获得授权,非商业转载请注明出处. 作者:Coding-Naga链接:http://bl ...

  8. vijos - P1279Leave-绿光(数学归纳法 + python)

    P1279Leave-绿光 Accepted 标签:[显示标签] 背景 期待这一份幸运,和一份冲劲,多么奇异的际遇--. 燕姿在演唱完绿光这首歌后,出给了姿迷一个考题. 北欧有一个传说! 人一生中能看 ...

  9. python代码优化-----cpu和内存监控

    1.memory_profiler可以监控代码的内存消耗及增长量,以下面的代码为例. 发现在for循环里增加了0.3MB,这个工具可以帮助我们定位内存泄露的问题. 2.profile与cProfile ...

随机推荐

  1. 认识 jQuery (第一笔 点出重点)

    1.我们先来讨论一下 jQuery 是什么? 要认识jQuery(简写jQ)首先要知道JavaScript(简写 js),因为jq就是一堆js的函数,是普通的js,只不过jq应用广泛,形成了行业标准[ ...

  2. Mysql阿里数据源配置参考

    maven pom.xml配置 <dependency> <groupId>com.alibaba</groupId> <artifactId>drui ...

  3. (四)Mybatis总结之接口映射

    前面Mybatis是直接通过Dao层与数据交互,更好的方法是Mybatis通过接口映射方式与数据交互 1.在项目中添加maven支持(即pom.xml下添加支持) <!-- 在pom.xml下配 ...

  4. Selenium基于Python web自动化测试框架 -- PO

    关于selenium测试框架首先想到的就是PO模型,简单说下PO模型 PO模型的概念和理解: PO就是一个设计思想,将代码以页面为单位进行组织,针对这个页面上的所有信息.相关操作都放到一个类中,从而使 ...

  5. Android中 string.xml资源 如何添加参数?

    在android 开发,我们通常会用string.xml资源去设置textview等控件的字符串.而值一般是与程序的运行结果无关的. 但有时需要根据运行的结果来显示到控件中,这时字符串资源就不能写死了 ...

  6. key-value键值型数据库:Redis

    key-value键值型数据库:Redis redis Redis是in-memory型(内存型)的键值数据库,数据在磁盘上是持久的,键类型是字符串,值类型是字符串.字符串集合(Set).sorted ...

  7. 6.15 分解IP地址

    问题:将一个IP地址字段分解到列中,考虑下面列出的IP地址: 111.22.3.4 要得到如下所示的查询结果: +-----+----+---+---+| a   | b  | c | d |+--- ...

  8. POJ_1018_(dp)

    Communication System Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 28273   Accepted:  ...

  9. day21-2 类的派生

    目录 类的派生 派生方法一 派生方法二 类的派生 派生:子类中新定义属性的这个过程叫做派生 派生方法一 指明道姓访问某一个类的函数:该方法与继承无关 class People: def __init_ ...

  10. Django框架 之基础入门

    django是一款MVT的框架 一.基本过程 1.创建项目:django-admin startproject 项目名称 2.编写配置文件settings.py(数据库配置.时区.后台管理中英文等) ...