2018.03.04 晚上Atcoder比赛
C - March
Time limit : 2sec / Memory limit : 256MB
Score : 300 points
Problem Statement
There are N people. The name of the i-th person is Si.
We would like to choose three people so that the following conditions are met:
- The name of every chosen person begins with
M,A,R,CorH. - There are no multiple people whose names begin with the same letter.
How many such ways are there to choose three people, disregarding order?
Note that the answer may not fit into a 32-bit integer type.
Constraints
- 1≤N≤105
- Si consists of uppercase English letters.
- 1≤|Si|≤10
- Si≠Sj(i≠j)
Input
Input is given from Standard Input in the following format:
N S1 : SN
Output
If there are x ways to choose three people so that the given conditions are met, print x.
Sample Input 1
5 MASHIKE RUMOI OBIRA HABORO HOROKANAI
Sample Output 1
2
We can choose three people with the following names:
MASHIKE,RUMOI,HABOROMASHIKE,RUMOI,HOROKANAI
Thus, we have two ways.
Sample Input 2
4 ZZ ZZZ Z ZZZZZZZZZZ
Sample Output 2
0
Note that there may be no ways to choose three people so that the given conditions are met.
Sample Input 3
5 CHOKUDAI RNG MAKOTO AOKI RINGO
Sample Output 3
7
std:
#include <cstdio >
#include <iostream >
using namespace std;
typedef long long ll;
string s;
int N;
ll m,a,r,c,h;
ll D[];
]={,,,,,,,,,};
]={,,,,,,,,,};
]={,,,,,,,,,};
int main()
{
scanf("%d",&N);
;i<N;i++)
{
cin>>s;
]==’M’)m++;
]==’A’)a++;
]==’R’)r++;
]==’C’)c++;
]==’H’)h++;
}
D[]=m,D[]=a,D[]=r,D[]=c,D[]=h;
ll res=;
;d<;d++)
res+=D[P[d]]*D[Q[d]]*D[R[d]];
printf("%lld\n",res);
}
暴力枚举每一种情况:共10种
#include<cstdio>
#include<cstring>
#include<string>
#include<iostream>
using namespace std;
],ans;
];
int main()
{
scanf("%lld",&n);
;i<=n;i++) cin>>s[i];
;i<=n;i++){
]==];
]==];
]==];
]==];
]==];
}
ans+=a[]*a[]*a[];
ans+=a[]*a[]*a[];
ans+=a[]*a[]*a[];
ans+=a[]*a[]*a[];
ans+=a[]*a[]*a[];
ans+=a[]*a[]*a[];
ans+=a[]*a[]*a[];
ans+=a[]*a[]*a[];
ans+=a[]*a[]*a[];
ans+=a[]*a[]*a[];
printf("%lld\n",ans);
;
}
D - Practical Skill Test
Time limit : 2sec / Memory limit : 256MB
Score : 400 points
Problem Statement
We have a grid with H rows and W columns. The square at the i-th row and the j-th column will be called Square (i,j).
The integers from 1 through H×W are written throughout the grid, and the integer written in Square (i,j) is Ai,j.
You, a magical girl, can teleport a piece placed on Square (i,j) to Square (x,y) by consuming |x−i|+|y−j| magic points.
You now have to take Q practical tests of your ability as a magical girl.
The i-th test will be conducted as follows:
Initially, a piece is placed on the square where the integer Li is written.
Let x be the integer written in the square occupied by the piece. Repeatedly move the piece to the square where the integer x+D is written, as long as x is not Ri. The test ends when x=Ri.
Here, it is guaranteed that Ri−Li is a multiple of D.
For each test, find the sum of magic points consumed during that test.
Constraints
- 1≤H,W≤300
- 1≤D≤H×W
- 1≤Ai,j≤H×W
- Ai,j≠Ax,y((i,j)≠(x,y))
- 1≤Q≤105
- 1≤Li≤Ri≤H×W
- (Ri−Li) is a multiple of D.
Input
Input is given from Standard Input in the following format:
H W D A1,1 A1,2 … A1,W : AH,1 AH,2 … AH,W Q L1 R1 : LQ RQ
Output
For each test, print the sum of magic points consumed during that test.
Output should be in the order the tests are conducted.
Sample Input 1
3 3 2 1 4 3 2 5 7 8 9 6 1 4 8
Sample Output 1
5
4 is written in Square (1,2).
6 is written in Square (3,3).
8 is written in Square (3,1).
Thus, the sum of magic points consumed during the first test is (|3−1|+|3−2|)+(|3−3|+|1−3|)=5.
Sample Input 2
4 2 3 3 7 1 4 5 2 6 8 2 2 2 2 2
Sample Output 2
0 0
Note that there may be a test where the piece is not moved at all, and there may be multiple identical tests.
Sample Input 3
5 5 4 13 25 7 15 17 16 22 20 2 9 14 11 12 1 19 10 6 23 8 18 3 21 5 24 4 3 13 13 2 10 13 13
Sample Output 3
0 5 0
std:DP预处理
#include <cstdio >
#define abs(x) ((x>0)?x:(-(x)))
int H,W,D,A;
int Q,L,R;
],py[];
];
int main()
{
scanf("%d%d%d",&H,&W,&D);
;i<H;i++)
{
;j<W;j++)
{
scanf("%d",&A);
px[A]=i,py[A]=j;
}
}
;i<=H*W;i++)
d[i]=d[i-D]+abs(px[i]-px[i-D])+abs(py[i]-py[i-D]);
scanf("%d",&Q);
while(Q--)
{
scanf("%d%d",&L,&R);
printf("%d\n",d[R]-d[L]);
}
}
说明一下:A B C D 共四题
由于A B 太水,且没有可取之处,所以不在博客显示
网址:https://abc089.contest.atcoder.jp/
2018.03.04 晚上Atcoder比赛的更多相关文章
- 20172319 2018.03.27-04.05 《Java程序设计》第4周学习总结
20172319 2018.03.27-04.05 <Java程序设计>第4周学习总结 教材学习内容总结 第四章 编写类 类与对象的回顾:对象是有状态的,状态由对象的属性值确定.属性由类中 ...
- 新手C#string类常用函数的学习2018.08.04
ToLower()用于将字符串变为小写,注意字符串的不可变特性,需要重新赋值给另一个字符串变量. s = s.ToLower();//字符串具有不可变性,转换后需要重新赋值,不可仅有s.ToLower ...
- 新手C#int.Parse、int.TryParse的学习2018.08.04
int.Parse()用于将字符串转换为32为int类型,但是在遇到非数字或者类似1.545这种小数的时候会报错,后来采用了int.TryParse,这个在转换后会判断是否可以正常转换,若不能,会返回 ...
- 新手C#参数类型ref、out、params的学习2018.08.04
ref用于传递参数时,将实参传递到函数中,是引用参数,在使用前必须被赋值.string类型也同样适用. static void Main(string[] args) { string a1,a2; ...
- 新手C#重载、重写的学习2018.08.04
重载:在同一类(class)中,使用相同的方法名称,不同的参数和(不一定)不同的返回值类型构造成的方法. 举例: class OverLoadTest { public void Hello() { ...
- 【VSCode】Windows下VSCode编译调试c/c++【更新 2018.03.27】
--------– 2018.03.27 更新--------- 便携版已更新,点此获取便携版 已知BUG:中文目录无法正常调试 用于cpptools 0.15.0插件的配置文件更新 新的launch ...
- 2018/03/27 每日一个Linux命令 之 cron
Cron 用于配置定时任务. -- 环境为 Ubuntu16-04 -- 先说说怎么配置一个简单的定时任务.直观的可以看到效果. 之前在网上查找资料,对Shell编程不熟悉的实在是很头疼,走了不少弯路 ...
- 2018/03/31 每日一个Linux命令 之 date
date 命令主要用于查看和修改时间和时区 -- 这里主要学习基本的查看和设置时间和时区的方法. 直接显示日期 date '+%D' 效果 vagrant@hong:~$ date '+%D' 03/ ...
- EZ 2018 03 23 NOIP2018 模拟赛(五)
链接:http://211.140.156.254:2333/contest/65 这次Rating重回Rank18,我是20的守门员(滑稽) 这次题目和数据普遍偏水,我T2打错了一个变量名竟然过了所 ...
随机推荐
- vmware 10虚拟机安装ubuntu server 14.04
-開始安装ubuntu server- 1.首先是安装系统时的语言,推荐选择English 然后安装系统 这里选择语言非常重要,我開始选择了中文,安装完毕后会乱码,所以推荐选择英文 由于在中国.所以选 ...
- leetcode笔记:Wiggle Sort
一. 题目描写叙述 Given an unsorted array nums, reorder it in-place such that nums[0] <= nums[1] >= nu ...
- Android:仿手机QQ好友动态的ListView
1.介绍: 本博客使用XListView模仿Android版QQ好友动态的ListView效果.效果截图例如以下: 效果图1 watermark/2/text/aHR0cDovL2Jsb2cuY3Nk ...
- Mysql常用索引及优化
索引是帮助我们快速获取数据的数据结构.索引是在存储引擎中实现的,因此不同存储引擎的索引也不同.这里只介绍InnoDB存储索引所支持的BTree索引: 一.索引类型 为了方便举例子,先创建表person ...
- BestCoder Round #61 (div.2) B.Game 细节题
Game 问题描述 XY在玩一个游戏:有N根柱子排成一排,编号为1到N,每个柱子上面有一块宝石,现在XY站在第S根柱子上,出口在第T跟柱子上,XY需要拿到所有宝石后从出口离开.每次XY可以走到相邻 ...
- Factstone Benchmark(数学)
http://poj.org/problem?id=2661 题意:Amtel在1960年发行了4位计算机,并实行每十年位数翻一番的策略,将最大整数n作为改变的等级,其中n!表示计算机的无符号整数(n ...
- input的type等于mage标签引发的页面提交!
主要原因是使用了<input type="image",而且放在了<form中. <input type="image"标签类似<inp ...
- hash练习们
610. 数对的个数 ★★ 输入文件:dec.in 输出文件:dec.out 简单对比时间限制:1 s 内存限制:128 MB Description出题是一件痛苦的事情!题目看多了也 ...
- akka设计模式系列-actor锚定
actor锚定模式是指使用actorSelection对acor进行锚定的设计模式,也可以说是一个对actor的引用技巧.在某些情况下,我们可能需要能够根据Actor的path锚定对应的实例.简单来说 ...
- 绑定树tree 的后台方法
#region 获取部门列表树集合 /// <summary> /// 获取部门列表树集合 /// </summary> ...