南昌航空大学4-6次PTA总结

Posted 200409lzb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了南昌航空大学4-6次PTA总结相关的知识,希望对你有一定的参考价值。

对近期所学进行一个小结,主要针对pta上所发布的近三次作业,从多方面来分析这三次作业之间的联系和差异性,并从中了解自己的不足和缺点。最近的三次作业,

  第一次作业除了第一题菜单类比较难其他还是比较简单,通过调用java自带的方法来节省我们编程的时间,主要考察的是我们对java的字符串处理,例如查找重复的数据,字符串的统计和排序GPS的度分秒转换。对于Java处理日期的函数的调用。

  第二次作业考察了正则表达式,和日期类的设计,主要考察了类之间的聚合关系。前面几题的难度比较小,最后两题日期类的难度较大,主要是对类之中的调用关系不太熟练。求下n天的判断逻辑处理不好,但是经过不断的改正也写出来了。因为是初学,题目给了类图,我们只需要根据类图来写代码比较简单

  第三次作业的难度较大,考察水文正则表达式,银行账户类设计,图形类的继承。其中水文检测这题难度比较大,我写了两个晚自习还没有写出来。这也让我发现自己的能力还是有很大的不足之处,在处理较难问题时,不应该马上写代码,而是要先对程序进行设计,先想一下程序有几个类以及类与类之间的关系。

代码如下:

7-5 面向对象编程(封装性)
分数 10
全屏浏览题目
切换布局
作者 蒋辉
单位 天津仁爱学院

Student类具体要求如下:
私有成员变量:学号(sid,String类型),姓名(name,String类型),年龄(age,int类型),专业(major,String类型) 。
提供无参构造和有参构造方法。(注意:有参构造方法中需要对年龄大小进行判定)
普通成员方法:print(),输出格式为“学号:6020203100,姓名:王宝强,年龄:21,专业:计算机科学与技术”。
普通成员方法:提供setXxx和getXxx方法。(注意:setAge()方法中需要对年龄进行判定)
注意:
年龄age不大于0,则不进行赋值。
print()中的“:”和“,”为均为中文冒号和逗号。

import java.util.*;

public class Main
    public static void main(String[] args) 
        Scanner sc = new Scanner(System.in);
        //调用无参构造方法,并通过setter方法进行设值
        String sid1 = sc.next();
        String name1 = sc.next();
        int age1 = sc.nextInt();
        String major1 = sc.next();
        Student student1 = new Student();
        student1.setSid(sid1);
        student1.setName(name1);
        student1.setAge(age1);
        student1.setMajor(major1);
        //调用有参构造方法
        String sid2 = sc.next();
        String name2 = sc.next();
        int age2 = sc.nextInt();
        String major2 = sc.next();
        Student student2 = new Student(sid2, name2, age2, major2);
        //对学生student1和学生student2进行输出
        student1.print();
        student2.print();
    


/* 请在这里填写答案 */
class Student
     private String sid;
    private String name;
    private int age;
    private String major;
   public Student() 
    
public Student(String sid,String name,int age,String major)
    this.sid=sid;
    this.name=name;
    if(age>0)
    this.age=age;
    this.major=major;

   public String getSid()
       return sid;
   
   public String getName()
       return name;
   
   public int getAge()
       return age;
   
   public String getMajor()
       return  major;
   
   public void setSid(String sid)
       this.sid=sid;
   
    public void setName(String name)
        this.name=name;
    
      public void setAge(int age)
          this.age=age;
      
      public void setMajor(String major)
          this.major=major;
      
    public void print()
   System.out.println("学号:" + sid + ",姓名:" + name + ",年龄:" + age + ",专业:" + major);
    

第三次7-1:

7-1 菜单计价程序-3
分数 30
全屏浏览题目
切换布局
作者 蔡轲
单位 南昌航空大学

设计点菜计价程序,根据输入的信息,计算并输出总价格。

输入内容按先后顺序包括两部分:菜单、订单,最后以"end"结束。

菜单由一条或多条菜品记录组成,每条记录一行

每条菜品记录包含:菜名、基础价格 两个信息。

订单分:桌号标识、点菜记录和删除信息、代点菜信息。每一类信息都可包含一条或多条记录,每条记录一行或多行。

桌号标识独占一行,包含两个信息:桌号、时间。

桌号以下的所有记录都是本桌的记录,直至下一个桌号标识。

点菜记录包含:序号、菜名、份额、份数。份额可选项包括:1、2、3,分别代表小、中、大份。

不同份额菜价的计算方法:小份菜的价格=菜品的基础价格。中份菜的价格=菜品的基础价格1.5。小份菜的价格=菜品的基础价格2。如果计算出现小数,按四舍五入的规则进行处理。

删除记录格式:序号 delete

标识删除对应序号的那条点菜记录。

如果序号不对,输出"delete error"

代点菜信息包含:桌号 序号 菜品名称 份额 分数

代点菜是当前桌为另外一桌点菜,信息中的桌号是另一桌的桌号,带点菜的价格计算在当前这一桌。

程序最后按输入的先后顺序依次输出每一桌的总价(注意:由于有代点菜的功能,总价不一定等于当前桌上的菜的价格之和)。

每桌的总价等于那一桌所有菜的价格之和乘以折扣。如存在小数,按四舍五入规则计算,保留整数。

折扣的计算方法(注:以下时间段均按闭区间计算):

周一至周五营业时间与折扣:晚上(17:00-20:30)8折,周一至周五中午(10:30--14:30)6折,其余时间不营业。

周末全价,营业时间:9:30-21:30

如果下单时间不在营业范围内,输出"table " + t.tableNum + " out of opening hours"

参考以下类的模板进行设计:菜品类:对应菜谱上一道菜的信息。

Dish

String name;//菜品名称

int unit_price; //单价

int getPrice(int portion)//计算菜品价格的方法,输入参数是点菜的份额(输入数据只能是1/2/3,代表小/中/大份)

菜谱类:对应菜谱,包含饭店提供的所有菜的信息。

Menu

Dish\\[\\] dishs ;//菜品数组,保存所有菜品信息

Dish searthDish(String dishName)//根据菜名在菜谱中查找菜品信息,返回Dish对象。

Dish addDish(String dishName,int unit_price)//添加一道菜品信息

点菜记录类:保存订单上的一道菜品记录

Record

int orderNum;//序号\\\\

Dish d;//菜品\\\\

int portion;//份额(1/2/3代表小/中/大份)\\\\

int getPrice()//计价,计算本条记录的价格\\\\

订单类:保存用户点的所有菜的信息。

Order

Record\\[\\] records;//保存订单上每一道的记录

int getTotalPrice()//计算订单的总价

Record addARecord(int orderNum,String dishName,int portion,int num)//添加一条菜品信息到订单中。

delARecordByOrderNum(int orderNum)//根据序号删除一条记录

findRecordByNum(int orderNum)//根据序号查找一条记录

### 输入格式:

桌号标识格式:table + 序号 +英文空格+ 日期(格式:YYYY/MM/DD)+英文空格+ 时间(24小时制格式: HH/MM/SS)

菜品记录格式:

菜名+英文空格+基础价格

如果有多条相同的菜名的记录,菜品的基础价格以最后一条记录为准。

点菜记录格式:序号+英文空格+菜名+英文空格+份额+英文空格+份数注:份额可输入(1/2/3), 1代表小份,2代表中份,3代表大份。

删除记录格式:序号 +英文空格+delete

代点菜信息包含:桌号+英文空格+序号+英文空格+菜品名称+英文空格+份额+英文空格+分数

最后一条记录以“end”结束。

### 输出格式:

按输入顺序输出每一桌的订单记录处理信息,包括:

1、桌号,格式:table+英文空格+桌号+”:”

2、按顺序输出当前这一桌每条订单记录的处理信息,

每条点菜记录输出:序号+英文空格+菜名+英文空格+价格。其中的价格等于对应记录的菜品\\*份数,序号是之前输入的订单记录的序号。如果订单中包含不能识别的菜名,则输出“\\*\\* does not exist”,\\*\\*是不能识别的菜名

如果删除记录的序号不存在,则输出“delete error”

最后按输入顺序一次输出每一桌所有菜品的总价(整数数值)格式:table+英文空格+桌号+“:”+英文空格+当前桌的总价

本次题目不考虑其他错误情况,如:桌号、菜单订单顺序颠倒、不符合格式的输入、序号重复等,在本系列的后续作业中会做要求。

输入格式:

桌号标识格式:table + 序号 +英文空格+ 日期(格式:YYYY/MM/DD)+英文空格+ 时间(24小时制格式: HH/MM/SS)

菜品记录格式:

菜名+英文空格+基础价格

如果有多条相同的菜名的记录,菜品的基础价格以最后一条记录为准。

点菜记录格式:序号+英文空格+菜名+英文空格+份额+英文空格+份数注:份额可输入(1/2/3), 1代表小份,2代表中份,3代表大份。

删除记录格式:序号 +英文空格+delete

代点菜信息包含:桌号+英文空格+序号+英文空格+菜品名称+英文空格+份额+英文空格+分数

最后一条记录以“end”结束。

输出格式:

按输入顺序输出每一桌的订单记录处理信息,包括:

1、桌号,格式:table+英文空格+桌号+“:”

2、按顺序输出当前这一桌每条订单记录的处理信息,

每条点菜记录输出:序号+英文空格+菜名+英文空格+价格。其中的价格等于对应记录的菜品\\*份数,序号是之前输入的订单记录的序号。如果订单中包含不能识别的菜名,则输出“\\*\\* does not exist”,\\*\\*是不能识别的菜名

如果删除记录的序号不存在,则输出“delete error”

最后按输入顺序一次输出每一桌所有菜品的总价(整数数值)格式:table+英文空格+桌号+“:”+英文空格+当前桌的总价

本次题目不考虑其他错误情况,如:桌号、菜单订单顺序颠倒、不符合格式的输入、序号重复等,在本系列的后续作业中会做要求。

类图:

代码实现:
 
     import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.*;
public class Main
    public static void main(String[] args) 
        int countOfOrder = 0;
        Menu menu = new Menu();// 创建一个菜单
        Order order = new Order();// 创建集合
        Operator operator = new Operator();// 创建业务类对象
        operator.recordDish(menu);// 记录菜单
        operator.recordOrderNum(order);// 记录桌号
        operator.recordTime(order);// 记录时间
        operator.orderDish(order,menu);// 记录点菜
        // 输出
        operator.output(order);



class Operator // 业务类
Scanner input = new Scanner(System.in);
public void output(Order order) 
boolean flag = true;
for (int j = 0; flag; j++) 
    float totalCost = 0;
    if(order.judgeTime(order) == -1)
        System.out.println("table " +  order.getTableNum() + " out of opening hours");
    else 
        System.out.println("table " + order.getTableNum() + ": ");
        for (int i = 0; ; i++) 
            if (order.records[i].getOrderNum() != -1) 
                if (order.records[i].getIsValue() == 1) 
                    totalCost = totalCost + order.records[i].getPrice();
                
                System.out.println(order.records[i].orderNum + " " + order.records[i].getD().getName() + " " + order.records[i].getPrice());
             else 
                totalCost = totalCost * order.judgeTime(order);
                if (totalCost - (int) totalCost >= 0.5) 
                    totalCost = (int) totalCost + 1;// 四舍五入
                

                System.out.println("table " + order.getTableNum() + ": " + (int) totalCost);
                break;
            
        
        // 没设计好,先输出一桌
    
    flag = false;



public void recordDish(Menu menu)  //记录菜品
int price;
String name;
    for (int i = 0; ; i++) 
        name = input.next();
        if (name.equals("table")) 
            break;
        
        price = input.nextInt();
        menu.addDish(name, price);
    


public void recordOrderNum(Order order) // 记录编号
    order.setTableNum(input.nextInt());


public void recordTime(Order order) // 记录时间
    int year = 0,month = 0,day = 0,hour = 0,min = 0,sec = 0;
    String[] time = input.nextLine().replace("/"," ").split(" ");
    year = Integer.parseInt(time[1]);
    month = Integer.parseInt(time[2]);
    day = Integer.parseInt(time[3]);
    hour = Integer.parseInt(time[4]);
    min = Integer.parseInt(time[5]);
    sec = Integer.parseInt(time[6]);
    order.setYear(year);
    order.setMonth(month);
    order.setDay(day);
    order.setHours(hour);
    order.setMin(min);
    order.setSec(sec);


public boolean orderDish(Order order, Menu menu) // 记录点菜记录
boolean result = true;
    for (int i = 0; result; i++) 
        int num = 0;
        String nums = input.next();
        if (nums.equals("end"))
            result = false;
            break;
        else
            num = Integer.parseInt(nums);
        
        String dish = input.next();
        if(dish.equals("delete"))
            order.delARecordByOrderNum(num);
         else 
            order.records[i].isValue = 1;
            order.records[i].setOrderNum(num);
            order.records[i].setD(menu.searchDish(dish));
            order.records[i].setPortion(input.nextInt());
            order.records[i].setOrderQuantity(input.nextInt());
        
    
    return result;


public void deleteRecord(Order order, int recordNum) // 删除记录
    order.delARecordByOrderNum(recordNum);



class Dish // 记录一道菜品的信息
Dish(String name, int unit_price) 
    this.name = name;
    this.unit_price = unit_price;


private String name;//菜品名称

private int unit_price; //单价

public int getPrice(int portion) //计算菜品价格的方法,输入参数是点菜的份额(输入数据只能是1/2/3,代表小/中/大份)
    double cost = 0;
    if (portion == 1) 
        cost = unit_price;
     else if (portion == 2) 
        cost = unit_price * 1.5;
     else if (portion == 3) 
        cost = unit_price * 2;
    
    int result = 0;
    if (cost - (int) cost >= 0.5) 
        result = (int) cost + 1;
     else 
        result = (int) cost;
    
    return result;


