又落下好多题解啊。。。先把今天的写上好了。

A - Snow Footprints

Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u

Description

There is a straight snowy road, divided into n blocks. The blocks are numbered from 1 to n from left to right. If one moves from the i-th block to the (i + 1)-th block, he will leave a right footprint on the i-th block. Similarly, if one moves from the i-th block to the (i - 1)-th block, he will leave a left footprint on the i-th block. If there already is a footprint on the i-th block, the new footprint will cover the old one.

At the beginning, there were no footprints. Then polar bear Alice starts from the s-th block, makes a sequence of moves and ends in the t-th block. It is known that Alice never moves outside of the road.

You are given the description of Alice's footprints. Your task is to find a pair of possible values of s, t by looking at the footprints.

Input

The first line of the input contains integer n (3 ≤ n ≤ 1000).

The second line contains the description of the road — the string that consists of n characters. Each character will be either "." (a block without footprint), or "L" (a block with a left footprint), "R" (a block with a right footprint).

It's guaranteed that the given string contains at least one character not equal to ".". Also, the first and the last character will always be ".". It's guaranteed that a solution exists.

Output

Print two space-separated integers — the values of s and t. If there are several possible solutions you can print any of them.

Sample Input

Input
9
..RRLL...
Output
3 4
Input
11
.RRRLLLLL..
Output
7 5

Hint

The first test sample is the one in the picture.

题目很简单啦,就是给一串足迹,输出一组可能的起始终止的坐标。值得注意的是,本题只有3种情况,全R 全L 有R有L 在第三种情况里只有R在(且全在)L右边的情况。(只有向右走后才有向左走的权利)只输出一种结果就好了。

#include<stdio.h>
int main()
{
char s[];
int n,i,a,b;
int flag = ,m = ,num = ;
scanf("%d",&n);
char c = getchar();//直接getchar的话出了错误source code error,但是又交了一次却对了
scanf("%c",&s[]);
for(i = ;i < n;i++)
{
scanf("%c",&s[i]);
if(s[i] != '.')
{
num ++;
if(m == )m = i;
if(s[i - ] != '.'&&flag == && s[i] != s[i - ])flag = ;
}
}
if(flag == )
{
if(s[m] == 'R')
{
a = m + ;
b = a + num;
}
if(s[m] == 'L')
{
b = m;
a = b + num;
}
}
else
{
for(i = m;s[i] != '.' && i < n;i++)
{
if(s[i] == 'L')
{
a = m+;
b = i;
break;
}
}
}
printf("%d %d\n",a,b);
return ;
}
B - Sail

Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u

Description

The polar bears are going fishing. They plan to sail from (sx, sy) to (ex, ey). However, the boat can only sail by wind. At each second, the wind blows in one of these directions: east, south, west or north. Assume the boat is currently at (x, y).

  • If the wind blows to the east, the boat will move to (x + 1, y).
  • If the wind blows to the south, the boat will move to (x, y - 1).
  • If the wind blows to the west, the boat will move to (x - 1, y).
  • If the wind blows to the north, the boat will move to (x, y + 1).

Alternatively, they can hold the boat by the anchor. In this case, the boat stays at (x, y). Given the wind direction for t seconds, what is the earliest time they sail to (ex, ey)?

Input

The first line contains five integers t, sx, sy, ex, ey (1 ≤ t ≤ 105,  - 109 ≤ sx, sy, ex, ey ≤ 109). The starting location and the ending location will be different.

The second line contains t characters, the i-th character is the wind blowing direction at the i-th second. It will be one of the four possibilities: "E" (east), "S" (south), "W" (west) and "N" (north).

Output

If they can reach (ex, ey) within t seconds, print the earliest time they can achieve it. Otherwise, print "-1" (without quotes).

Sample Input

Input
5 0 0 1 1
SESNW
Output
4
Input
10 5 3 3 6
NENSWESNEE
Output
-1

Hint

In the first sample, they can stay at seconds 1, 3, and move at seconds 2, 4.

In the second sample, they cannot sail to the destination.

又是一道很简单的题呀,可是却一直wa啊,原来是一个比较简单的地方疏忽了。题的意思是船的行走有四个方向,每次走1(可以不走),给出起点和终点,及每秒的风向。输出到达目的地的最少时间,若不能到达,输出-1.我的方法是,因为船只能走折线到达目的地,根据起末位置确定是N(S)W(E)需要出现的次数即可。

