第一周笔记

题目一

“ 改革春风吹满地,

不会AC没关系;

实在不行回老家,

还有一亩三分地。

谢谢!(乐队奏乐)”

话说部分学生心态极好,每天就知道游戏,这次考试如此简单的题目,也是云里雾里,而且,还竟然来这么几句打油诗。

好呀,老师的责任就是帮你解决问题,既然想种田,那就分你一块。

这块田位于浙江省温州市苍南县灵溪镇林家铺子村,多边形形状的一块地,原本是linle 的,现在就准备送给你了。不过,任何事情都没有那么简单,你必须首先告诉我这块地到底有多少面积,如果回答正确才能真正得到这块地。

发愁了吧?就是要让你知道,种地也是需要AC知识的!以后还是好好练吧...


Input

输入数据包含多个测试实例,每个测试实例占一行,每行的开始是一个整数n(3<=n<=100),它表示多边形的边数(当然也是顶点数),然后是按照逆时针顺序给出的n个顶点的坐标(x1, y1, x2, y2... xn, yn),为了简化问题,这里的所有坐标都用整数表示。

输入数据中所有的整数都在32位整数范围内,n=0表示数据的结束,不做处理。


Output

对于每个测试实例,请输出对应的多边形面积,结果精确到小数点后一位小数。

每个实例的输出占一行。


Sample Input

3 0 0 1 0 0 1

4 1 0 0 1 -1 0 0 -1

0


Sample Output

0.5

2.0

代码:package acm题目;

import java.util.Scanner;

public class acm3036 {

static int szx(int x1,int y1,int x2,int y2) {

return x1*y2-x2*y1;

}

public static void main(String[] args) {

    Scanner sc=new Scanner(System.in);

    int x[]=new int[100];

    int y[]=new int[100];

    while(sc.hasNext()) {

    int i;

    int n=sc.nextInt();

    if(n==0) return;

    double sum=0.0;

    for(i=0;i<n;i++) {

    x[i]=sc.nextInt();

    y[i]=sc.nextInt();

    }

    for(i=0;i<n-1;i++) {

    sum+=szx(x[i],y[i],x[i+1],y[i+1]);

    }

    sum+=x[i]*y[0]-x[0]*y[i];

    System.out.println(sum/2);

    }

}

}

题目二

Problem Description

“今年暑假不AC?”

“是的。”

“那你干什么呢?”

“看世界杯呀,笨蛋!”

“@#$%^&*%...”

确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了。

作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比如新闻联播(永远不要忘记关心国家大事)、非常6+7、超级女生,以及王小丫的《开心辞典》等等,假设你已经知道了所有你喜欢看的电视节目的转播时间表,你会合理安排吗?(目标是能看尽量多的完整节目)


Input

输入数据包含多个测试实例,每个测试实例的第一行只有一个整数n(n<=100),表示你喜欢看的节目的总数,然后是n行数据,每行包括两个数据Ti_s,Ti_e (1<=i<=n),分别表示第i个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。n=0表示输入结束,不做处理。


Output

对于每个测试实例,输出能完整看到的电视节目的个数,每个测试实例的输出占一行。


Sample Input

12

1 3

3 4

0 7

3 8

15 19

15 20

10 15

8 18

6 12

5 10

4 14

2 9

0


Sample Output

5

代码:package acm题目;

import java.io.BufferedInputStream;

import java.util.Scanner;

public class acm2037 {

public static void main(String[] args) {

Scanner sc=new Scanner(new BufferedInputStream(System.in));

while(sc.hasNext()) {

int n=sc.nextInt();

if(n==0) return;

int []s=new int[n];

int []e=new int[n];

int count=1;

for(int i=0;i<n;i++) {

s[i]=sc.nextInt();

e[i]=sc.nextInt();

}

for(int i=0;i<n;++i) {

for(int j=i;j<n;++j) {

if(e[i]>e[j]) {

int temp=e[i];

e[i]=e[j];

e[j]=temp;

temp=s[i];

s[i]=s[j];

s[j]=temp;

}

}

}

int b=e[0];

for(int i=0;i<n;i++) {

if(s[i]>=b) {

count++;

b=e[i];

}

}

System.out.println(count);

}

}

}

题目三:

亲和数

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 66560    Accepted Submission(s): 40313

Problem Description

古希腊数学家毕达哥拉斯在自然数研究中发现,220的所有真约数(即不是自身的约数)之和为: 

1+2+4+5+10+11+20+22+44+55+110=284。 

而284的所有真约数为1、2、4、71、 142,加起来恰好为220。人们对这样的数感到很惊奇,并称之为亲和数。一般地讲,如果两个数中任何一个数都是另一个数的真约数之和,则这两个数就是亲和数。 

你的任务就编写一个程序,判断给定的两个数是否是亲和数

Input

输入数据第一行包含一个数M,接下有M行,每行一个实例,包含两个整数A,B; 其中 0 <= A,B <= 600000 ;

Output

对于每个测试实例,如果A和B是亲和数的话输出YES,否则输出NO。

Sample Input

2

220 284

100 200

Sample Output

YES

NO

代码:package acm题目;

import java.util.Scanner;