public String getName() 
    return name;


public int getUnit_price() 
    return unit_price;



class Menu 
public Dish[] dishs = new Dish[1000];//菜品数组,保存所有菜品信息
int dishIndex = 0;

public Dish searchDish(String dishName) 
    boolean existDish = false;// 记录判断结果
    Dish result = new Dish("0", 0);
    for (int i = 0; i < 1000 ; i++) 
        if (this.dishs[i].getName().equals(dishName)) 
            result = dishs[i];
            existDish = true;
            break;
        
    
    if (existDish == false) 
        System.out.println(dishName + "does not exist");
    
    return result;
//根据菜名在菜谱中查找菜品信息,返回Dish对象。

public void addDish(String dishName, int unit_price) 
    dishs[dishIndex] = new Dish(dishName, unit_price);
    dishIndex++;
//添加一道菜品信息


class Record 
int orderNum;// 序号
Dish d;// 菜品
int orderQuantity;// 份数
int isValue = 0;// 记录是否作数
int portion;// 份额(1/2/3代表小/中/大份)
public int getPrice() 
    return this.orderQuantity * d.getPrice(portion);
//计价,计算本条记录的价格
Record()


Record(int orderNum, String name, int orderQuantity, int portion) 
    setOrderNum(orderNum);
    setPortion(portion);
    setOrderQuantity(orderQuantity);


public int getOrderNum() 
    return orderNum;


public void setOrderNum(int orderNum) 
    this.orderNum = orderNum;


public int getIsValue() 
    return isValue;


public void setIsValue(int isValue) 
    this.isValue = isValue;


public Dish getD() 
    return d;


public void setD(Dish d) 
    this.d = d;


public int getOrderQuantity() 
    return orderQuantity;


public void setOrderQuantity(int orderQuantity) 
    this.orderQuantity = orderQuantity;


public int getPortion() 
    return portion;


public void setPortion(int portion) 
    this.portion = portion;



class Order 
Record[] records = new Record[100];// 保存订单上每一道的记录

int tableNum;// 桌编号

Order()
    for(int i = 0 ;i < 100 ;i++)
        this.records[i] = new Record(-1,"1",-1,-1);// 实例化创建内存
    

public float judgeTime(Order order) // 判断下单时间获得折扣或不营业
    int week = 3;// 星期数
    float discount = 1;
    LocalDate timeStander = LocalDate.of(1898, 12, 19);// 设置参照时间1000年1月1 星期三
    LocalDate time = LocalDate.of(order.getYear(), order.getMonth(), order.getDay());
    week = ((int) timeStander.until(time, ChronoUnit.DAYS) + week) % 7;// 计算当前星期几
    if (week >= 1 && week <= 5) // 周一到周五
        if (order.getHours() >= 17 && order.getHours() < 20 && order.getMin() < 60 && order.getMin() >= 0 || order.getHours() == 20 && order.getMin() <= 30 && order.getMin() >= 0) 
            discount = 0.8F;
        //晚上
        else if (order.getHours() > 10 && order.getHours() < 14 && order.getMin() < 60 && order.getMin() >= 0 || order.getHours() == 10 && order.getMin() <= 30 && order.getMin() >= 0 || order.getHours() == 14 && order.getMin() <= 30 && order.getMin() >= 0) 
            discount = 0.6F;
        //中午
        else 
            discount = -1;
        // 不营业

     else // 周六周日week = 6 或 0
        if (order.getHours() > 9 && order.getHours() < 21 && order.getMin() < 60 && order.getMin() >= 0 || order.getHours() == 9 && order.getMin() <= 30 && order.getMin() >= 0) 
            discount = 1;
        // 营业
        else 
            discount = -1;
        // 不营业
    
    return discount;

public int getTableNum() 
    return tableNum;


public void setTableNum(int tableNum) 
    this.tableNum = tableNum;


int year, month, day, hours, min, sec; // 记录下单时间

public int getYear() 
    return year;


public void setYear(int year) 
    this.year = year;


public int getMonth() 
    return month;


public void setMonth(int month) 
    this.month = month;


public int getDay() 
    return day;


public void setDay(int day) 
    this.day = day;


public int getHours() 
    return hours;


public void setHours(int hours) 
    this.hours = hours;


public int getMin() 
    return min;


public void setMin(int min) 
    this.min = min;


public int getSec() 
    return sec;


public void setSec(int sec) 
    this.sec = sec;


public int getTotalPrice() 
    int sum = 0;
    for (int i = 0; i <= recordIndex; i++) 
        if(records[i].getIsValue() == 1)
            sum = sum + records[i].getPrice();
        
    
    return sum;
//计算订单的总价(不含折扣)

static int recordIndex = 0;// 记录索引

public Record addARecord(int orderNum, String name, int orderQuantity, int portion, Menu menu) 
    this.records[recordIndex] = new Record(orderNum, name, orderQuantity, portion);
    recordIndex++;
    return this.records[recordIndex - 1];
//添加一条菜品信息到订单中。

public void delARecordByOrderNum(int orderNum) 
    int i = 0;
    for (i = 0; ; i++) 
        if (records[i].orderNum == orderNum) 
            records[i].setIsValue(0);
            break;
        
    
//根据序号删除一条记录

public Record findRecordByNum(int orderNum) 
    int i = 0;
    for (i = 0; ; i++) 
        if (orderNum == records[i].orderNum) 
            records[i].isValue = 0;
            break;
        
    
    return records[i];
//根据序号查找一条记录

 

这道题目对我来说确实是难度很大,在有限的时间内我也尽力尝试去完成了,即便只完成了很少的测试点,但在此次作业中,我还是有很多收获,下面列举一些我在本题中踩过的坑与收获心得。

  1. 在面对复杂程序时,务必要先花时间进行类设计,不论是实体类还是业务类,都要根据需求进行相应的设计,不得边写边设计,最后耗费时间且代码质量低。
  2. 编码应当遵守编码规范,尤其是空格和缩进,对于这种长代码,往往一时半会难以完成,隔天再看时代码的结构非常影响阅读,合理的编码方式不仅提高效率,也提高代码质量,反之则会导致低效低质。
 
 
7-4 正则表达式训练-学号校验
分数 7
全屏浏览题目
切换布局
作者 段喜龙
单位 南昌航空大学

对软件学院2020级同学学号进行校验,学号共八位,规则如下:

  • 1、2位:入学年份后两位,例如20年
  • 3、4位:学院代码,软件学院代码为20
  • 5位:方向代码,例如1为软件工程,7为物联网
  • 6位:班级序号
  • 7、8位:学号(序号)

要求如下:

  • 只针对2020级
  • 其中软件工程专业班级分别为:202011~17、61,物联网工程专业班级为202071~202073,数据科学与大数据专业班级为202081~82
  • 每个班级学号后两位为01~40

输入格式:

在一行输入一个字符串。

输出格式:

若符合规则的学号,输出”正确“,若不符合,输出”错误“。

输入样例1:

在这里给出一组输入。例如:

20201536
 

输出样例1:

在这里给出相应的输出。例如:

正确
 

输入样例2:

在这里给出一组输入。例如:

20201541
 

输出样例2:

在这里给出相应的输出。例如:

错误
import java.util.Scanner;
 
public class Main 
 
	public static void main(String[] args) 
		Scanner ID = new Scanner(System.in);
		
		String a = ID.next();
		if(a.matches("^2020(61|1[1-7]|7[1-3]|8[1-2])([1-3][0-9]|40|0[1-9])$"))///判断学号是否合法
			System.out.print("正确");
		else
			System.out.print("错误");
		
 
	
 

