zoukankan      html  css  js  c++  java
  • 题目:数石子 rqnoj 36

    题目描述

    佳佳是个贪玩的孩子。一天,他正在跟凡凡玩“数石子”的游戏。佳佳在地上摆了N堆石子,其中第I堆石子有Ai个石头。佳佳每次都会问凡凡:“凡凡,请问从第I堆到第J堆,总共有多少个石子?”聪明的凡凡每次都能快速而准确地回答对。凡凡老是被问问题,心里有些不服,就对佳佳说:“佳佳,你还记得你问了什么问题,我回答了什么答案吗?”佳佳说当然记得。于是凡凡说:“好,我把石子拿走,再问你一些相似的问题,你能答得出来吗?”佳佳张圆了嘴巴,望着凡凡,一脸疑问和惊讶的表情。你现在知道了游戏规则和过程,但没看见原来的石子。请你写一个程序来帮助佳佳。
    数据范围
    10%的数据满足1<=n<=10,0<=m,k<=10
    30%的数据满足1<=n<=500,0<=m,k<=500
    100%的数据满足1<=n<=5000,0<=m,k<=10000

    输入格式

    输入文件的第一行有3个数N(1<=n<=5000),M,K(0<=m,k<=10000),表示N堆石子,佳佳问了M个问题,凡凡要问K个问题。接下来M行每行3个整数L,R(1<=l<=r<=n),X(-108<=X<=108),表示佳佳问从L堆到R堆的石子共有多少个,而凡凡回答X个。接下来K行每行2个整数A,B(1<=a<=b<=n),每行表示凡凡问从A到B这些堆里的石子有多少个。

    输出格式

    输出文件需要对于凡凡提出每一个提问,你若可以回答,则输出答案,若无法回答,输出UNKNOWN。

    并查集。

    将 N 堆石子想象成 N 条连续的线段。

    i-1~i 表示一条线段,所以 i-1~i 表示一堆石子,所以 l-1~r 表示 l 到 r 堆石子。

     1 #include<iostream>
     2 using namespace std;
     3 
     4 int n,m,k,f[5005],d[5005]={0}; 
     5 
     6 int Find(int node){
     7     if(node==f[node]) return node;
     8     int fn=f[node]; 
     9     f[node]=Find(f[node]);
    10     d[node]+=d[fn]; 
    11     return f[node]; 
    12     } 
    13     
    14 int main()
    15 {
    16     int i,x,y,l,fx,fy; 
    17     cin>>n>>m>>k;
    18     
    19     for(i=0;i<=n;++i)
    20     f[i]=i;
    21     
    22     for(i=1;i<=m;++i)
    23     {
    24       cin>>x>>y>>l;
    25       fx=Find(x-1),fy=Find(y); 
    26       if(fx==fy) continue; 
    27       f[fx]=fy;d[fx]=l+d[y]-d[x-1]; 
    28             } 
    29     for(i=1;i<=k;++i)
    30     {
    31       cin>>x>>y; 
    32       fx=Find(x-1),fy=Find(y);
    33       if(fx!=fy) cout<<"UNKNOWN"<<endl;
    34       else cout<<d[x-1]-d[y]<<endl; 
    35             } 
    36     return 0;
    37     } 
  • 相关阅读:
    PAT B1045 快速排序 (25 分)
    PAT B1042 字符统计 (20 分)
    PAT B1040 有几个PAT (25 分)
    PAT B1035 插入与归并 (25 分)
    PAT B1034 有理数四则运算 (20 分)
    PAT B1033 旧键盘打字 (20 分)
    HDU 1231 最大连续子序列
    HDU 1166 敌兵布阵
    HDU 1715 大菲波数
    HDU 1016 Prime Ring Problem
  • 原文地址:https://www.cnblogs.com/noip/p/2625692.html
Copyright © 2011-2022 走看看