USACO 1.2 Name That Number (AD-hoc)

一个字母只对应一个数字,从字典中读入一个单词,把它转化成唯一对应的数字,看它是否与给出的数字匹配,时间规模是5000*12=6e4,空间规模是常数,而且编程复杂度较低.

一开始,我把对应的数字设为int,后来发现,溢出了,囧。改成string字符数组就好了

/*
  ID:twd30651
  PROG:namenum
  LANG:C++
*/
#include<iostream>
#include<fstream>
#include<string.h>
#include<string>
using namespace std;
//          2: A,B,C     5: J,K,L    8: T,U,V
//          3: D,E,F     6: M,N,O    9: W,X,Y
//          4: G,H,I     7: P,R,S
//       a b c d e f g h i j k l m n o p q r s t u v w x y
int m[]={2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9};
typedef struct node
{
    char name[20];
    string num;
}node;
node names[5000];
int nl;
void generate()
{
    for(int i=0;i<nl;++i)
    {
        names[i].num="";
        for(unsigned j=0;j<strlen(names[i].name);++j)
        {
            if(names[i].name[j]=='Q')continue;
            names[i].num+=m[names[i].name[j]-'A']+'0';
        }
    }
}
int main(int argc,char *argv[])
{
    freopen("namenum.in","r",stdin);
     freopen("namenum.out","w",stdout);
    FILE *f=fopen("dict.txt","r");
    int i=0;
    while(fscanf(f,"%s",names[i].name)==1)
    {
        if(names[i].name[0]=='Z')break;
        i++;
    }
    string NUM;
    cin>>NUM;
    nl=i;
    generate();
    int flag=0;
    for(int i=0;i<nl;++i)
    {
        if(names[i].num==NUM){
            flag=1;
            printf("%s\n",names[i].name);
        }
    }
    if(flag==0)
        printf("NONE\n");
    return 0;
}
时间: 2024-10-13 01:08:30

USACO 1.2 Name That Number (AD-hoc)的相关文章

Ansible 七(ad hoc任务)

Ansible 七(ad hoc任务) ansible任务 ad hoc任务就是执行shell命令.或shell脚本. ansible ad-hoc命令 可以执行一些简单的命令,不需要将这些执行的命令特别保存下来. 适合执行简单的命令. ansible playbook 可以解决比较复杂的任务,可以将命令保存下来. 适合执行配置管理或部署客户机. 并行性和shell命令 重启webservers主机组里的所以机器,每次重启10台 ansible webservers -a "/sbin/rebo

iOS程序发布测试-生成ad hoc证书

转自: http://blog.sina.com.cn/s/blog_68444e230100srdn.html iOS程序发布测试3-生成ad hoc证书 iOS证书分2种,1种是开发证书,用来给你(开发人员)做真机测试的:1种是发布证书,发布证书又分发布到app store的(这里不提及)和发布测试的ad hoc证书. 那ad hoc证书和开发证书区别在哪里?如果你的tester(团队测试人员.客户)都能将测试设备拿到你面前,直接插到你的mac开发机上,你可以直接将程序"灌"进去,

ios开发 ad hoc怎么用

简单的说就是这样 ad hoc 方式是苹果用来给未上线的app做测试用的,首先你要在苹果开发平台上申请一个ad hoc的证书,再在profile中生成一个ad hoc 的profile文件(只需要在生成的时候选中该证书就行),然后下载下来就可以了. ios中怎么生成adhoc描述文件 hypo421 | 浏览 338 次  2016-03-02 10:04 2016-03-02 10:47 最佳答案 ad hoc 方式是苹果用来给未上线的app做测试用的,首先你要在苹果开发平台上申请一个ad h

ios开发 ad hoc

iOS证书分2种,1种是开发证书,用来给你(开发人员)做真机测试的:1种是发布证书,发布证书又分发布到app store的(这里不提及)和发布测试的ad hoc证书. 那ad hoc证书和开发证书区别在哪里?如果你的tester(团队测试人员.客户)都能将测试设备拿到你面前,直接插到你的mac开发机上,你可以直接将程序“灌”进去,那有开发证书就够了,不需要ad hoc证书. 如果tester的iOS设备不能直接让你灌程序,那怎么办?你必须打包(Archive)你的程序,然后发给你的tester,

ios 8+ (xcode 6.0 +)应用程序Ad Hoc 发布前多设备测试流程详解

我们开发的程序在经过simulator以及自己的iOS设备测试后,也基本完成应用程序了,这时候我们就可以把它发布出去了更更多的人去测试,我们可以在iOS平台使用ad hoc实现. 你在苹果购买的开发者会员账号,允许100台设备和你的账号关联.你只需要将开发的程序bundle以及发布梗概(ad hoc distribution profile)文件打包成zip文件给测试人员即可.测试人员将打包文件解压,然后将这两个文件拖到itunes,然后同步到设备中即可开始测试程序了.下文我们来详细讲述如何完成

【LeetCode-面试算法经典-Java实现】【017-Letter Combinations of a Phone Number (电话号码上的单词组合)】

[017-Letter Combinations of a Phone Number (电话号码上的单词组合)] [LeetCode-面试算法经典-Java实现][所有题目目录索引] 原题 Given a digit string, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telephone bu

USACO 6.5 Betsy&#39;s Tour (插头dp)

Betsy's TourDon Piele A square township has been divided up into N2 square plots (1 <= N <= 7). The Farm is located in the upper left plot and the Market is located in the lower left plot. Betsy takes her tour of the township going from Farm to Mark

Palindrome Number (回文数)

回文数是指这样的数字:正读和倒读都是一样的.如:595,2332都是回文数,234不是回文数. 注意:负数不是回文数 Determine whether an integer is a palindrome. Do this without extra space. Some hints: Could negative integers be palindromes? (ie, -1) If you are thinking of converting the integer to string

hdu 5623 KK&#39;s Number(dp)

问题描述 我们可爱的KK有一个有趣的数学游戏:这个游戏需要两个人,有N\left(1\leq N\leq 5*{10}^{4} \right)N(1≤N≤5∗10?4??)个数,每次KK都会先拿数.每次可以拿任意多个数,直到NN个数被拿完.每次获得的得分为取的数中的最小值,KK和对手的策略都是尽可能使得自己的得分减去对手的得分更大.在这样的情况下,最终KK的得分减去对手的得分会是多少? 输入描述 第一行一个数T\left( 1\leq T\leq 10\right)T(1≤T≤10),表示数据组