public class acm2040 {

public static void main(String[] args) {

  Scanner sc=new Scanner(System.in);

  while(sc.hasNext()) {

  int M=sc.nextInt();

  int A,B;

  for(int i=0;i<M;i++) {

    A=sc.nextInt();

    B=sc.nextInt();

    int sum=0;

  for(int j=1;j<A;j++) {

    if(A%j==0) {

    sum+=j;

    }

  }

  if(sum==B)System.out.println("YES");

  else System.out.println("NO");

  }

  }

}

}

题目四

Problem Description

有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?

Input

输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。

Output

对于每个测试实例,请输出不同走法的数量

Sample Input

2

2

3

Sample Output

1

2

代码:

package acm题目;

import java.util.Scanner;

public class acm2041 {

static int fun(int n) {

  if(n==2||n==3)

  return (n-1);

  return fun(n-1)+fun(n-2);


}

public static void main(String[] args) {

  Scanner sc=new Scanner(System.in);

  while(sc.hasNext()) {

  int N=sc.nextInt();

  int s[]=new int[N];

  for(int i=0;i<N;i++) {

    s[i]=sc.nextInt();

  }

  for(int j=0;j<N;j++) {


    System.out.println(fun(s[j]));


  }

  }


}

}

题目五

Problem Description

有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。

其中,蜂房的结构如下所示。



Input

输入数据的第一行是一个整数N,表示测试实例的个数,然后是N 行数据,每行包含两个整数a和b(0<a<b<50)。

Output

对于每个测试实例,请输出蜜蜂从蜂房a爬到蜂房b的可能路线数,每个实例的输出占一行。

Sample Input

2

1 2

3 6

Sample Output

1

3

代码:package acm题目;

import java.util.Scanner;

public class acm2044 {

public static void  main(String[] args) {

  Scanner sc=new Scanner(System.in);

  while(sc.hasNext()) {

  int N=sc.nextInt();

  long s[]=new long[50];

  s[0]=s[1]=1;

  while(N--!=0){

    int a=sc.nextInt();

    int b=sc.nextInt();

    int n=(b-a);

    for(int k=2;k<50;k++) {

    s[k]=(s[k-2]+s[k-1]);

    }

    System.out.println(s[n]);

  }

  }

  }

}

题目六

Problem Description

Give you the width and height of the rectangle,darw it.

Input

Input contains a number of test cases.For each case ,there are two numbers n and m (0 < n,m < 75)indicate the width and height of the rectangle.Iuput ends of EOF.

Output

For each case,you should draw a rectangle with the width and height giving in the input.

after each case, you should a blank line.

Sample Input

3 2

Sample Output

+---+

|      |

|       |

+---+

代码:

package acm题目;

import java.util.Scanner;

public class acm2052 {

public static void main(String[] args) {

  Scanner sc=new Scanner(System.in);

  while(sc.hasNext()) {

  int m=sc.nextInt();

  int n=sc.nextInt();

  for(int i=0;i<n+2;i++) {

    for(int j=0;j<m+2;j++) {

    if(i==0&&j==0||j==0&&i==(n+1)||i==0&&j==(m+1)||i==(n+1)&&j==(m+1)) {

      System.out.print("+");


    }

    else if((i==0&&j!=0&&j!=m+1)||(i==n+1&&j!=0&&j!=m+1)) {

      System.out.print("-");

    }

    else if(i!=0&&i!=n+1&&j==0||i!=0&&i!=n+1&&j==m+1) {

      System.out.print("|");

    }

    else System.out.print(" ");

    }

    System.out.println();

  }

  System.out.println();

  }

}

}

题目七

Problem Description

Give you a number on base ten,you should output it on base two.(0 < n < 1000)

Input

For each case there is a postive number n on base ten, end of file.

Output

For each case output a number on base two.

Sample Input

1

2

3

Sample Output

1

10

11

代码:package acm题目;

import java.util.Scanner;

public class acm2051 {

public static void main(String[] args) {

  Scanner sc=new Scanner(System.in);

  while(sc.hasNext()) {

  int s=sc.nextInt();

  int s1=s;

  int []a=new int[1000];

  int count=0;

  while(s!=0) {

    count++;

    s=s/2;

  }

  for(int i=0;i<count;i++) {

    a[i]=s1%2;

    s1=s1/2;

  }

  for(int i=count-1;i>=0;i--) {

    System.out.print(a[i]);


  }

  System.out.println("");

  }

}

}

打卡题目

题目描述:翻转字符串并实现单调递增,只含有0 1两个数字

代码:

package acm题目;

import java.util.Scanner;

public class acm课程作业 {

public static int min(String S) {

        char c[]=S.toCharArray();

        int min=99999;int zero=0;

        for(int i=0;i<c.length;i++) {

        if(c[i]-'1'!=0) {

          zero++;

        }

        }

        min=zero;

        for(int i=0;i<c.length;i++) {

        if(c[i]=='0') {

        zero--;

          min=Math.min(zero, min);

        }else {

          zero++;

        }

        }

        return min;

      }

public static void main(String[] args) {

Scanner sc=new Scanner(System.in);

while(sc.hasNext()) {

String a=sc.nextLine();

System.out.println(min(a));

}

}

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容