题目数据输入中间读入字符

http://acm.hnust.edu.cn/JudgeOnline/problem.php?cid=1310&pid=1

科大oj上这道题在输入中间读入字符,开始用字符都怎么都不对,看了老师的程序发现用的是字符串。。。

顺便附下代码:

  

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<cstring>
#define inf 1e-4
using namespace std;
const int maxn = 1005;
int f[maxn];
int x[maxn], y[maxn], op[maxn];
int n, d;

int find(int x)
{
    return f[x] == x ? x : f[x] = find(f[x]);
}

void Union(int x, int y)
{
    int rx = find(x);
    int ry = find(y);
    if (rx != ry)
        f[rx] = ry;
}

int main()
{
    while (scanf("%d%d", &n, &d) == 2)
    {
        memset(op, 0, sizeof(op));
        for (int i = 1; i <= n; i++) {
            f[i] = i;
            scanf("%d%d", &x[i], &y[i]);
        }
        char c[5];
        int p, q;
        while (scanf("%s",&c)==1)//字符串!!!
        {
            if (strcmp(c,"O")==0) {//字符串!!!
                scanf("%d", &p);
                op[p] = 1;
                for (int i = 1; i <= n; i++) {
                    if (op[i]) {
                        double dd = sqrt((double)(x[i] - x[p])*(double)(x[i] - x[p]) + (double)(y[i] - y[p])*(double)(y[i] - y[p]));
                        if (dd<=d)//直接这样比较,之前用精度比较好像总是WA
                            Union(i, p);
                    }
                }
            }
            else
            {
                scanf("%d%d", &p, &q);
                if (find(p) == find(q))
                    printf("SUCCESS\n");
                else
                    printf("FAIL\n");
            }
        }
    }
    return 0;
}
时间: 2024-08-05 10:54:40

题目数据输入中间读入字符的相关文章

输入一串字符,字符个数不超过100,且以“.”结束。 判断它们是否构成回文。

输入一串字符,字符个数不超过100,且以“.”结束. 判断它们是否构成回文. [分析]所谓回文指从左到右和从右到左读一串字符的值是一样的,如12321,ABCBA,AA等.先读入要判断的一串字符(放入数组letter中),并记住这串字符的长度,然后首尾字符比较,并不断向中间靠拢,就可以判断出是否为回文. 程序如下: #include<iostream>using namespace std;int main(){ char ch,letter[101]; cin>>ch; int

编程题:输入一串字符,程序会自动将大写字母转换为小写

编程题:输入一串字符,程序会自动将大写字母转换为小写 #include <stdio.h> #include <conio.h> main() { int i=0; char a[50],ch; printf("输入一串字符,程序会自动将大写字母转换为小写\n"); printf("按任意键继续,按Esc键退出\n"); while(ch=getch()!=27) { fflush(stdin); printf("请输入字符串:\n

JavaScript表单验证,输入中文时字符长度为2

获取输入框中的字符长度进行表单验证,当输入英文时字符长度就是1,当输入中文时字符长度为2. 字符数为4~16位, 上图: 一个中文抵两英文. 上代码 1 btn.addEventListener('click',ov,false); 2 3 function ov(){ 4 var inputValue = text.value.trim(); 5 //去掉最前最后的空格 6 if (countLength(inputValue) < 4 || countLength(inputValue) >

输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。

ASCII码排序 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符. 输入 第一行输入一个数N,表示有N组测试数据.后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格. 输出 对于每组输入数据,输出一行,字符中间用一个空格分开. 样例输入 2 qwe asd 样例输出 e q w a d s #include <iostream> using namespace

谭浩强 C程序设计 8.11写一函数用起泡法对输入的个字符按由小到大的顺序排列。

#include <stdio.h> int main(){ void maoPaoSort(char str[]); char arr[10]; printf("请输入10个字符:\n"); gets(arr);//gets回车不会在缓冲区中存着,scanf函数中,回车会存在缓冲区中 maoPaoSort(arr); for(int j=0; j<10; j++){ printf("%3c",arr[j]); } printf("\n&

标C编程笔记day07 常用标准库介绍、字符串输入处理、字符指针的使用

常用标准库: assert.h:断言,包含assert宏.可以进行自我检查 ctype.h:字符处理,字符的分类,大小转换 errno.h:错误信息处理 float.h:浮点数特性 limits.h:整数的大小,提供了描述整数类型的宏 lcale.h:本地化 math.h:数学函数 setjmp.h:跳转 signal.h:信号处理 stdarg.h:可变长参数处理 stddef.h:经常使用的类型的定义 stdio.h:输入输出 string.h:字符串处理 stdlib.h:其他函数,字符串

输入一串字符,找到相同且最长的字符串

输入一行字符串,找出其中出现长度最长的字符串,输出它及其首字符的位置,例如yyabcdajcabceg,输出abc和3 步骤:1 两个循环获取字符串子串,外层循环确定长度,内存循环确定子串的首字符位置,长度由大到小变化 2 分别利用正向查找和反向查找的方式,查找子串的位置,当两种方式查找的位置不同时,则表示为最长的重复,此时按要求输出 3 否则遍历完,没有重复子串,则return 0 int main(){ string str = "yyabcdabjcabceg"; for (in

Java 使用Charset类解决读入字符乱码问题和控制输出字符编码

Java中用UTF-16编码字符(见博文Java 正确遍历字符串),Charset类建立了UTF-16编码的字节序列和其它字符编码方式的字节序列之间的映射.当从外面读入表示字符的字节流时,我们可以通过Charset类指定原来字符的编码方式,好让程序可以正确的把字符原来的字节编码转化为Java自己的字节编码:同样,当把字符写出时,我们可以通过Charset指定字符的编码方式.下面举两个简单的例子来说明Charset的使用. public void test1() { Charset charset

UITextField中文输入法输入时对字符长度的限制

如题的问题,又是个让我抓狂了大半天的问题,还是做个记录,有与类似问题的同学可参考,但不一定对.具体问题还需具体分析.我遇到的需求是这样的:有一个输入框,输入框内输入文字,文字字数限制在20字. 我采用了UITextField作为我的输入框控件,并且在委托方法: - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)s