代码思路:这题还是比较简单,主要考察正则表达式对于学号的检验

  1. 导入Scanner类,用于输入学号;
  2. 使用正则表达式判断学号是否合法;
  3. 如果学号合法,输出"正确",否则输出"                                             
     
     
    7-5 日期问题面向对象设计(聚合一)
    有题解
    分数 50
    全屏浏览题目
    切换布局
    作者 段喜龙
    单位 南昌航空大学

    参考题目7-2的要求,设计如下几个类:DateUtil、Year、Month、Day,其中年、月、日的取值范围依然为:year∈[1900,2050] ,month∈[1,12] ,day∈[1,31] , 设计类图如下:

    应用程序共测试三个功能:

    1. 求下n天
    2. 求前n天
    3. 求两个日期相差的天数

    注意:严禁使用Java中提供的任何与日期相关的类与方法,并提交完整源码,包括主类及方法(已提供,不需修改)

    输入格式:

    有三种输入方式(以输入的第一个数字划分[1,3]):

    • 1 year month day n //测试输入日期的下n天
    • 2 year month day n //测试输入日期的前n天
    • 3 year1 month1 day1 year2 month2 day2 //测试两个日期之间相差的天数

    输出格式:

    • 当输入有误时,输出格式如下:
      Wrong Format
    • 当第一个数字为1且输入均有效,输出格式如下:
      year-month-day
       
    • 当第一个数字为2且输入均有效,输出格式如下:
      year-month-day
       
    • 当第一个数字为3且输入均有效,输出格式如下:
      天数值
       

    输入样例1:

    在这里给出一组输入。例如:

    3 2014 2 14 2020 6 14
     

    输出样例1:

    在这里给出相应的输出。例如:

    2312
     

    输入样例2:

    在这里给出一组输入。例如:

    2 1935 2 17 125340
     

    输出样例2:

    在这里给出相应的输出。例如:

    1591-12-17
     

    输入样例3:

    在这里给出一组输入。例如:

    1 1999 3 28 6543
     

    输出样例3:

    在这里给出相应的输出。例如:

    2017-2-24
     

    输入样例4:

    在这里给出一组输入。例如:

    0 2000 5 12 30
     

    输出样例4:

    在这里给出相应的输出。例如:

    Wrong Format

    代码实现:

    import java.util.Scanner;
     
    public class Main 
        public static void main(String[] args) 
            Scanner input = new Scanner(System.in);
            int year = 0, month = 0, day = 0, m, n;
            int choice = input.nextInt();//判断操作类型
            year = input.nextInt();
            month = input.nextInt();
            day = input.nextInt();
            DateUtil date = new DateUtil(year, month, day);
            if (choice == 1) 
                n = input.nextInt();// 输入n
                if (!date.checkInputValidity() || n < 0) // 如果数据不合法
                    System.out.println("Wrong Format");
                    System.exit(0);
                 else
                    System.out.println(date.getNextNDays(n).showDate());
             else if (choice == 2) 
                m = input.nextInt();// 输入m
                if (!date.checkInputValidity() || m< 0) // 如果数据不合法
                    System.out.println("Wrong Format");
                    System.exit(0);
                 else
                    System.out.println(date.getPreviousNDays(m).showDate());
             else if (choice == 3) 
                int anotherYear = Integer.parseInt(input.next()); ////输入令一天的信息
                
                
                int anotherMonth = Integer.parseInt(input.next());
                int anotherDay = Integer.parseInt(input.next());
                
                DateUtil toDate = new DateUtil(anotherYear, anotherMonth, anotherDay);
                if (!date.checkInputValidity() || !toDate.checkInputValidity()) // 如果数据不合法
                    System.out.println("Wrong Format");
                    System.exit(0);
                 else
                    System.out.println(date.getDaysofDates(toDate));
             else
                
                System.out.println("Wrong Format");
     
        
    
     
    
    class Year 
        private int value;
     
        public Year() 
        
        
     
        public Year(int value) 
        
            this.value = value;
        
     
        public int getValue() 
            return value;
        
     
     
        public void setValue(int value) 
            this.value = value;
        
     
        public boolean isLeapYear() 
            boolean flag =false;
            if ((value % 4 == 0 && value % 100 != 0) || value % 400 == 0)
            flag = true;
            return flag;
        
     
        public boolean validate() ///判断输入的年份
            if (value <= 2050 && value >= 1900)
                return true;
            else
                return false;
        
     
        public void yearIncrement() 
            value++;
        
     
        public void yearReduction() 
            value--;
        
    
     
    class Month 
        private int value;
        private Year year;
     
        public Month() 
        
        
     
        public Month(int yearValue, int monthValue) 
            this.year = new Year(yearValue);
            this.value = monthValue;
        
     
        public int getValue() 
            return value;
        
     
        public Year getYear() 
            return year;
        
     
        public void setValue(int value) 
            this.value = value;
        
     
        public void setYear(Year year) 
            this.year = year;
        
     
        public void resetMin() 
            this.value = 1;
        
     
        public void resetMax() 
            this.value = 12;
        
     
        public boolean validate() 
            if (value >= 1 && value <= 12)
                return true;
            else
                return false;
        
     
        public void monthIncrement() 
            value ++;
        
     
        public void monthReduction() 
            value --;
        
    
     
    class Day 
        private int value;
        private Month month;
        private int[] mon_maxnum1 = new int[]  31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ;
     
        public Day() 
            super();
            // TODO 自动生成的构造函数存根
        
     
        public Day(int yearValue, int monthValue, int dayValue) 
            this.month = new Month(yearValue, monthValue);
            this.value = dayValue;
        
     
        public int getValue() 
            return value;
        
     
        public Month getMonth() 
            return month;
        
     
        public void setValue(int value) 
            this.value = value;
        
     
        public void setMonth(Month month) 
            this.month = month;
        
     
        public void resetMin() 
            value = 1;
        
     
        public void resetMax() 
            value = mon_maxnum1[month.getValue() - 1];
        
     
        public boolean validate() 
            if (this.getMonth().getYear().isLeapYear())
                mon_maxnum1[1] = 29;
            if (value >= 1 && value <= mon_maxnum1[month.getValue() - 1])
                return true;
            else
                return false;
        
     
        public void dayIncrement() 
            value ++;
        
     
        public void dayReduction() 
            value --;;
        
    
     
    class DateUtil 
        private Day day;
     
        public DateUtil() 
            super();
            // TODO 自动生成的构造函数存根
        
     
        public DateUtil(int d, int m, int y) 
            this.day = new Day(d, m, y);
        
     
     
        public Day getDay() 
            return day;
        
     
        
        public void setDay(Day day) 
            this.day = day;
        
     
        public boolean checkInputValidity() 
            if (!this.getDay().getMonth().getYear().validate() || !this.getDay().getMonth().validate() ) return false;
            else if(!day.validate())return false;
            return true;
        
        
        public boolean compareDates(DateUtil date) 
            boolean flag = false;
            if (date.getDay().getMonth().getYear().getValue() < this.getDay().getMonth().getYear().getValue())
                flag = true;
            else if (date.getDay().getMonth().getYear().getValue() >this.getDay().getMonth().getYear().getValue())
                flag = false;
            else 
                if (date.getDay().getMonth().getValue() < this.getDay().getMonth().getValue())
                    flag = true;
                else if (date.getDay().getMonth().getValue() >this.getDay().getMonth().getValue())
                    flag = false;
                else 
                    if (date.getDay().getValue() < this.getDay().getValue())
                        flag = true;
                    else if (date.getDay().getValue() > this.getDay().getValue())
                        flag = false;
     
                
            
            return flag;
        
     
     
        public boolean equalTwoDates(DateUtil date) 
            if (date.getDay().getMonth().getYear().getValue() != this.getDay().getMonth().getYear().getValue()
                    || date.getDay().getMonth().getValue() != this.getDay().getMonth().getValue()
                    || date.getDay().getValue() != this.getDay().getValue())
                return false;
            else
                return true;
        
     
        
        public String showDate() 
            String s = "", x = "", y = "", z = "";
            x = "" + this.getDay().getMonth().getYear().getValue();
            y = "" + this.getDay().getMonth().getValue();
            z = "" + this.getDay().getValue();
            s = x + "-" + y + "-" + z;
            return s;// 以“year-month-day”格式返回日期值
        
     
     
        public DateUtil getNextNDays(int n)   ///求下n天
            int[] months = new int[]  0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ;
            while (n > 365) /////减少运行时间,防止超限
                if (this.getDay().getMonth().getYear().isLeapYear()
                        && this.getDay().getMonth().getValue() <= 2) 
                    if (this.getDay().getMonth().getValue() == 2 && this.day.getValue() == 29) 
                        this.getDay().setValue(1);
                        this.getDay().getMonth().setValue(3);
                    
                    this.getDay().getMonth().getYear().yearIncrement();
                    n = n - 366;
                 else if (this.getDay().getMonth().getYear().isLeapYear()
                        && this.getDay().getMonth().getValue() > 2) 
                    this.getDay().getMonth().getYear().yearIncrement();
                    n = n - 366;
                 else 
                    this.getDay().getMonth().getYear().yearIncrement();
                    n = n - 365;
                
            
            for (int i = 0; i < n; i++) 
                this.getDay().dayIncrement();
                if (this.getDay().getMonth().getYear().isLeapYear()
                        && this.getDay().getMonth().getValue() == 2) 
                    if (this.getDay().getValue() > 29) 
                        this.getDay().getMonth().monthIncrement();
                        this.getDay().setValue(1);
                    
                 else if (this.getDay().getValue() > months[this.getDay().getMonth().getValue()]) 
                    this.getDay().getMonth().monthIncrement();
                    this.getDay().setValue(1);
                    if (this.getDay().getMonth().getValue() > 12) 
                        this.getDay().getMonth().setValue(1);
                        this.getDay().getMonth().getYear().yearIncrement();
                    
                
            
            DateUtil nextDate = new DateUtil(this.getDay().getMonth().getYear().getValue(), this.getDay().getMonth().getValue(),
                    this.getDay().getValue());
            return nextDate;
     
        
     
        public DateUtil getPreviousNDays(int n) 
            int[] months = new int[]  0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ;
            while (n > 365) 
                if (this.getDay().getMonth().getYear().isLeapYear()
                        && this.getDay().getMonth().getValue() > 2) 
                    n -= 366;
                    this.getDay().getMonth().getYear().yearReduction();
                 else if (this.getDay().getMonth().getYear().isLeapYear()
                        && this.getDay().getMonth().getValue() <= 2) 
                    n -= 366;
                    this.getDay().getMonth().getYear().yearReduction();
                 else 
                    n -= 365;
                    this.getDay().getMonth().getYear().yearReduction();
                
            
            for (int i = 0; i < n; i++) 
                this.getDay().dayReduction();
                if (this.getDay().getValue() <= 0) 
                    this.getDay().getMonth().monthReduction();
                    if (this.getDay().getMonth().getValue() <= 0) 
                        this.getDay().getMonth().setValue(12);
                        this.getDay().getMonth().getYear().yearReduction();
                    
                    if (this.getDay().getMonth().getYear().isLeapYear()
                            && this.getDay().getMonth().getValue() == 2)
                        this.getDay().setValue(29);
                    else
                        this.getDay().setValue(months[this.getDay().getMonth().getValue()]);
                
            
     
            DateUtil nextDate = new DateUtil(this.getDay().getMonth().getYear().getValue(), this.getDay().getMonth().getValue(),
                    this.getDay().getValue());
            return nextDate;
        
     
        public int getDaysofDates(DateUtil date)// 求两天之间相差的天数
        
            int count = numOfDays(this.getDay().getMonth().getYear().getValue(),this.getDay().getMonth().getValue(),this.getDay().getValue())
                    - numOfDays(date.getDay().getMonth().getYear().getValue(), date.getDay().getMonth().getValue(),
                            date.getDay().getValue());
            if (count < 0)
                count = -count;
            return count;
        
     
     
     
     
     
     
    
        public int numOfDays(int year, int month, int day)
        
            int sum = 0;
            for (int i = 1; i < year; i++) 
                if (i % 4 == 0 && i % 100 != 0 || (i % 400 == 0))
                    sum += 366;
                else
                    sum += 365;
            
            int[] months = new int[]  0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ;
            for (int i = 1; i < month; i++) 
                if (i == 2 && year % 4 == 0 && year % 100 != 0 || (year % 400 == 0))
                    sum++;
                sum += months[i];
            
            sum += day;
            return sum;
        
     
    
    思路讲解:
    我们定义了一个名为
    DateUtil
    的类,该类包含有年月日三个私有属性,以及构造方法、属性的getter和setter方法,以及七个方法来实现各种日期计算和比较功能。 其中,
    checkInputValidity()
    方法
    用于检测输入的年、月、日是否合法;
    isLeapYear()
    方法用于判断某一年是否为闰年;
    getNextNDays()
    方法用于取得某一日期的下n天日期;
    getPreviousNDays()
    方法用于取得某一日期的前n天日期;
    compareDates()
    
    
    方法用于比较当前日期与另一个日期的大小(先后);
    equalTwoDates()
    方法用于判断两个日期是否相等;
    getDaysofDates()
    方法则用于求当前日期与另一个日期之间相差的天数。 
    1.判断日期是否合法输入
    DateUtil
    checkInputValidity()
    isLeapYear()
    getNextNDays()
    getPreviousNDays()
    compareDates()
    
    equalTwoDates()
    getDaysofDates()
    

         年份必须在1820年到2020年之间;

        月份必须在1到12之间;

         日期必须在1到31之间,但不同的月份日期的最大值不同,2月最多只有28或29天,4月、6月、9月、11月最多只有30天,1月,3月,5月,7月,8月,10月,12月最多有30天。

         2.比较日期是否相等:判断年月日是否相等;、

         getnextnday();求下一天,当n>0,当n<month[i]-day; day=day+n;

    n>m[i]-day;day=1,month=month+1,如果month=13,year=year+1;

    getperiousday();当n>0,当n<day;day=day-n;

    当n>day,n=n-day;day=m[j-1],month=month-1;如果month=0;month=12,year=year-1;

    计算两天相差的天数:将两天和0年0月0日作差,用for循环,当天数小于date时,sum=sum+1,再用两个值相减求绝对值。就是两天相差的天数。

     

     

    7-6 日期问题面向对象设计(聚合二)
    有题解
    分数 34
    全屏浏览题目
    切换布局
    作者 段喜龙
    单位 南昌航空大学

    参考题目7-3的要求,设计如下几个类:DateUtil、Year、Month、Day,其中年、月、日的取值范围依然为:year∈[1820,2020] ,month∈[1,12] ,day∈[1,31] , 设计类图如下:

    应用程序共测试三个功能:

    1. 求下n天
    2. 求前n天
    3. 求两个日期相差的天数

    注意:严禁使用Java中提供的任何与日期相关的类与方法,并提交完整源码,包括主类及方法(已提供,不需修改)

    输入格式:

    有三种输入方式(以输入的第一个数字划分[1,3]):

    • 1 year month day n //测试输入日期的下n天
    • 2 year month day n //测试输入日期的前n天
    • 3 year1 month1 day1 year2 month2 day2 //测试两个日期之间相差的天数

    输出格式:

    • 当输入有误时,输出格式如下:
      Wrong Format
    • 当第一个数字为1且输入均有效,输出格式如下:
      year1-month1-day1 next n days is:year2-month2-day2
       
    • 当第一个数字为2且输入均有效,输出格式如下:
      year1-month1-day1 previous n days is:year2-month2-day2
       
    • 当第一个数字为3且输入均有效,输出格式如下:
      <

      南昌大学航天杯第二届程序设计竞赛校赛网络同步赛题解

      A,C,I签到题,只搞了8题,还一题是神仙做的,我不会

       

      链接:https://www.nowcoder.com/acm/contest/122/B
      来源:牛客网

      取石子
      时间限制:C/C++ 1秒,其他语言2秒
      空间限制:C/C++ 32768K,其他语言65536K
      64bit IO Format: %lld

      题目描述

      现在有两堆石子,两个人轮流从中取石子,且每个人每一次只能取1、3或9个石子,取到最后一个石子的人win。
      假设先手后手都会选择最好的方式来取石子,请您判断先后手的输赢情况。

      输入描述:

      多组输入
      每组一行,一行包括两个正整数n1和n2(1<=n1<=100,1<=n2<=100),代表了两堆石子的数目

      输出描述:

      如果先手能赢,输出"win";否则就输出"lose"。
      示例1

      输入

      1 1 
      1 2

      输出

      lose
      win

      分析:这题挺有搞笑,两堆加起来是奇数就win,否则lose。

      技术分享图片
        1 /**
        2  
        3                                                                        :;LaEaHKEEGpPXU7;,
        4                                                                   .:75pKH11252U252XapZgRQgD6XJscLr;,.
        5                                                                :LXpRgGaX521JLw1JswJJsJs22XHPPEZEGDOMMRDOa7.
        6                                                            .r2EDDZEpZPZP6KpHX5SXH5XXa5KwaXaSX5UJ1c77sLs2GMQQ6r                                       .
        7                                                         ,LpgOGpEZGZEZEpZKpHHU5wP5HEDgpXpHa2SSa5aSXULr7rrirrJXRBp;                                   ;B
        8                                                      ,J6MRZH6EgEEZE6E6EZZPZXXwSSGQXr::aPpP5USUHaHaKa5Lvrr7ri;rLHBB2:                                Kc
        9                                                    rpQDOpPPOGGZOGOZG6GEOEOEDPPGBa.  .PaSSUXSUUUaUSaKXKS177r7rrrirSBBR7                             .O,
       10                                                 :UBQOKPK6ZOOOEDEO6GZE6EpEpDgDBR:   UBpXHa5aSaUS5SUS5XapPHJc7rrv7rr7sgBBs                           .g.
       11                                               ;gBMPXpO6GEOEOEOEGEOEE6EZEEDRGBB    EB5pKSXpHKaHSX552S5aUHHEX17c7vr7777s5RBS:                        .R;
       12                                            .sQBPXpDZOODOgODGOGgEDEOEOGgGgOOMB:   LBKKSXSHa52aaKXHXKaa5aSaaHXSJLcL7vcc777JDBBg2;.                    Qi
       13                                          ;2ggp2EDDOggGEDGgDDOgGGZDOOZOGg6gEBX    vBZaHUKaaUXXXSXXKXpXHXH5wwaa52U1wssLsLJccv1UDQBQ67.                O7
       14                                        :ZZUU5PROOEOZOZGGOODZOGgODZOOgOggRgRB; ;:..R6XaKKpP6PGppKPHpHpPX5aU21UUa5Sw52UwUJJv77L77sSpQMDU;            ;B5
       15                                      ,SRJ7sSHGggEOZOEG6OODpOZgggOQQBBBBBQBBQ.,;;. LBOgOgDRDDZODMgQRgRDaa552a252UUa25w5UaU2sLvccs7r7sJZBBMr       ,XQJ:
       16                                     LQHr77J6RGOZDZOEGEDGgDRORQBBBQRDPU1Jscwa7.,::.:J7r;::::.  ..,:;i7UOgRRRgDPH5SUSU52U2HHa1JJJLJLccLr71RBB,    7R2,
       17                                   :RZv;77JSgGOZEODEDGOEggQBBBMS7;:,:,,.,.,.:7L;:,;.:  ,: . .....       .:;rJU6GgGRggEZHPaKXX2S221Js1Lc7r:7QB. .XX:
       18                                  7g1;;7rcXG6gpGDZGgZOOQBBQpr.   ::::;:;:::Jr::sr;::;:.:vs,:::::::::::,,         ,:7L5HGOggRgZUUU5wSUaJLc7r7BOiDr  ...
       19                                .XX;;;irLHGKpZZZEKgDRBBB6i    ,;;:;;;;r;;:s177:,;L7:;7:.rHi,:::::::::::::::::,.         .,;7ZRQgO6KUUJsLwsJ7KBM. .....
       20                                JZ:;rrrc5EPHp6XgpRBBBE;     :i:;;;;;:;;;:c7::r7;,::::::::rv:,:::::::::::,:,:,:,,,,            .;sORQRGX21wsXU:  .... .
       21                               .Br;iir72EHPHZ6EgBBR7.   ..;ii:;;;;;;;;;:71r::.:7,  .::7;:;H;.::,:j::::::,:::::,,,::,,,              ,7wEDRZBMr  .......
       22                               1D;:r;rwOPXPKH6BBX,   .:;:;;;:::;:;;;;;::Ls,;ss..r.  ,c77;sLU,:,:::,:::,:,:,:,,,:,,,:::.                  .:.rP:.......
       23                               D2:i;rJpKHXHXgg7    .,,::::;:::::;:;:;;:;SL7sS2, :.   ::::,:U7.:::,:::,:,,,,,:,,.,,,.,:,                    ;L:. .. ...
       24                              :Qc;i7LGZPa6gBM,  ...,,::::::::::::;;::;.JJ;ic:         ;:::,v1,.:::;7,,,:,:,:,,,,.:,,,,..                :2wr.  .......
       25                              sRr:rrwZGgBQR7.  .,,::::::::::::::;::;:::Hr:7i          ,;;:::U: .,,,:r.,,:,:,:,,,:,,,.....             7K2:. ..........
       26                              OX:irsXgQZ:.   .,,:::,,:::,::::::::;;;::r5;r7:           :;;;:7L ..,.,;:,:,:,,,:,:,,,,......        .rU6w;..............
       27                             .BJ71EK5;.   .,,::,:,:,,,:,:,::::::::;:;.Ls;r7             :;:::s, ..,,,r:.:.,,,.:, .,..... .    .;s5XJr,..,.............
       28                             1Mv::.     .:,:,,,,,,,:::::::,;:::;:;::..J7;c:          ,. ,rri:27  , .,:;. ,:,:,,:..,....    .rpPL;:.. ... .............
       29                        ..7Ls:        .,,,:,,,:,:,:::,:,:::::,:::::: .Srrr,  .,:;;;::::..:7r;r1    .: :E:..,,:,...,,.., ..XBQ7, ................... ..
       30                   ,;7v7r7:,         ,,,,:.,,,,,,:,,::,:,,.::.,:.,:, :Jrr; ,r7,:..        ,:::L:  .  .7RJ .,.:.,......,,:MBs   ..............,........
       31             .:;vJs7i,              ,,,., ..,,:,,,:,,,:,:.,rs,,.:,,  ;J;c,                .,::;;     Lr.E: .,...,....:,:1Z:  .........,.,...........:,.
       32    .;,,:r7J1wv;,.               ....,.:. .,.,,:,,,:,,::::,sS;.:::,  cLrr.     .       .,. .,..:    ;;  r5 ........,,:;s7. ....,.,.,...........,.,.,,.
       33    ,BBs:::                   . ........,.,,,,,.:,,,:,:,,.;s7r,,,,,  cc7;         ,.,,.      .:7rrJGMPOEL1, ..... ,,:rSr, : ,.,.,.,.,.........,,,,,. ..
       34      rZL.                   ....... ..,,,.,,,..,,,.,;,...7J:s: ..  .wr7,        ...    .rJpQBBBBBBBQgKP77s  ..  .,7S2,,....,....,.,.,......,,.,. .:cX2
       35        ;SH7,               . . . .. .,.,.,.,,,...,..r, ::Ur;7L .   .57;.           .rPBBQBBBPws:;r::::.,:P.    .;S5;,..,...,.,.,.,.... ..,,, ..,7HSJvr
       36           r7r;:             . ... ..........,...,.. 7L;,rS;;ivr .   1r:       .  .rZBBK7;.JL,::Jrs;.:;,:;J, .,;LDv..:.,...,.,.,.,...,.,,:,, ,7sKGwc77;
       37              .:7L7:,            . ,r,..,.,,,...,..:iLL  7s;r;cv:    U7.         :vi;:. .. :Er:::.Ls. . ,7::::vHEi ,:,,.,,,.,.,,,,,,::::, .:1QBKJJUsssc
       38                 .:rvw1JsL7;,      ,;..........,.:ir :r .ELr77v:,.   Pr          ..      .  Ls    ,w.   rr.r:JPr. ::,..,,,.,,,,:,:::,:,..7XgRE52US25w1c
       39                       .:;7JRQpX:   ; .........,i:  .,J ;gri;7r  :   1;                     .X:    .   ,v :aK1, ,,:.,,,.,,,,:::::,;::::cOBB6K55UXUX5XUw
       40                            ;J,XQB7,:    . ...,:   .:7Z.7Zi7;r:   ,  v,                      :w:;,.,:::7LUsc:..:,:.:,,,,,:,:::::::,:;c5BBPS5wSUSUaUaUa2
       41                            J7  rEBBg..,. ..... .  ,L1PLKr:,:;r;;::, :,                       :;SXsJU1XLLr....:,,,,,,::::,::::::,::LL,,rZXUJU25552aUUUU
       42                            JL .:sXBB:... ., .    ,OH777;,rZRBBBQL ..r,                     ,:r7::r:,;;....:,,,,,,,,.::::;::;:::.7gL    UK2UUS1aw2wU25J
       43                            U7 .r71BB;  . :.. .. :QJ;.;1pBBBBBGRBRi  i:                   .      .w7.   ..,,:,,,,,:,:,:::::::,.,2BR:   .DSaUSUUS525w5U1
       44                            2r :7rJBQ7   .;. .   KL::JGBBBgE6Hp6XMQ;     .                    ... ,2s    ,,,,:::::,:::::::,,.:sQQB2    ;DHa5U52S2U25USJ
       45                            a: :7;1BB2   .v,    sL;LPQgDBPH6KPQBpGBG    .                   ... ..  aP:. .. ,::,:::::,,,,.;rSgBQDa;    :gSSwSUUU525US2U
       46                            5; ;;r2QBB,  .s:  :a7:PBZ2,:BEaZPKgBZOgB,                        .   ...:LEHri::,:.,,.,,,::rsXRBgGKEJi,    2GH252SUS5S11wH5
       47                            U: ;:rwDBBr  .c, rB6r 167.,,RQPpEP6OpKEBc      .,                 .   : ::sS7;cKB6HHa1XOQRRQBRgEZDBH; ..  ;RZUPSSU525USSpK2
       48                            s; ;::aBg,   .; .Gv,H::,,::,;BQDOGHPXpKBs      .,.                 . .,.  .r:;:6gOEBQRRRDggQgOHgMGL,    .;PEHHXaaKaPXPKPaXS
       49                            s7.:,sBa     :..S,  vE::::;  7BBMgZH6pQBr             .             ,:,   ,.,r2RHSSpMZPKRRZpgggav,    ;UpEZaaaKHHUHPPaUJHGO
       50                            a;.775:    .::rU.    gR:,:.   :;:BBBBQar                         .  ,,   ,.,7rggJwU6DDGMgOGgXc:,   ,rPGOpKSXSXSKUKHU1UHgOEP
       51                           1i :SZJrLXpBBMRB:  .v  Ba,.       :sv:                             .        irsBUSpEEGPPpg65r:..,;sKZDZHSX5XaHU55K2wUGMRZ6Z6
       52                          :K  :7asvwc2MgEQB, :gg.:iB7  .,,,:.                      ...,.   .     ..   .:iM6GEpSSXZOEs:...;spZpKKXXSX5Xa5Ja5wwKGQDEpp6OZ
       53                          w; ,LXLr77sLwL5aR. gRgQgaQBi ,vJwvi,.                 .;;:;7:   .   .  ,...  rRDRJUSXpgas:,.:;U66SaHa2X5aUa552X12SgQgpZpEpGOD
       54                          H: ;XJ;77rv7rJUaQ;rgaPgXXHBB;        . .              .ri:;;          ,: . :6QZEKHXpXXL:,::r1PKXaa2XSS5a5S5UJ22aOBgEpOppZOOgG
       55                          iwsJsr7rsLrrLcJ2gQGXHwa1SUHBB:  . ... .                 ..,           :   1BRKpOEGp2Jr;::rsXP1Uaa2U5a5aUa5SsSpgQRZGZEEZZOOgDg
       56                            ,cs5aXaP552ssLwRSHXaSS5asXBB.      . .                             .  LBBgGgZHsr;vrr;rcXpP5UUS5X5S2XS5SS1URBggpEZgDDGOGggRD
       57                               ,;irrs2KgQRPJJJSUXKXSHJpBM   . . .                                ZBBOUsr;:.  ,,,rHgZPUaSaUSUSSXaUPXsSBB6ZZp6EEGOOGDEggO
       58                                        ;BBQQZaSJ5J15SJDQ7                                    .iEBL:.  . .,:,:;SRQGZXPXXSHaS2UUSUSswQB6OZgG6pZZGODEOGDE
       59                                       JgUri1aGEpEpXSS5LBQ,                              .rLap2Jr     ;712OO6ZggRDZXHXpKK2211LLLc7wgBa2PODRGE6OZgDgGDGD
       60                                     7QB; ,Jc76DaZXOZgDPEBBX,                       :c1HEZ1c;:,.,:;cHDgQQggMZgGOZO6OEGpXsLLsJXHPOBBBc;vss5EMggZDODOgED6
       61                                    LZJ::iwrrr72EPgXU5OBBBBBBBp7:               .i5P6wL;,   .:LS6DMgMgZKgEOPOGGDDGEXULvLSOBBBBBQBgDQDJ5rrr7JOQQDDZGEgDD
       62                                    wp rR5,       .HQRX7r72RQBBBBBQBMEK6Uc7sc7cHOU:,     .:LHgOQg6ZOPZpZGGEDERZPwcr7LKDDaJr:.      rBX;;:r:ir1DBQMgRgDp
       63                                    7D,sw:      ,   Z.      .LgBBQBBOsJaQBBBBBBXrr.  .:rwZBBQgROgDgDOERRMgROOScrLsPP5r,             7Qs,::::::rUgRgZOG6
       64                                    ,Q57:r  ,:  ,r  U:         .;;   .vL7L;r:UG7.:sr;JSgQBgDEZXXUSXpHa21svr7r7s2v:.                  iQK...:,:::;LLJJws
       65                                     OBHs;.  :;;,v  H:             :6X;       rpL;7pSrrr7r;::,....,,:;iirrvvvr,                       :BBPs;;:,,,,::;::
       66                                     ::rPDEL:..7:c;7r              pK  .:      :KL.:r:..     ..:icsS5sr:,.                              JgGgBQDOSJss77r
       67                                          :r;:::  ,                PH r,       ,;5: ,::::;7Ls7Lc7;:                                         ,:7JP17rJUs
       68                                                                   .:J: :;  .,:K6BQS7:.,.,.
       69                                                                     :r7Ji;r7;::;;.
       70                                                                         .                                                                             **/
       71                                                                         
       72 #include <bits/stdc++.h>
       73 using namespace std;
       74 
       75 #define FFI(a, b) for(int i = a; i < b; i++)
       76 #define FFJ(a, b) for(int j = a; j < b; j++)
       77 #define RR(a, b) for(int i = a; i > b; i++)
       78 #define ME(a, b) memset(a, b, sizeof(a))
       79 #define SC(x) scanf("%d", &x)
       80 #define PR(x) printf("%d\n", x)
       81 #define INF 0x3f3f3f3f
       82 #define MAX 1001
       83 #define MOD 1000000007
       84 #define E 2.71828182845
       85 #define M 8
       86 #define N 6
       87 typedef long long LL;
       88 const double PI = acos(-1.0);
       89 typedef pair<int, int> Author;
       90 vector<pair<string, int> > VP; 
       91 
       92 int main(void){
       93     #ifdef LOCAL
       94         freopen("in.txt", "r", stdin);
       95         freopen("out.txt", "w", stdout);
       96     #endif
       97     ios::sync_with_stdio(false); cin.tie(0);
       98     int a, b;
       99     
      100     while(cin>>a>>b){
      101         if((a + b) % 2) cout<<"win"<<endl;
      102         else cout<<"lose"<<endl;
      103     }
      104     return EXIT_SUCCESS;
      105 }
      View Code

      链接:https://www.nowcoder.com/acm/contest/122/D
      来源:牛客网

      小C的记事本
      时间限制:C/C++ 2秒,其他语言4秒
      空间限制:C/C++ 131072K,其他语言262144K
      64bit IO Format: %lld

      题目描述

      小C最近学会了java小程序的开发,他很开心,于是想做一个简单的记事本程序练练手。

      他希望他的记事本包含以下功能:

      1、append(str),向记事本插入字符串 str(英文字符)

      2、delete(k),删除记事本最后k个字符(保证不为空串)

      3、print(k),输出记事本第k个字符(保证不为空串)

      4、undo(),撤销最近的1(或者)操作,使记事本回到1(或者2)操作之前的状态

      可怜的小C琢磨了半天还是做不来,聪明的你能解决小C的问题吗?

      输入描述:

      多组输入

      第一行输入一个整数q,代表操作总数

      以下q行每行描述了一个操作,每行以一个整数t开始(1 <= t <= 4)。

      t表示上述问题陈述中定义的操作类型。 如果操作需要参数,则后跟空格分隔的参数。

      题目保证所有操作均合法

      1 <= q <= 10^6 
      1 <= k <= |记事本内容长度| 
      每个测试数据中str的总长度 <= 10^6

      请使用 ios::sync_with_stdio(false); 对读写进行加速

      输出描述:

      所有操作类型3必须输出第k个字符,每行以换行符结束。
      示例1

      输入

      8
      1 ab
      3 2
      2 2
      1 cd
      3 1
      4
      4
      3 1

      输出

      b
      c
      a

      说明

      **样例解释**

      假设记事本用字符串S表示

      1、插入ab,S="ab"

      2、输出第2个字符,是b

      3、删除最后2个字符,S=""

      4、插入cd, S="cd"

      5、输出第1个字符,是c

      6、撤销,此时S=""

      7、撤销,此时S="ab"

      8、输出第1个字符,是a

      分析:这题很实用啊,现在都很喜欢回到上一步,和武大校赛那题有点像,不过这里是用stack解决的,因为可以回到之前所有的步骤,

      和电脑上ctrl+z有点像,每次保存/删除输入字符串,str += str1,对于1,2进行一步操作就压栈,最后s.pop(),即可

      技术分享图片
        1 /**
        2  
        3                                                                        :;LaEaHKEEGpPXU7;,
        4                                                                   .:75pKH11252U252XapZgRQgD6XJscLr;,.
        5                                                                :LXpRgGaX521JLw1JswJJsJs22XHPPEZEGDOMMRDOa7.
        6                                                            .r2EDDZEpZPZP6KpHX5SXH5XXa5KwaXaSX5UJ1c77sLs2GMQQ6r                                       .
        7                                                         ,LpgOGpEZGZEZEpZKpHHU5wP5HEDgpXpHa2SSa5aSXULr7rrirrJXRBp;                                   ;B
        8                                                      ,J6MRZH6EgEEZE6E6EZZPZXXwSSGQXr::aPpP5USUHaHaKa5Lvrr7ri;rLHBB2:                                Kc
        9                                                    rpQDOpPPOGGZOGOZG6GEOEOEDPPGBa.  .PaSSUXSUUUaUSaKXKS177r7rrrirSBBR7                             .O,
       10                                                 :UBQOKPK6ZOOOEDEO6GZE6EpEpDgDBR:   UBpXHa5aSaUS5SUS5XapPHJc7rrv7rr7sgBBs                           .g.
       11                                               ;gBMPXpO6GEOEOEOEGEOEE6EZEEDRGBB    EB5pKSXpHKaHSX552S5aUHHEX17c7vr7777s5RBS:                        .R;
       12                                            .sQBPXpDZOODOgODGOGgEDEOEOGgGgOOMB:   LBKKSXSHa52aaKXHXKaa5aSaaHXSJLcL7vcc777JDBBg2;.                    Qi
       13                                          ;2ggp2EDDOggGEDGgDDOgGGZDOOZOGg6gEBX    vBZaHUKaaUXXXSXXKXpXHXH5wwaa52U1wssLsLJccv1UDQBQ67.                O7
       14                                        :ZZUU5PROOEOZOZGGOODZOGgODZOOgOggRgRB; ;:..R6XaKKpP6PGppKPHpHpPX5aU21UUa5Sw52UwUJJv77L77sSpQMDU;            ;B5
       15                                      ,SRJ7sSHGggEOZOEG6OODpOZgggOQQBBBBBQBBQ.,;;. LBOgOgDRDDZODMgQRgRDaa552a252UUa25w5UaU2sLvccs7r7sJZBBMr       ,XQJ:
       16                                     LQHr77J6RGOZDZOEGEDGgDRORQBBBQRDPU1Jscwa7.,::.:J7r;::::.  ..,:;i7UOgRRRgDPH5SUSU52U2HHa1JJJLJLccLr71RBB,    7R2,
       17                                   :RZv;77JSgGOZEODEDGOEggQBBBMS7;:,:,,.,.,.:7L;:,;.:  ,: . .....       .:;rJU6GgGRggEZHPaKXX2S221Js1Lc7r:7QB. .XX:
       18                                  7g1;;7rcXG6gpGDZGgZOOQBBQpr.   ::::;:;:::Jr::sr;::;:.:vs,:::::::::::,,         ,:7L5HGOggRgZUUU5wSUaJLc7r7BOiDr  ...
       19                                .XX;;;irLHGKpZZZEKgDRBBB6i    ,;;:;;;;r;;:s177:,;L7:;7:.rHi,:::::::::::::::::,.         .,;7ZRQgO6KUUJsLwsJ7KBM. .....
       20                                JZ:;rrrc5EPHp6XgpRBBBE;     :i:;;;;;:;;;:c7::r7;,::::::::rv:,:::::::::::,:,:,:,,,,            .;sORQRGX21wsXU:  .... .
       21                               .Br;iir72EHPHZ6EgBBR7.   ..;ii:;;;;;;;;;:71r::.:7,  .::7;:;H;.::,:j::::::,:::::,,,::,,,              ,7wEDRZBMr  .......
       22                               1D;:r;rwOPXPKH6BBX,   .:;:;;;:::;:;;;;;::Ls,;ss..r.  ,c77;sLU,:,:::,:::,:,:,:,,,:,,,:::.                  .:.rP:.......
       23                               D2:i;rJpKHXHXgg7    .,,::::;:::::;:;:;;:;SL7sS2, :.   ::::,:U7.:::,:::,:,,,,,:,,.,,,.,:,                    ;L:. .. ...
       24                              :Qc;i7LGZPa6gBM,  ...,,::::::::::::;;::;.JJ;ic:         ;:::,v1,.:::;7,,,:,:,:,,,,.:,,,,..                :2wr.  .......
       25                              sRr:rrwZGgBQR7.  .,,::::::::::::::;::;:::Hr:7i          ,;;:::U: .,,,:r.,,:,:,:,,,:,,,.....             7K2:. ..........
       26                              OX:irsXgQZ:.   .,,:::,,:::,::::::::;;;::r5;r7:           :;;;:7L ..,.,;:,:,:,,,:,:,,,,......        .rU6w;..............
       27                             .BJ71EK5;.   .,,::,:,:,,,:,:,::::::::;:;.Ls;r7             :;:::s, ..,,,r:.:.,,,.:, .,..... .    .;s5XJr,..,.............
       28                             1Mv::.     .:,:,,,,,,,:::::::,;:::;:;::..J7;c:          ,. ,rri:27  , .,:;. ,:,:,,:..,....    .rpPL;:.. ... .............
       29                        ..7Ls:        .,,,:,,,:,:,:::,:,:::::,:::::: .Srrr,  .,:;;;::::..:7r;r1    .: :E:..,,:,...,,.., ..XBQ7, ................... ..
       30                   ,;7v7r7:,         ,,,,:.,,,,,,:,,::,:,,.::.,:.,:, :Jrr; ,r7,:..        ,:::L:  .  .7RJ .,.:.,......,,:MBs   ..............,........
       31             .:;vJs7i,              ,,,., ..,,:,,,:,,,:,:.,rs,,.:,,  ;J;c,                .,::;;     Lr.E: .,...,....:,:1Z:  .........,.,...........:,.
       32    .;,,:r7J1wv;,.               ....,.:. .,.,,:,,,:,,::::,sS;.:::,  cLrr.     .       .,. .,..:    ;;  r5 ........,,:;s7. ....,.,.,...........,.,.,,.
       33    ,BBs:::                   . ........,.,,,,,.:,,,:,:,,.;s7r,,,,,  cc7;         ,.,,.      .:7rrJGMPOEL1, ..... ,,:rSr, : ,.,.,.,.,.........,,,,,. ..
       34      rZL.                   ....... ..,,,.,,,..,,,.,;,...7J:s: ..  .wr7,        ...    .rJpQBBBBBBBQgKP77s  ..  .,7S2,,....,....,.,.,......,,.,. .:cX2
       35        ;SH7,               . . . .. .,.,.,.,,,...,..r, ::Ur;7L .   .57;.           .rPBBQBBBPws:;r::::.,:P.    .;S5;,..,...,.,.,.,.... ..,,, ..,7HSJvr
       36           r7r;:             . ... ..........,...,.. 7L;,rS;;ivr .   1r:       .  .rZBBK7;.JL,::Jrs;.:;,:;J, .,;LDv..:.,...,.,.,.,...,.,,:,, ,7sKGwc77;
       37              .:7L7:,            . ,r,..,.,,,...,..:iLL  7s;r;cv:    U7.         :vi;:. .. :Er:::.Ls. . ,7::::vHEi ,:,,.,,,.,.,,,,,,::::, .:1QBKJJUsssc
       38                 .:rvw1JsL7;,      ,;..........,.:ir :r .ELr77v:,.   Pr          ..      .  Ls    ,w.   rr.r:JPr. ::,..,,,.,,,,:,:::,:,..7XgRE52US25w1c
       39                       .:;7JRQpX:   ; .........,i:  .,J ;gri;7r  :   1;                     .X:    .   ,v :aK1, ,,:.,,,.,,,,:::::,;::::cOBB6K55UXUX5XUw
       40                            ;J,XQB7,:    . ...,:   .:7Z.7Zi7;r:   ,  v,                      :w:;,.,:::7LUsc:..:,:.:,,,,,:,:::::::,:;c5BBPS5wSUSUaUaUa2
       41                            J7  rEBBg..,. ..... .  ,L1PLKr:,:;r;;::, :,                       :;SXsJU1XLLr....:,,,,,,::::,::::::,::LL,,rZXUJU25552aUUUU
       42                            JL .:sXBB:... ., .    ,OH777;,rZRBBBQL ..r,                     ,:r7::r:,;;....:,,,,,,,,.::::;::;:::.7gL    UK2UUS1aw2wU25J
       43                            U7 .r71BB;  . :.. .. :QJ;.;1pBBBBBGRBRi  i:                   .      .w7.   ..,,:,,,,,:,:,:::::::,.,2BR:   .DSaUSUUS525w5U1
       44                            2r :7rJBQ7   .;. .   KL::JGBBBgE6Hp6XMQ;     .                    ... ,2s    ,,,,:::::,:::::::,,.:sQQB2    ;DHa5U52S2U25USJ
       45                            a: :7;1BB2   .v,    sL;LPQgDBPH6KPQBpGBG    .                   ... ..  aP:. .. ,::,:::::,,,,.;rSgBQDa;    :gSSwSUUU525US2U
       46                            5; ;;r2QBB,  .s:  :a7:PBZ2,:BEaZPKgBZOgB,                        .   ...:LEHri::,:.,,.,,,::rsXRBgGKEJi,    2GH252SUS5S11wH5
       47                            U: ;:rwDBBr  .c, rB6r 167.,,RQPpEP6OpKEBc      .,                 .   : ::sS7;cKB6HHa1XOQRRQBRgEZDBH; ..  ;RZUPSSU525USSpK2
       48                            s; ;::aBg,   .; .Gv,H::,,::,;BQDOGHPXpKBs      .,.                 . .,.  .r:;:6gOEBQRRRDggQgOHgMGL,    .;PEHHXaaKaPXPKPaXS
       49                            s7.:,sBa     :..S,  vE::::;  7BBMgZH6pQBr             .             ,:,   ,.,r2RHSSpMZPKRRZpgggav,    ;UpEZaaaKHHUHPPaUJHGO
       50                            a;.775:    .::rU.    gR:,:.   :;:BBBBQar                         .  ,,   ,.,7rggJwU6DDGMgOGgXc:,   ,rPGOpKSXSXSKUKHU1UHgOEP
       51                           1i :SZJrLXpBBMRB:  .v  Ba,.       :sv:                             .        irsBUSpEEGPPpg65r:..,;sKZDZHSX5XaHU55K2wUGMRZ6Z6
       52                          :K  :7asvwc2MgEQB, :gg.:iB7  .,,,:.                      ...,.   .     ..   .:iM6GEpSSXZOEs:...;spZpKKXXSX5Xa5Ja5wwKGQDEpp6OZ
       53                          w; ,LXLr77sLwL5aR. gRgQgaQBi ,vJwvi,.                 .;;:;7:   .   .  ,...  rRDRJUSXpgas:,.:;U66SaHa2X5aUa552X12SgQgpZpEpGOD
       54                          H: ;XJ;77rv7rJUaQ;rgaPgXXHBB;        . .              .ri:;;          ,: . :6QZEKHXpXXL:,::r1PKXaa2XSS5a5S5UJ22aOBgEpOppZOOgG
       55                          iwsJsr7rsLrrLcJ2gQGXHwa1SUHBB:  . ... .                 ..,           :   1BRKpOEGp2Jr;::rsXP1Uaa2U5a5aUa5SsSpgQRZGZEEZZOOgDg
       56                            ,cs5aXaP552ssLwRSHXaSS5asXBB.      . .                             .  LBBgGgZHsr;vrr;rcXpP5UUS5X5S2XS5SS1URBggpEZgDDGOGggRD
       57                               ,;irrs2KgQRPJJJSUXKXSHJpBM   . . .                                ZBBOUsr;:.  ,,,rHgZPUaSaUSUSSXaUPXsSBB6ZZp6EEGOOGDEggO
       58                                        ;BBQQZaSJ5J15SJDQ7                                    .iEBL:.  . .,:,:;SRQGZXPXXSHaS2UUSUSswQB6OZgG6pZZGODEOGDE
       59                                       JgUri1aGEpEpXSS5LBQ,                              .rLap2Jr     ;712OO6ZggRDZXHXpKK2211LLLc7wgBa2PODRGE6OZgDgGDGD
       60                                     7QB; ,Jc76DaZXOZgDPEBBX,                       :c1HEZ1c;:,.,:;cHDgQQggMZgGOZO6OEGpXsLLsJXHPOBBBc;vss5EMggZDODOgED6
       61                                    LZJ::iwrrr72EPgXU5OBBBBBBBp7:               .i5P6wL;,   .:LS6DMgMgZKgEOPOGGDDGEXULvLSOBBBBBQBgDQDJ5rrr7JOQQDDZGEgDD
       62                                    wp rR5,       .HQRX7r72RQBBBBBQBMEK6Uc7sc7cHOU:,     .:LHgOQg6ZOPZpZGGEDERZPwcr7LKDDaJr:.      rBX;;:r:ir1DBQMgRgDp
       63                                    7D,sw:      ,   Z.      .LgBBQBBOsJaQBBBBBBXrr.  .:rwZBBQgROgDgDOERRMgROOScrLsPP5r,             7Qs,::::::rUgRgZOG6
       64                                    ,Q57:r  ,:  ,r  U:         .;;   .vL7L;r:UG7.:sr;JSgQBgDEZXXUSXpHa21svr7r7s2v:.                  iQK...:,:::;LLJJws
       65                                     OBHs;.  :;;,v  H:             :6X;       rpL;7pSrrr7r;::,....,,:;iirrvvvr,                       :BBPs;;:,,,,::;::
       66                                     ::rPDEL:..7:c;7r              pK  .:      :KL.:r:..     ..:icsS5sr:,.                              JgGgBQDOSJss77r
       67                                          :r;:::  ,                PH r,       ,;5: ,::::;7Ls7Lc7;:                                         ,:7JP17rJUs
       68                                                                   .:J: :;  .,:K6BQS7:.,.,.
       69                                                                     :r7Ji;r7;::;;.
       70                                                                         .                                                                             **/
       71                                                                         
       72 #include <bits/stdc++.h>
       73 using namespace std;
       74 
       75 #define FFI(a, b) for(int i = a; i < b; i++)
       76 #define FFJ(a, b) for(int j = a; j < b; j++)
       77 #define RR(a, b) for(int i = a; i > b; i++)
       78 #define ME(a, b) memset(a, b, sizeof(a))
       79 #define SC(x) scanf("%d", &x)
       80 #define PR(x) printf("%d\n", x)
       81 #define INF 0x3f3f3f3f
       82 #define MAX 1001
       83 #define MOD 1000000007
       84 #define E 2.71828182845
       85 #define M 8
       86 #define N 6
       87 typedef long long LL;
       88 const double PI = acos(-1.0);
       89 typedef pair<int, int> Author;
       90 vector<pair<string, int> > VP; 
       91 
       92 int main(void){
       93     #ifdef LOCAL
       94         freopen("in.txt", "r", stdin);
       95         freopen("out.txt", "w", stdout);
       96     #endif
       97     ios::sync_with_stdio(false); cin.tie(0);
       98     int n, command, temp;string str, str1;
       99     
      100     while(cin>>n){
      101         stack<string> s; str = "";s.push(str);
      102         while(n--){
      103             cin>>command;
      104             if(command == 1){
      105                 cin>>str1;
      106                 str += str1;
      107                 s.push(str);
      108             }
      109             else if(command == 2){
      110                 cin>>temp;
      111                 str.erase(str.size() - temp, temp); 
      112                 s.push(str);
      113             }
      114             else if(command == 3){
      115                 cin>>temp;
      116                 cout<<str[temp - 1]<<endl;
      117             }
      118             else{
      119                 s.pop();
      120                 str = s.top();
      121             }
      122          }
      123     }
      124     
      125     return EXIT_SUCCESS;
      126 }
      View Code

       

       

      链接:https://www.nowcoder.com/acm/contest/122/F
      来源:牛客网

      阿汤的疑惑
      时间限制:C/C++ 1秒,其他语言2秒
      空间限制:C/C++ 32768K,其他语言65536K
      64bit IO Format: %lld

      题目描述

      阿汤同学最近刚学数论,他发现数论实在是太有趣了,于是他想让你也感受一下数论的乐趣。现在他给你一个正整数 N 和一个正整数 M,要求你用 N 对 M 进行取余操作,即 N % M,记余数为 S。
      但是他发现这样好像并不能让你感受到数论的乐趣,于是他想让你在N 对 M 取余操作的基础上再求出这个余数 S 能分解出多少个不同质因数。

      质因数:质因数在数论里是指能整除给定正整数的质数,质数就是只能整除 1 和本身的数,定义 2 是最小的质数。

      输入描述:

      从标准输入读入数据。
      输入包含多组数据,第一行一个整数 T 代表数据组数。接下来依
      次描述每组数据,对于每组数据:
      第一行输入正整数 N,第二行输入正整数 M

      【数据规模】
      1≤N≤10^100
      1≤M≤2^31-1

      输出描述:

      输出到标准输出。
      对于每组数据,输出一行:
      余数 S 能分解出的不同质因数的个数。
      示例1

      输入

      2
      68
      40
      6
      180

      输出

      2
      2

      分析:现在题目都好考思维了,求余数简单,题目就是求s有多少素数,它可以整除.

      技术分享图片
        1 /**
        2  
        3                                                                        :;LaEaHKEEGpPXU7;,
        4                                                                   .:75pKH11252U252XapZgRQgD6XJscLr;,.
        5                                                                :LXpRgGaX521JLw1JswJJsJs22XHPPEZEGDOMMRDOa7.
        6                                                            .r2EDDZEpZPZP6KpHX5SXH5XXa5KwaXaSX5UJ1c77sLs2GMQQ6r                                       .
        7                                                         ,LpgOGpEZGZEZEpZKpHHU5wP5HEDgpXpHa2SSa5aSXULr7rrirrJXRBp;                                   ;B
        8                                                      ,J6MRZH6EgEEZE6E6EZZPZXXwSSGQXr::aPpP5USUHaHaKa5Lvrr7ri;rLHBB2:                                Kc
        9                                                    rpQDOpPPOGGZOGOZG6GEOEOEDPPGBa.  .PaSSUXSUUUaUSaKXKS177r7rrrirSBBR7                             .O,
       10                                                 :UBQOKPK6ZOOOEDEO6GZE6EpEpDgDBR:   UBpXHa5aSaUS5SUS5XapPHJc7rrv7rr7sgBBs                           .g.
       11                                               ;gBMPXpO6GEOEOEOEGEOEE6EZEEDRGBB    EB5pKSXpHKaHSX552S5aUHHEX17c7vr7777s5RBS:                        .R;
       12                                            .sQBPXpDZOODOgODGOGgEDEOEOGgGgOOMB:   LBKKSXSHa52aaKXHXKaa5aSaaHXSJLcL7vcc777JDBBg2;.                    Qi
       13                                          ;2ggp2EDDOggGEDGgDDOgGGZDOOZOGg6gEBX    vBZaHUKaaUXXXSXXKXpXHXH5wwaa52U1wssLsLJccv1UDQBQ67.                O7
       14                                        :ZZUU5PROOEOZOZGGOODZOGgODZOOgOggRgRB; ;:..R6XaKKpP6PGppKPHpHpPX5aU21UUa5Sw52UwUJJv77L77sSpQMDU;            ;B5
       15                                      ,SRJ7sSHGggEOZOEG6OODpOZgggOQQBBBBBQBBQ.,;;. LBOgOgDRDDZODMgQRgRDaa552a252UUa25w5UaU2sLvccs7r7sJZBBMr       ,XQJ:
       16                                     LQHr77J6RGOZDZOEGEDGgDRORQBBBQRDPU1Jscwa7.,::.:J7r;::::.  ..,:;i7UOgRRRgDPH5SUSU52U2HHa1JJJLJLccLr71RBB,    7R2,
       17                                   :RZv;77JSgGOZEODEDGOEggQBBBMS7;:,:,,.,.,.:7L;:,;.:  ,: . .....       .:;rJU6GgGRggEZHPaKXX2S221Js1Lc7r:7QB. .XX:
       18                                  7g1;;7rcXG6gpGDZGgZOOQBBQpr.   ::::;:;:::Jr::sr;::;:.:vs,:::::::::::,,         ,:7L5HGOggRgZUUU5wSUaJLc7r7BOiDr  ...
       19                                .XX;;;irLHGKpZZZEKgDRBBB6i    ,;;:;;;;r;;:s177:,;L7:;7:.rHi,:::::::::::::::::,.         .,;7ZRQgO6KUUJsLwsJ7KBM. .....
       20                                JZ:;rrrc5EPHp6XgpRBBBE;     :i:;;;;;:;;;:c7::r7;,::::::::rv:,:::::::::::,:,:,:,,,,            .;sORQRGX21wsXU:  .... .
       21                               .Br;iir72EHPHZ6EgBBR7.   ..;ii:;;;;;;;;;:71r::.:7,  .::7;:;H;.::,:j::::::,:::::,,,::,,,              ,7wEDRZBMr  .......
       22                               1D;:r;rwOPXPKH6BBX,   .:;:;;;:::;:;;;;;::Ls,;ss..r.  ,c77;sLU,:,:::,:::,:,:,:,,,:,,,:::.                  .:.rP:.......
       23                               D2:i;rJpKHXHXgg7    .,,::::;:::::;:;:;;:;SL7sS2, :.   ::::,:U7.:::,:::,:,,,,,:,,.,,,.,:,                    ;L:. .. ...
       24                              :Qc;i7LGZPa6gBM,  ...,,::::::::::::;;::;.JJ;ic:         ;:::,v1,.:::;7,,,:,:,:,,,,.:,,,,..                :2wr.  .......
       25                              sRr:rrwZGgBQR7.  .,,::::::::::::::;::;:::Hr:7i          ,;;:::U: .,,,:r.,,:,:,:,,,:,,,.....             7K2:. ..........
       26                              OX:irsXgQZ:.   .,,:::,,:::,::::::::;;;::r5;r7:           :;;;:7L ..,.,;:,:,:,,,:,:,,,,......        .rU6w;..............
       27                             .BJ71EK5;.   .,,::,:,:,,,:,:,::::::::;:;.Ls;r7             :;:::s, ..,,,r:.:.,,,.:, .,..... .    .;s5XJr,..,.............
       28                             1Mv::.     .:,:,,,,,,,:::::::,;:::;:;::..J7;c:          ,. ,rri:27  , .,:;. ,:,:,,:..,....    .rpPL;:.. ... .............
       29                        ..7Ls:        .,,,:,,,:,:,:::,:,:::::,:::::: .Srrr,  .,:;;;::::..:7r;r1    .: :E:..,,:,...,,.., ..XBQ7, ................... ..
       30                   ,;7v7r7:,         ,,,,:.,,,,,,:,,::,:,,.::.,:.,:, :Jrr; ,r7,:..        ,:::L:  .  .7RJ .,.:.,......,,:MBs   ..............,........
       31             .:;vJs7i,              ,,,., ..,,:,,,:,,,:,:.,rs,,.:,,  ;J;c,                .,::;;     Lr.E: .,...,....:,:1Z:  .........,.,...........:,.
       32    .;,,:r7J1wv;,.               ....,.:. .,.,,:,,,:,,::::,sS;.:::,  cLrr.     .       .,. .,..:    ;;  r5 ........,,:;s7. ....,.,.,...........,.,.,,.
       33    ,BBs:::                   . ........,.,,,,,.:,,,:,:,,.;s7r,,,,,  cc7;         ,.,,.      .:7rrJGMPOEL1, ..... ,,:rSr, : ,.,.,.,.,.........,,,,,. ..
       34      rZL.                   ....... ..,,,.,,,..,,,.,;,...7J:s: ..  .wr7,        ...    .rJpQBBBBBBBQgKP77s  ..  .,7S2,,....,....,.,.,......,,.,. .:cX2
       35        ;SH7,               . . . .. .,.,.,.,,,...,..r, ::Ur;7L .   .57;.           .rPBBQBBBPws:;r::::.,:P.    .;S5;,..,...,.,.,.,.... ..,,, ..,7HSJvr
       36           r7r;:             . ... ..........,...,.. 7L;,rS;;ivr .   1r:       .  .rZBBK7;.JL,::Jrs;.:;,:;J, .,;LDv..:.,...,.,.,.,...,.,,:,, ,7sKGwc77;
       37              .:7L7:,            . ,r,..,.,,,...,..:iLL  7s;r;cv:    U7.         :vi;:. .. :Er:::.Ls. . ,7::::vHEi ,:,,.,,,.,.,,,,,,::::, .:1QBKJJUsssc
       38                 .:rvw1JsL7;,      ,;..........,.:ir :r .ELr77v:,.   Pr          ..      .  Ls    ,w.   rr.r:JPr. ::,..,,,.,,,,:,:::,:,..7XgRE52US25w1c
       39                       .:;7JRQpX:   ; .........,i:  .,J ;gri;7r  :   1;                     .X:    .   ,v :aK1, ,,:.,,,.,,,,:::::,;::::cOBB6K55UXUX5XUw
       40                            ;J,XQB7,:    . ...,:   .:7Z.7Zi7;r:   ,  v,                      :w:;,.,:::7LUsc:..:,:.:,,,,,:,:::::::,:;c5BBPS5wSUSUaUaUa2
       41                            J7  rEBBg..,. ..... .  ,L1PLKr:,:;r;;::, :,                       :;SXsJU1XLLr....:,,,,,,::::,::::::,::LL,,rZXUJU25552aUUUU
       42                            JL .:sXBB:... ., .    ,OH777;,rZRBBBQL ..r,                     ,:r7::r:,;;....:,,,,,,,,.::::;::;:::.7gL    UK2UUS1aw2wU25J
       43                            U7 .r71BB;  . :.. .. :QJ;.;1pBBBBBGRBRi  i:                   .      .w7.   ..,,:,,,,,:,:,:::::::,.,2BR:   .DSaUSUUS525w5U1
       44                            2r :7rJBQ7   .;. .   KL::JGBBBgE6Hp6XMQ;     .                    ... ,2s    ,,,,:::::,:::::::,,.:sQQB2    ;DHa5U52S2U25USJ
       45                            a: :7;1BB2   .v,    sL;LPQgDBPH6KPQBpGBG    .                   ... ..  aP:. .. ,::,:::::,,,,.;rSgBQDa;    :gSSwSUUU525US2U
       46                            5; ;;r2QBB,  .s:  :a7:PBZ2,:BEaZPKgBZOgB,                        .   ...:LEHri::,:.,,.,,,::rsXRBgGKEJi,    2GH252SUS5S11wH5
       47                            U: ;:rwDBBr  .c, rB6r 167.,,RQPpEP6OpKEBc      .,                 .   : ::sS7;cKB6HHa1XOQRRQBRgEZDBH; ..  ;RZUPSSU525USSpK2
       48                            s; ;::aBg,   .; .Gv,H::,,::,;BQDOGHPXpKBs      .,.                 . .,.  .r:;:6gOEBQRRRDggQgOHgMGL,    .;PEHHXaaKaPXPKPaXS
       49                            s7.:,sBa     :..S,  vE::::;  7BBMgZH6pQBr             .             ,:,   ,.,r2RHSSpMZPKRRZpgggav,    ;UpEZaaaKHHUHPPaUJHGO
       50                            a;.775:    .::rU.    gR:,:.   :;:BBBBQar                         .  ,,   ,.,7rggJwU6DDGMgOGgXc:,   ,rPGOpKSXSXSKUKHU1UHgOEP
       51                           1i :SZJrLXpBBMRB:  .v  Ba,.       :sv:                             .        irsBUSpEEGPPpg65r:..,;sKZDZHSX5XaHU55K2wUGMRZ6Z6
       52                          :K  :7asvwc2MgEQB, :gg.:iB7  .,,,:.                      ...,.   .     ..   .:iM6GEpSSXZOEs:...;spZpKKXXSX5Xa5Ja5wwKGQDEpp6OZ
       53                          w; ,LXLr77sLwL5aR. gRgQgaQBi ,vJwvi,.                 .;;:;7:   .   .  ,...  rRDRJUSXpgas:,.:;U66SaHa2X5aUa552X12SgQgpZpEpGOD
       54                          H: ;XJ;77rv7rJUaQ;rgaPgXXHBB;        . .              .ri:;;          ,: . :6QZEKHXpXXL:,::r1PKXaa2XSS5a5S5UJ22aOBgEpOppZOOgG
       55                          iwsJsr7rsLrrLcJ2gQGXHwa1SUHBB:  . ... .                 ..,           :   1BRKpOEGp2Jr;::rsXP1Uaa2U5a5aUa5SsSpgQRZGZEEZZOOgDg
       56                            ,cs5aXaP552ssLwRSHXaSS5asXBB.      . .                             .  LBBgGgZHsr;vrr;rcXpP5UUS5X5S2XS5SS1URBggpEZgDDGOGggRD
       57                               ,;irrs2KgQRPJJJSUXKXSHJpBM   . . .                                ZBBOUsr;:.  ,,,rHgZPUaSaUSUSSXaUPXsSBB6ZZp6EEGOOGDEggO
       58                                        ;BBQQZaSJ5J15SJDQ7                                    .iEBL:.  . .,:,:;SRQGZXPXXSHaS2UUSUSswQB6OZgG6pZZGODEOGDE
       59                                       JgUri1aGEpEpXSS5LBQ,                              .rLap2Jr     ;712OO6ZggRDZXHXpKK2211LLLc7wgBa2PODRGE6OZgDgGDGD
       60                                     7QB; ,Jc76DaZXOZgDPEBBX,                       :c1HEZ1c;:,.,:;cHDgQQggMZgGOZO6OEGpXsLLsJXHPOBBBc;vss5EMggZDODOgED6
       61                                    LZJ::iwrrr72EPgXU5OBBBBBBBp7:               .i5P6wL;,   .:LS6DMgMgZKgEOPOGGDDGEXULvLSOBBBBBQBgDQDJ5rrr7JOQQDDZGEgDD
       62                                    wp rR5,       .HQRX7r72RQBBBBBQBMEK6Uc7sc7cHOU:,     .:LHgOQg6ZOPZpZGGEDERZPwcr7LKDDaJr:.      rBX;;:r:ir1DBQMgRgDp
       63                                    7D,sw:      ,   Z.      .LgBBQBBOsJaQBBBBBBXrr.  .:rwZBBQgROgDgDOERRMgROOScrLsPP5r,             7Qs,::::::rUgRgZOG6
       64                                    ,Q57:r  ,:  ,r  U:         .;;   .vL7L;r:UG7.:sr;JSgQBgDEZXXUSXpHa21svr7r7s2v:.                  iQK...:,:::;LLJJws
       65                                     OBHs;.  :;;,v  H:             :6X;       rpL;7pSrrr7r;::,....,,:;iirrvvvr,                       :BBPs;;:,,,,::;::
       66                                     ::rPDEL:..7:c;7r              pK  .:      :KL.:r:..     ..:icsS5sr:,.                              JgGgBQDOSJss77r
       67                                          :r;:::  ,                PH r,       ,;5: ,::::;7Ls7Lc7;:                                         ,:7JP17rJUs
       68                                                                   .:J: :;  .,:K6BQS7:.,.,.
       69                                                                     :r7Ji;r7;::;;.
       70                                                                         .                                                                             **/
       71                                                                         
       72 #include <bits/stdc++.h>
       73 using namespace std;
       74 
       75 #define FFI(a, b) for(int i = a; i < b; i++)
       76 #define FFJ(a, b) for(int j = a; j < b; j++)
       77 #define RR(a, b) for(int i = a; i > b; i++)
       78 #define ME(a, b) memset(a, b, sizeof(a))
       79 #define SC(x) scanf("%d", &x)
       80 #define PR(x) printf("%d\n", x)
       81 #define INF 0x3f3f3f3f
       82 #define MAX 1001
       83 #define MOD 1000000007
       84 #define E 2.71828182845
       85 #define M 8
       86 #define N 6
       87 typedef long long LL;
       88 const double PI = acos(-1.0);
       89 typedef pair<int, int> Author;
       90 vector<pair<string, int> > VP; 
       91 
       92 int main(void){
       93     #ifdef LOCAL
       94         freopen("in.txt", "r", stdin);
       95         freopen("out.txt", "w", stdout);
       96     #endif
       97     ios::sync_with_stdio(false); cin.tie(0);
       98     LL T, len, n, m, n1, res, ans;string str;
       99     
      100     cin>>T;
      101     while(T--){
      102         cin>>str>>m;n = res = 0;
      103         FFI(0, str.size())n = (n * 10 + str[i] - 0) % m;
      104         n1 = (LL)sqrt(n);
      105         
      106         //ÖÊÒòÊý
      107         FFI(2, n1 + 1)if(n % i == 0){res++;while(n % i == 0) n /= i;}
      108         
      109         if(n != 1)res++;
      110         cout<<res<<endl;
      111     }
      112     
      113     return EXIT_SUCCESS;
      114 }
      View Code

      链接:https://www.nowcoder.com/acm/contest/122/G
      来源:牛客网

      阿汤的数组
      时间限制:C/C++ 1秒,其他语言2秒
      空间限制:C/C++ 32768K,其他语言65536K
      64bit IO Format: %lld

      题目描述

      阿汤同学为了准备下学期的 ACM-ICPC,刷了很多的题目,他觉得自己已经比较厉害了,于是想出个题目考考你。现在他给你一个数组 A,问你是否能将该数组划分成数组 B、C 使得 B 数组的平均数和C 数组的平均数相等,数组 B 和 C 都不能为空。

      输入描述:

      从标准输入读入数据。
      输入包含多组数据,第一行一个整数 T 代表数据组数。接下来依次描述每组数据,对于每组数据:
      第一行输入正整数 N,第二行输入 N 个非负整数

      1≤|A|≤30 (数组 A 的长度范围在 1 到 30 之间 )
      0≤A[i]≤10000 (数组 A 中的元素)

      输出描述:

      输出到标准输出。
      对于每组数据,输出一行:
      如果能划分成满足题目要求的数组 B 和 C 则输出 yes,否则输出no
      示例1

      输入

      1
      8
      1 2 3 4 5 6 7 8

      输出

      yes

      说明

      样例说明:将数组 A 划分成【1,4,5,8】和【2,3,6,7】,平均数为 4.5

      分析:DP,板子题

      技术分享图片
       1 #include <bits/stdc++.h>
       2 using namespace std;
       3 typedef long long ll;
       4 int t,n;
       5 bool dp[310005][33];
       6 int s[35];
       7 int solve(){
       8     cin>>n;
       9     double sum=0;
      10     for(int i=1;i<=n;i++){
      11         cin>>s[i];
      12         sum+=s[i];
      13     }
      14     sum/=n;
      15     memset(dp,0,sizeof(dp));
      16     int maxn=0;
      17     dp[0][0]=1;
      18     for(int i=1;i<=n;i++){
      19         for(int j=maxn;j>=0;j--){
      20             for(int z=0;z<n-1;z++){
      21                 if(dp[j][z]){
      22                     int k=j+s[i];
      23                     dp[k][z+1]=1;
      24                     maxn=max(maxn,k);
      25                     if(fabs(k*1.0/(z+1)-sum)<=0.0000000001){
      26                     //  cout<<k<<" "<<z+1<<endl;
      27                     //  cout<<sum<<endl;
      28                         return 1;
      29                     }
      30                 }
      31             }
      32         }
      33     }
      34     return 0;
      35 }
      36 int main()
      37 {
      38     int t;
      39     cin>>t;
      40     while(t--){
      41         if(solve()) cout<<"yes"<<endl;
      42         else cout<<"no"<<endl;
      43     }
      44     return 0;
      45 }
      View Code

      链接:https://www.nowcoder.com/acm/contest/122/H
      来源:牛客网

      小q的数列
      时间限制:C/C++ 1秒,其他语言2秒
      空间限制:C/C++ 32768K,其他语言65536K
      64bit IO Format: %lld

      题目描述

      小q最近迷上了各种好玩的数列,这天,他发现了一个有趣的数列,其递推公式如下:

      f[0]=0 f[1]=1;
      f[i]=f[i/2]+f[i%2];(i>=2)

      现在,他想考考你,问:给你一个n,代表数列的第n项,你能不能马上说出f[n]的值是多少,以及f[n]所代表的值第一次出现在数列的哪一项中?(这里的意思是:可以发现这个数列里某几项的值是可能相等的,则存在这样一个关系f[n‘] = f[n] = f[x/2]+f[x%2] = f[x]...(n‘<n<x) 他们的值都相等,这里需要你输出最小的那个n‘的值)(n<10^18)

      输入描述:

      输入第一行一个t
      随后t行,每行一个数n,代表你需要求数列的第n项,和相应的n‘
      (t<4*10^5)

      输出描述:

      输出每行两个正整数
      f[n]和n‘,以空格分隔
      示例1

      输入

      2
      0
      1

      输出

      0 0
      1 1

      分析:这题我本来也是想找循环环,但是发现有点问题,后来再用n / 2 ,n % 2想的

      技术分享图片
        1 /**
        2  
        3                                                                        :;LaEaHKEEGpPXU7;,
        4                                                                   .:75pKH11252U252XapZgRQgD6XJscLr;,.
        5                                                                :LXpRgGaX521JLw1JswJJsJs22XHPPEZEGDOMMRDOa7.
        6                                                            .r2EDDZEpZPZP6KpHX5SXH5XXa5KwaXaSX5UJ1c77sLs2GMQQ6r                                       .
        7                                                         ,LpgOGpEZGZEZEpZKpHHU5wP5HEDgpXpHa2SSa5aSXULr7rrirrJXRBp;                                   ;B
        8                                                      ,J6MRZH6EgEEZE6E6EZZPZXXwSSGQXr::aPpP5USUHaHaKa5Lvrr7ri;rLHBB2:                                Kc
        9                                                    rpQDOpPPOGGZOGOZG6GEOEOEDPPGBa.  .PaSSUXSUUUaUSaKXKS177r7rrrirSBBR7                             .O,
       10                                                 :UBQOKPK6ZOOOEDEO6GZE6EpEpDgDBR:   UBpXHa5aSaUS5SUS5XapPHJc7rrv7rr7sgBBs                           .g.
       11                                               ;gBMPXpO6GEOEOEOEGEOEE6EZEEDRGBB    EB5pKSXpHKaHSX552S5aUHHEX17c7vr7777s5RBS:                        .R;
       12                                            .sQBPXpDZOODOgODGOGgEDEOEOGgGgOOMB:   LBKKSXSHa52aaKXHXKaa5aSaaHXSJLcL7vcc777JDBBg2;.                    Qi
       13                                          ;2ggp2EDDOggGEDGgDDOgGGZDOOZOGg6gEBX    vBZaHUKaaUXXXSXXKXpXHXH5wwaa52U1wssLsLJccv1UDQBQ67.                O7
       14                                        :ZZUU5PROOEOZOZGGOODZOGgODZOOgOggRgRB; ;:..R6XaKKpP6PGppKPHpHpPX5aU21UUa5Sw52UwUJJv77L77sSpQMDU;            ;B5
       15                                      ,SRJ7sSHGggEOZOEG6OODpOZgggOQQBBBBBQBBQ.,;;. LBOgOgDRDDZODMgQRgRDaa552a252UUa25w5UaU2sLvccs7r7sJZBBMr       ,XQJ:
       16                                     LQHr77J6RGOZDZOEGEDGgDRORQBBBQRDPU1Jscwa7.,::.:J7r;::::.  ..,:;i7UOgRRRgDPH5SUSU52U2HHa1JJJLJLccLr71RBB,    7R2,
       17                                   :RZv;77JSgGOZEODEDGOEggQBBBMS7;:,:,,.,.,.:7L;:,;.:  ,: . .....       .:;rJU6GgGRggEZHPaKXX2S221Js1Lc7r:7QB. .XX:
       18                                  7g1;;7rcXG6gpGDZGgZOOQBBQpr.   ::::;:;:::Jr::sr;::;:.:vs,:::::::::::,,         ,:7L5HGOggRgZUUU5wSUaJLc7r7BOiDr  ...
       19                                .XX;;;irLHGKpZZZEKgDRBBB6i    ,;;:;;;;r;;:s177:,;L7:;7:.rHi,:::::::::::::::::,.         .,;7ZRQgO6KUUJsLwsJ7KBM. .....
       20                                JZ:;rrrc5EPHp6XgpRBBBE;     :i:;;;;;:;;;:c7::r7;,::::::::rv:,:::::::::::,:,:,:,,,,            .;sORQRGX21wsXU:  .... .
       21                               .Br;iir72EHPHZ6EgBBR7.   ..;ii:;;;;;;;;;:71r::.:7,  .::7;:;H;.::,:j::::::,:::::,,,::,,,              ,7wEDRZBMr  .......
       22                               1D;:r;rwOPXPKH6BBX,   .:;:;;;:::;:;;;;;::Ls,;ss..r.  ,c77;sLU,:,:::,:::,:,:,:,,,:,,,:::.                  .:.rP:.......
       23                               D2:i;rJpKHXHXgg7    .,,::::;:::::;:;:;;:;SL7sS2, :.   ::::,:U7.:::,:::,:,,,,,:,,.,,,.,:,                    ;L:. .. ...
       24                              :Qc;i7LGZPa6gBM,  ...,,::::::::::::;;::;.JJ;ic:         ;:::,v1,.:::;7,,,:,:,:,,,,.:,,,,..                :2wr.  .......
       25                              sRr:rrwZGgBQR7.  .,,::::::::::::::;::;:::Hr:7i          ,;;:::U: .,,,:r.,,:,:,:,,,:,,,.....             7K2:. ..........
       26                              OX:irsXgQZ:.   .,,:::,,:::,::::::::;;;::r5;r7:           :;;;:7L ..,.,;:,:,:,,,:,:,,,,......        .rU6w;..............
       27                             .BJ71EK5;.   .,,::,:,:,,,:,:,::::::::;:;.Ls;r7             :;:::s, ..,,,r:.:.,,,.:, .,..... .    .;s5XJr,..,.............
       28                             1Mv::.     .:,:,,,,,,,:::::::,;:::;:;::..J7;c:          ,. ,rri:27  , .,:;. ,:,:,,:..,....    .rpPL;:.. ... .............
       29                        ..7Ls:        .,,,:,,,:,:,:::,:,:::::,:::::: .Srrr,  .,:;;;::::..:7r;r1    .: :E:..,,:,...,,.., ..XBQ7, ................... ..
       30                   ,;7v7r7:,         ,,,,:.,,,,,,:,,::,:,,.::.,:.,:, :Jrr; ,r7,:..        ,:::L:  .  .7RJ .,.:.,......,,:MBs   ..............,........
       31             .:;vJs7i,              ,,,., ..,,:,,,:,,,:,:.,rs,,.:,,  ;J;c,                .,::;;     Lr.E: .,...,....:,:1Z:  .........,.,...........:,.
       32    .;,,:r7J1wv;,.               ....,.:. .,.,,:,,,:,,::::,sS;.:::,  cLrr.     .       .,. .,..:    ;;  r5 ........,,:;s7. ....,.,.,...........,.,.,,.
       33    ,BBs:::                   . ........,.,,,,,.:,,,:,:,,.;s7r,,,,,  cc7;         ,.,,.      .:7rrJGMPOEL1, ..... ,,:rSr, : ,.,.,.,.,.........,,,,,. ..
       34      rZL.                   ....... ..,,,.,,,..,,,.,;,...7J:s: ..  .wr7,        ...    .rJpQBBBBBBBQgKP77s  ..  .,7S2,,....,....,.,.,......,,.,. .:cX2
       35        ;SH7,               . . . .. .,.,.,.,,,...,..r, ::Ur;7L .   .57;.           .rPBBQBBBPws:;r::::.,:P.    .;S5;,..,...,.,.,.,.... ..,,, ..,7HSJvr
       36           r7r;:             . ... ..........,...,.. 7L;,rS;;ivr .   1r:       .  .rZBBK7;.JL,::Jrs;.:;,:;J, .,;LDv..:.,...,.,.,.,...,.,,:,, ,7sKGwc77;
       37              .:7L7:,            . ,r,..,.,,,...,..:iLL  7s;r;cv:    U7.         :vi;:. .. :Er:::.Ls. . ,7::::vHEi ,:,,.,,,.,.,,,,,,::::, .:1QBKJJUsssc
       38                 .:rvw1JsL7;,      ,;..........,.:ir :r .ELr77v:,.   Pr          ..      .  Ls    ,w.   rr.r:JPr. ::,..,,,.,,,,:,:::,:,..7XgRE52US25w1c
       39                       .:;7JRQpX:   ; .........,i:  .,J ;gri;7r  :   1;                     .X:    .   ,v :aK1, ,,:.,,,.,,,,:::::,;::::cOBB6K55UXUX5XUw
       40                            ;J,XQB7,:    . ...,:   .:7Z.7Zi7;r:   ,  v,                      :w:;,.,:::7LUsc:..:,:.:,,,,,:,:::::::,:;c5BBPS5wSUSUaUaUa2
       41                            J7  rEBBg..,. ..... .  ,L1PLKr:,:;r;;::, :,                       :;SXsJU1XLLr....:,,,,,,::::,::::::,::LL,,rZXUJU25552aUUUU
       42                            JL .:sXBB:... ., .    ,OH777;,rZRBBBQL ..r,                     ,:r7::r:,;;....:,,,,,,,,.::::;::;:::.7gL    UK2UUS1aw2wU25J
       43                            U7 .r71BB;  . :.. .. :QJ;.;1pBBBBBGRBRi  i:                   .      .w7.   ..,,:,,,,,:,:,:::::::,.,2BR:   .DSaUSUUS525w5U1
       44                            2r :7rJBQ7   .;. .   KL::JGBBBgE6Hp6XMQ;     .                    ... ,2s    ,,,,:::::,:::::::,,.:sQQB2    ;DHa5U52S2U25USJ
       45                            a: :7;1BB2   .v,    sL;LPQgDBPH6KPQBpGBG    .                   ... ..  aP:. .. ,::,:::::,,,,.;rSgBQDa;    :gSSwSUUU525US2U
       46                            5; ;;r2QBB,  .s:  :a7:PBZ2,:BEaZPKgBZOgB,                        .   ...:LEHri::,:.,,.,,,::rsXRBgGKEJi,    2GH252SUS5S11wH5
       47                            U: ;:rwDBBr  .c, rB6r 167.,,RQPpEP6OpKEBc      .,                 .   : ::sS7;cKB6HHa1XOQRRQBRgEZDBH; ..  ;RZUPSSU525USSpK2
       48                            s; ;::aBg,   .; .Gv,H::,,::,;BQDOGHPXpKBs      .,.                 . .,.  .r:;:6gOEBQRRRDggQgOHgMGL,    .;PEHHXaaKaPXPKPaXS
       49                            s7.:,sBa     :..S,  vE::::;  7BBMgZH6pQBr             .             ,:,   ,.,r2RHSSpMZPKRRZpgggav,    ;UpEZaaaKHHUHPPaUJHGO
       50                            a;.775:    .::rU.    gR:,:.   :;:BBBBQar                         .  ,,   ,.,7rggJwU6DDGMgOGgXc:,   ,rPGOpKSXSXSKUKHU1UHgOEP
       51                           1i :SZJrLXpBBMRB:  .v  Ba,.       :sv:                             .        irsBUSpEEGPPpg65r:..,;sKZDZHSX5XaHU55K2wUGMRZ6Z6
       52                          :K  :7asvwc2MgEQB, :gg.:iB7  .,,,:.                      ...,.   .     ..   .:iM6GEpSSXZOEs:...;spZpKKXXSX5Xa5Ja5wwKGQDEpp6OZ
       53                          w; ,LXLr77sLwL5aR. gRgQgaQBi ,vJwvi,.                 .;;:;7:   .   .  ,...  rRDRJUSXpgas:,.:;U66SaHa2X5aUa552X12SgQgpZpEpGOD
       54                          H: ;XJ;77rv7rJUaQ;rgaPgXXHBB;        . .              .ri:;;          ,: . :6QZEKHXpXXL:,::r1PKXaa2XSS5a5S5UJ22aOBgEpOppZOOgG
       55                          iwsJsr7rsLrrLcJ2gQGXHwa1SUHBB:  . ... .                 ..,           :   1BRKpOEGp2Jr;::rsXP1Uaa2U5a5aUa5SsSpgQRZGZEEZZOOgDg
       56                            ,cs5aXaP552ssLwRSHXaSS5asXBB.      . .                             .  LBBgGgZHsr;vrr;rcXpP5UUS5X5S2XS5SS1URBggpEZgDDGOGggRD
       57                               ,;irrs2KgQRPJJJSUXKXSHJpBM   . . .                                ZBBOUsr;:.  ,,,rHgZPUaSaUSUSSXaUPXsSBB6ZZp6EEGOOGDEggO
       58                                        ;BBQQZaSJ5J15SJDQ7                                    .iEBL:.  . .,:,:;SRQGZXPXXSHaS2UUSUSswQB6OZgG6pZZGODEOGDE
       59                                       JgUri1aGEpEpXSS5LBQ,                              .rLap2Jr     ;712OO6ZggRDZXHXpKK2211LLLc7wgBa2PODRGE6OZgDgGDGD
       60                                     7QB; ,Jc76DaZXOZgDPEBBX,                       :c1HEZ1c;:,.,:;cHDgQQggMZgGOZO6OEGpXsLLsJXHPOBBBc;vss5EMggZDODOgED6
       61                                    LZJ::iwrrr72EPgXU5OBBBBBBBp7:               .i5P6wL;,   .:LS6DMgMgZKgEOPOGGDDGEXULvLSOBBBBBQBgDQDJ5rrr7JOQQDDZGEgDD
       62                                    wp rR5,       .HQRX7r72RQBBBBBQBMEK6Uc7sc7cHOU:,     .:LHgOQg6ZOPZpZGGEDERZPwcr7LKDDaJr:.      rBX;;:r:ir1DBQMgRgDp
       63                                    7D,sw:      ,   Z.      .LgBBQBBOsJaQBBBBBBXrr.  .:rwZBBQgROgDgDOERRMgROOScrLsPP5r,             7Qs,::::::rUgRgZOG6
       64                                    ,Q57:r  ,:  ,r  U:         .;;   .vL7L;r:UG7.:sr;JSgQBgDEZXXUSXpHa21svr7r7s2v:.                  iQK...:,:::;LLJJws
       65                                     OBHs;.  :;;,v  H:             :6X;       rpL;7pSrrr7r;::,....,,:;iirrvvvr,                       :BBPs;;:,,,,::;::
       66                                     ::rPDEL:..7:c;7r              pK  .:      :KL.:r:..     ..:icsS5sr:,.                              JgGgBQDOSJss77r
       67                                          :r;:::  ,                PH r,       ,;5: ,::::;7Ls7Lc7;:                                         ,:7JP17rJUs
       68                                                                   .:J: :;  .,:K6BQS7:.,.,.
       69                                                                     :r7Ji;r7;::;;.
       70                                                                         .                                                                             **/
       71                                                                         
       72 #include <bits/stdc++.h>
       73 using namespace std;
       74 
       75 #define FFI(a, b) for(int i = a; i < b; i++)
       76 #define FFJ(a, b) for(int j = a; j < b; j++)
       77 #define RR(a, b) for(int i = a; i > b; i++)
       78 #define ME(a, b) memset(a, b, sizeof(a))
       79 #define SC(x) scanf("%d", &x)
       80 #define PR(x) printf("%d\n", x)
       81 #define INF 0x3f3f3f3f
       82 #define MAX 1001
       83 #define MOD 1000000007
       84 #define E 2.71828182845
       85 #define M 8
       86 #define N 6
       87 typedef long long LL;
       88 const double PI = acos(-1.0);
       89 typedef pair<int, int> Author;
       90 vector<pair<string, int> > VP; 
       91 
       92 int main(void){
       93 //    #ifdef LOCAL
       94 //        freopen("in.txt", "r", stdin);
       95 //        freopen("out.txt", "w", stdout);
       96 //    #endif
       97 //    ios::sync_with_stdio(false); cin.tie(0);
       98     LL T, n, ans, len;
       99     
      100     cin>>T;
      101     while(T--){
      102         scanf("%lld", &n); len = ans = 0;
      103         while(n > 1){
      104             if(n % 2 == 1) len++;
      105             n /= 2;
      106         }
      107         len += n == 0 ? 0 : 1;
      108         FFI(0, len) ans = ans * 2 + 1;
      109         printf("%lld %lld\n", len, ans);
      110     }
      111     
      112     return EXIT_SUCCESS;
      113 }
      View Code

       

       

      以上是关于南昌航空大学4-6次PTA总结的主要内容,如果未能解决你的问题,请参考以下文章

      关于PTA第二次大作业的总结

      icpc南昌邀请赛 比赛总结

      PTA题集4-6总结

      PTA题目集4~6的总结

      PTA题目集4~6总结

      OOP PTA题目集4-6总结性BLOG