牛语 and 采蘑菇的拖拉机

牛语

(latin.pas/c/cpp) 

【问题描述】

奶牛们听说猪发明了一种秘密语言,叫做"猪语",因为猪不想让主人陈亮宇知道他们在商量什么.奶牛们也感觉这样很不错,所以她们想发明他们自己的语言,牛语.。想把一个普通的英语单词转换成牛语很简单.如果一个单词的以一个元音字母('a','e','i','o','u)开头,那么只需在 这个单词的结尾加上"cow".例如,"udder"需要变成"uddercow"; 如果一个单词的第一个字母不是元音字母,那么只需把这个单词的第一个字母放到单词结尾,然后再在结尾加上"ow".例如 "farmer"需要变成"armerfow". 所以"the cows escape at dawn"就会变成"hetow owscow escapecow atcow awndow." 奶牛们自信地以为这样就可以不让陈亮宇知道他们的"越狱"计划. 可惜奶牛们都不是语言学家,他们觉得这样的翻译太无聊了,所以这个任务就交给你了. 你需要将N (1 ≤ N ≤ 100)个英语单词翻译成牛语,单词长度在3到40之间.


【输入】

第1行: 一个整数N. 

第2行到第N+1行: 每行一个单词 保证每个单词都是小写字符组成


【输出】

第1行到第N行,每行一个相应的牛语单词. 


【输入输出样例1】

latin.in

latin.out

5

udder

farmer

milk

aaa

zzz

uddercow

armerfow

ilkmow

aaacow

zzzow

 这道题题意很简单。方法也很简单。是一道简单的模拟题目。
   题目意思是:输入n个英语单词,如果第一个字母是a,e,i,o,u,则直接输出这个单词,在后面加上cow。如果几个字母是其他字母,则将首字母放到这个单词的最后,再在词尾加上ow,进行输出。
这题较简单,代码如下:

#include <bits/stdc++.h>

using namespace std;

int main()

{

  int n,m,i,j,t=1;;

  string s;

  cin>>n;

  for (i=1;i<=n;i++)

  {

     cin>>s;

               for (j=1;j<=1;j++)

         if (s[0]=='a' || s[0]=='e'|| s[0]=='i' || s[0]=='o' || s[0]=='u')    s=s+"cow";

         else

         {

            s=s+s[0]+"ow";

            s.erase(0,1);

         }

         cout<<s<<endl;   

}

  return 0;

}
代码意思是:     

输入总共的单词数n,

然后从一到n循环。
输入这个单词s。

进行判断,如果这个单词是a,e,i,o,u之间的一个,那就直接输出这个单词,再输出cow。反之,就s+s[0];s.erase(1,0);cout<<s<<"ow";
就可以把这道题AC了。
  采蘑菇的拖拉机

(tractor.pas/c/cpp) 

【问题描述】

春天来了,朱昶成的农场里会长很多蘑菇,而观察奶牛开着拖拉机采蘑菇成了朱昶成喜爱做的一件事情。

朱昶成的农场被分为了一个平面坐标系,最左下角的坐标为(1,1),最右上角的坐标为(10^5,10^5).

朱昶成有一个探测蘑菇的雷达,当开启蘑菇雷达后,这个雷达每一秒会发现农场上的一个蘑菇,并且会告知这个蘑菇的坐标。

朱昶成的奶牛只会沿着一个方向开拖拉机,并且不会拐弯,这里的方向指的是和坐标轴平行的四个方向和与坐标轴夹角45度的对角线(当然是两条对角线)。并且每天朱昶成只允许奶牛开一次拖拉机,也就是说,每次采蘑菇,拖拉机只能沿着一个方向去采集所经过的点的蘑菇。

朱昶成允许他的奶牛从农场里的任意一个点,任意一个方向出发,并且他的拖拉机的速度奇快,从启动到完成任务话费的时间忽略不计。现在朱昶成想直到,如果要一次性的采集K个蘑菇,最早在什么时间完成任务。

【输入】

为了防止骗分,测试数据为两组,每一组数据格式如下:

第一行两个整数N和K。表示有N个蘑菇出现,朱昶成要采集K个蘑菇。

接下来N行,第i行为两个整数Xi和Yi,表示第i秒发现的蘑菇的坐标为Xi和Yi。

在某一个坐标陆续发现多个蘑菇的可能性也是有的。

【输出】

两行,每行一个整数T,表示最早第T秒就可以完成K个蘑菇的采集。如果无法满足要求,那么这行输出-1.


【输入输出样例1】

tractor.in

tractor.out

4 3

1 2

3 4

3 2

4 5

5 2

1 1

2 1

1 2

1 3

1 4

4

2

第四秒开始,可以采集第1,2,4个蘑菇。


【数据范围】 

50% 数据保证 Xi,Yi在[1..300]之间

100% 数据保证 N在[2..10^6]之间, K在[2..N]之间。Xi和Yi在[1..10^5]之间。

 

这道题目的意思是:在一个矩阵中会陆续出现几个点,当这几个点45度角,或者上下左右四个方向中有m个点连成一线时,就输出这m个点最早在什么时候才能形成.如果不能形成,则输出“-1”.

这道题目如果在矩阵中将一个一个点模拟的话,只能得到30分。

但这道题目如果你学习过八皇后的话,你做不出来就要打屁股了。

这道题与八皇后的做法类似。

设交横坐标系为x,纵坐标系为y。将45度斜线即为x加y再加上100000.

为什么加上100000呢?

加上100000的原因是,因为横坐标本身有10万条,纵坐标同样也有10万条.斜线必须避开纵坐标和横坐标记录。

当每一次输入,将蘑菇位置的纵坐标和横坐标,斜线累加之后,

将纵坐标和横坐标,斜边进行判断,如果数量已经到达m,就直接输出i。
要注意的是,这里有两组数据。

当第一组数据判断完之后,必须要将第一组数读完。

而不能找到数后直接break.

否则,后果自负(100分变0分).

这题代码就不给了。

需要自己思考思考。

 

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值