#include<stdio.h>
int main()
{
int t,sx,sy,ex,ey;
char str[];
scanf("%d%d%d%d%d",&t,&sx,&sy,&ex,&ey);
scanf("%s",str);
int i,n = ,s = ,e = ,w = ;
if(ex - sx < )w = sx - ex;
else e = ex - sx;
if(ey - sy < )s = sy - ey;
else n = ey - sy;
int N = ,S = ,E = ,W = ;
if((s == && n == ) &&( w == && e == ))
{
printf("0\n");
return ;
}
for(i = ;i< t;i++)
{
if(str[i] == 'N'&& n != && N < n)N++;//一开始就是因为没有N < n的条件就一直错。原因是N的次数已经达到条件时若其他条件还未完成N就还会增加,这样肯定就没有结果了
else if(str[i] == 'S' && s!= && S < s)S++;
else if(str[i] == 'E' && e != && E < e)E++;
else if(str[i] == 'W'&& w != && W < w)W++;
if((S == s && W == w)&&( E == e&& N == n)){printf("%d\n",i+);return ;}
}
printf("-1\n");
return ;
}
D - Fish Weight

Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u

Description

It is known that there are k fish species in the polar ocean, numbered from 1 to k. They are sorted by non-decreasing order of their weight, which is a positive number. Let the weight of the i-th type of fish be wi, then 0 < w1 ≤ w2 ≤ ... ≤ wk holds.

Polar bears Alice and Bob each have caught some fish, and they are guessing who has the larger sum of weight of the fish he/she's caught. Given the type of the fish they've caught, determine whether it is possible that the fish caught by Alice has a strictly larger total weight than Bob's. In other words, does there exist a sequence of weights wi (not necessary integers), such that the fish caught by Alice has a strictly larger total weight?

Input

The first line contains three integers n, m, k (1 ≤ n, m ≤ 105, 1 ≤ k ≤ 109) — the number of fish caught by Alice and Bob respectively, and the number of fish species.

The second line contains n integers each from 1 to k, the list of fish type caught by Alice. The third line contains m integers each from 1 to k, the list of fish type caught by Bob.

Note that one may have caught more than one fish for a same species.

Output

Output "YES" (without quotes) if it is possible, and "NO" (without quotes) otherwise.

Sample Input

Input
3 3 3
2 2 2
1 1 3
Output
YES
Input
4 7 9
5 2 7 3
3 5 2 7 3 8 7
Output
NO

Hint

In the first sample, if w1 = 1, w2 = 2, w3 = 2.5, then Alice has a total of 2 + 2 + 2 = 6 weight units, while Bob only has 1 + 1 + 2.5 = 4.5.

In the second sample, the fish that Alice caught is a subset of Bob's. Therefore, the total weight of Bob’s fish is always not less than the total weight of Alice’s fish.

题意是有很多不同种类的鱼,种类用实数代表,题目给出的是鱼的种类数,(质量可以任意定,符合规则就好)相同种类的鱼质量相同,不同种类的鱼随着种类数的递增,质量也递增(相同也行)给出A,B两人所捕的鱼的情况,判断是否可能始A的鱼的总重量  绝对  大于B的鱼的总重量。

我的思路是这样的,若A的鱼的个数大于B的话一定可能(YES),因为可以始所有鱼的重量相同。若A鱼的个数不必B多的话,使A的总重量大于B就有很多种情况了,讨论起来太不方便。但反过来想,使B的总重量小于A的情况只有一种,那就是A中所有鱼的种类都小于或等于B的种类(换句话说,就是对于A中的所有种类,总能在B中找到比A种类大的)。

#include <algorithm>
#include <iostream>
using namespace std;
int a[],b[];
int main()
{
int n,m,k;
int j,i;
int flag = ;
cin>>n>>m>>k;
for( i=;i<n;i++)
cin >> a[i];
for( i=;i<m;i++)
cin >> b[i];
sort(a,a+n);
sort(b,b+m);
if(n > m)cout << "YES\n";
else
{
for(i = ,j = ;i<n && j < m;)
{
if(a[i] <= b[j])
{
i++;
j++;
}
else j++;
}
if(i==n ) cout<<"NO\n";
else cout << "YES\n";
}
return ;
}

