【USACO】name that number

{
ID: anniel11
PROG: namenum
LANG: PASCAL
}
Program namenum;
var
  i,n,l:integer;
  s,s2:string;
  dicl:array[1..12] of integer;
  dic:array[1..12,1..2000] of integer;
function transs(c:char):string;
var
  trans:integer;
begin
  case c of
  ‘A‘,‘B‘,‘C‘:trans:=2;
  ‘J‘,‘K‘,‘L‘:trans:=5;
  ‘T‘,‘U‘,‘V‘:trans:=8;
  ‘D‘,‘E‘,‘F‘:trans:=3;
  ‘M‘,‘N‘,‘O‘:trans:=6;
  ‘W‘,‘X‘,‘Y‘:trans:=9;
  ‘G‘,‘H‘,‘I‘:trans:=4;
  ‘P‘,‘R‘,‘S‘:trans:=7;
  end;

  str(trans,transs);
end;
begin
  assign(input,‘dict.txt‘);
  while not eof do
  begin
    readln(s);
    inc(dicl[length(s)]);
    t1:=0;
    s2:=‘‘;
    for i:=1 to length(s) do s2:=s2+transs(s[i]);
    val(s2,dic[length(s),dicl[length(s)]]);
  end;
  close(input);
  assign(input,‘namenum.in‘);
  assign(output,‘namebum.out‘);
  reset(input);rewrite(output);

  readln(n);
  str(n,s);
  l:=length(s);

  close(input);close(output);

end.
时间: 2024-10-11 13:22:36

【USACO】name that number的相关文章

【USACO】Transformations

A square pattern of size N x N (1 <= N <= 10) black and white square tiles is transformed into another square pattern. Write a program that will recognize the minimum transformation that has been applied to the original pattern given the following l

【USACO】beads

题目: You have a necklace of N red, white, or blue beads (3<=N<=350) some of which are red, others blue, and others white, arranged at random. Here are two examples for n=29: 1 2 1 2 r b b r b r r b r b b b r r b r r r w r b r w w b b r r b b b b b b

【USACO】checker

一看题目 经典的8皇后问题 不过是皇后数量可变而已 不用想 回溯法. 需要个生成每次可选择序列的函数, 在存储可选择的序列时按照先大后小的顺序排的.这样每次找最小和去掉最小都很方便,只要有个记录数量的变量 每次减1就好了.  写完后,居然悲剧了. 在皇后数量达到13时, 在自己电脑上跑 内存溢出了 在评分系统上超时了.需要优化. #include <stdio.h> //k计算第几层从0开始 x已经摆好的位置 S存放产生的位置 l存放产生的数量 N一共有多少位置可以选择 int calcula

【USACO】milk3

倒牛奶的问题, 开始看感觉跟倒水的问题很像, 想直接找规律, 写个类似于循环取余的代码. 但后来发现不行,因为这道题有三个桶,水量也是有限制的.只好用模拟的方法把所有的情况都试一遍. 建一个state[21][21][21]的数组存储出现过的状态.对于遍历状态,对每一种状态, 分别采用六种处理方法,若有新状态出现这将新状态置为1,同时标记flag++:若所有循环之后,flag == 0, 就说明遍历完成了. 开始脑子抽筋了, 写了个多出口的程序, 显然是错的.如下: int mothersmil

【USACO】calfflac

关键:以回文中心位置为变量进行遍历 //必须把纯字母先提出来 否则肯能会出现错误 比如: lvlv= 在检查长度4时 lvlv认为不是回文 vlv=认为是回文 但实际上 lvl 出现的要更早一些 //判断回文的方法 可以输入字符串后 左右比较 或者分别正序 逆序 存储 判断是否相等 //我的思路不对 严重超时了 我是以长度为变量进行循环 对于每个长度 每一个不同起始点的序列都需要对 整个序列重新判断一次是否为回文 O(n^3) //答案中 以中心字母为变量进行循环 只需要对每一个字母做为中心变量

【USACO】第一章总结

做了大半个月,终于把第一章做完了 有的题遇到了不小的坎儿,看着网上一群高中生都做得那么好,心理还是有些小郁闷的.不禁感慨我过去的四年真是虚度啊.总结一下第一章学习到的知识吧. ①闰年判断 int isleapyear(int N) { if((N%100 != 0 && N%4 ==0) || (N%400 == 0)) return 1; else return 0; } 计算闰年日期时可以用两个数组存放每个月的时间 int Year[12] = {31, 28, 31, 30, 31,

【USACO】奶牛跑步2

P1443 - [USACO]奶牛跑步2 Description FJ的N(1 <= N <= 100,000)头奶牛们又兴高采烈地出来运动了!她们在一条无限长的小路上跑步,每头牛起跑的位置都不同,速度也不尽相同. 道路中划出了若干条跑道,以便她们能快速"超车",同一跑道中的任意两头牛都不会出现在相同的位置.不过FJ不愿让任何一头牛更换跑道或者调整速度,他想 知道如果让牛们跑足T(1 <= T <= 1,000,000,000)分钟的话,至少需要多少条跑道才能满

【HDU1394】Minimum Inversion Number(线段树)

大意:n次操作原串查询逆序数,求出所有串中最小的逆序数. 求逆序数属于线段树的统计问题,建立空树,每次进行插点时进行一次query操作即可.n次操作可以套用结论:如果是0到n的排列,那么如果把第一个数放到最后,对于这个数列,逆序数是减少a[i],而增加n-1-a[i]. 1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 5 const int maxn = 5e3 + 10; 6 int sumv[

【转】oracle数据库NUMBER数据类型

原文:http://www.jb51.net/article/37633.htm NUMBER ( precision, scale)a)  precision表示数字中的有效位;如果没有指定precision的话,Oracle将使用38作为精度.b)  如果scale大于零,表示数字精确到小数点右边的位数:scale默认设置为0:如果scale小于零,Oracle将把该数字取舍到小数点左边的指定位数.c)  Precision的取值范围为[1---38]:Scale的取值范围为[-84---1