OUC_Summer Training_ DIV2_#14 724的更多相关文章

  1. OUC_Summer Training_ DIV2_#16 725

    今天做了这两道题真的好高兴啊!!我一直知道自己很渣,又贪玩不像别人那样用功,又没有别人有天赋.所以感觉在ACM也没有学到什么东西,没有多少进步.但是今天的B题告诉我,进步虽然不明显,但是只要坚持努力的 ...

  2. OUC_Summer Training_ DIV2_#13 723afternoon

    A - Shaass and Oskols Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I ...

  3. OUC_Summer Training_ DIV2_#12(DP1) 723

    这一次是做练习,主要了解了两个算法,最大子矩阵和,最长上升子序列. 先看题好啦. A - To The Max Time Limit:1000MS     Memory Limit:32768KB   ...

  4. OUC_Summer Training_ DIV2_#2之解题策略 715

    这是第一天的CF,是的,我拖到了现在.恩忽视掉这个细节,其实这一篇只有一道题,因为这次一共做了3道题,只对了一道就是这一道,还有一道理解了的就是第一篇博客丑数那道,还有一道因为英语实在太拙计理解错了题 ...

  5. OUC_Summer Training_ DIV2_#7 718

    是18号做的题啦,现在才把报告补上是以前不重视报告的原因吧,不过现在真的很喜欢写报告,也希望能写一些有意义的东西出来. A - Dragons Time Limit:2000MS     Memory ...

  6. OUC_Summer Training_ DIV2_#11 722

    企鹅很忙系列~(可惜只会做3道题T_T) A - A Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d &am ...

  7. OUC_Summer Training_ DIV2_#9 719

    其实自己只会做很简单的题,有时都不想写解题报告,觉得不值得一写,但是又想到今后也许就不会做ACM了,能留下来的东西只有解题报告了,所以要好好写,很渣的题也要写,是今后的纪念. B - B Time L ...

  8. OUC_Summer Training_ DIV2_#5

    这是做的最好的一次了一共做了4道题  嘻嘻~ A - Game Outcome Time Limit:2000MS     Memory Limit:262144KB     64bit IO For ...

  9. OUC_Summer Training_ DIV2_#4之数据结构

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=26100#problem/A A - A Time Limit:1000MS     Me ...

随机推荐

  1. 事件处理程序EventUtil

    /**********事件处理程序***********EventUtil.js*浏览器兼容,<高三>13章 P354*2014-12-8************************* ...

  2. IOS 改变UISearchBar的背景色

    之前网上提供的方法试了很多种  都不能很好的去掉背景色  ,修改背景色方法如下: searchbar.barStyle = UIBarStyleBlackTranslucent; searchbar. ...

  3. Python中,标识符用法

    Python中,标识符 在Python中,所有标识符都可以包括英文.数字和下划线(),但不能包括数字.python中的标识符区分大小写.这是知识的背景.但通常,Python成为以下划线开头的标识符的习 ...

  4. 修改jumpserver源码并且实现一个自定义功能模块

    在前面已经说了,如何打开jumpserver的管理控制台并且自定义自己的数据模型.接下来实现一个自定义的功能模块. 先看效果! 一 定义好自己的模型(model) 1.1 这一块儿在前一篇博文已经讲过 ...

  5. 自己整理的的数据操作DbHelper

    using System.Data; using System.Data.SqlClient; using System.Configuration; namespace WindowsFormsAp ...

  6. Django Setting文件配置和简单的创建数据库字段

    Django Settings文件配置 静态文件配置 STATIC_URL = '/static/' # 静态文件配置 STATICFILES_DIRS = [ os.path.join(BASE_D ...

  7. Android使用WebView打包网页成app

    原生app的开发成本和网页相比相对较高,所以越来越多的app使用网页来作为界面,甚至完全将一个网站封装成app,可以提高开发速度,还能基本实现跨平台. 下面以Android为例,在ubuntu-14. ...

  8. Android基础相关面试问题-activity面试问题(生命周期,任务栈,启动模式,跳转协议,启动流程)

    关于Android的一些面试题在15年就已经开了这个专栏了,但是一直木有坚持收集,而每次面对想要跳槽时大脑一片空白,也有些恐惧,因为毕境面试都是纯技术的沟通,要想让公司对你的技术能有所认可会全方位的进 ...

  9. percona-toolkit主从同步整理(MySQL)

    前言:MYSQL主从同步架构是目前使用最多的数据库架构之一,尤其是负载比较大的网站,因此对于主从同步的管理也就显得非常重要.而数据作为软件的核心部分,对于其有效的管理显得更为重要.随着时间的推移,软件 ...

  10. 学习elasticsearch(一)linux环境搭建(1)

    首先安装了Oracle Virtual Box 然后安装了最小版的CentOS.由于vbox自带的操作面板不太好用,于是用了xshell,XShell连接最小版的centOS时遇到的问题记录下. 1. ...