離散題目11
time limit: 1000 ms memory limit: 65536 kib
submit statistic discuss
problem description
給定乙個數學函式寫乙個程式來確定該函式是否是雙射的
input
多組輸入。 第一行輸入三個整數n,m,k,分別表示集合a中的元素個數,集合b中的元素個數,集合a到b的對映個數。 第二行輸入n個數,代表集合a中的元素。 第三行輸入m個數,代表集合b中的元素。接下來k行,每行兩個數,代表集合a中的元素x和x在集合b中的像y。
output
每組資料輸出一行,若f為a到b的雙射,輸出」yes」, 否則輸出」no」。
sample input
5 5 5
1 2 3 7 8
2 5 6 9 0
1 9
3 2
2 6
7 0
8 5
sample output
yes
hint
保證集合a中元素無重複,集合b中元素無重複,對映關係無重複(如:)
1<=n,m,k<=1000
1<=a[i], b[i]<=10000
x∈a, y∈b
source
stone
#include
#include
#include
int main()
for(i=0;iscanf("%d",&d[i]);
}for(i=0;iscanf("%d%d",&x,&y);
a[x]++;
c[y]++;//累加出現的次數
}for(i=0;iif(a[b[i]]>1)
}//單射的話是滿足乙個對應乙個的,那如果乙個數出現了多次肯定是不行的了,不一定所有的元素都出現
for(i=0;iif(c[d[i]]<1)
}//滿射必須滿足b中的元素都出現
if(f==1)
else
printf("yes\n");
}return
0;}
思路:判斷雙射的話,就得是滿射和單射,單射的話是滿足乙個對應乙個的,那如果乙個數出現了多次肯定是不行的了,不一定所有的元素都出現。滿射必須滿足b中的元素都出現。所以用標記陣列進行累加 離散題目11
time limit 1000ms memory limit 65536kb submit statistic problem description 給定乙個數學函式寫乙個程式來確定該函式是否是雙射的 input 多組輸入。第一行輸入三個整數n,m,k,分別表示集合a中的元素個數,集合b中的元素個...
離散題目11
離散題目11 time limit 1000ms memory limit 65536kb submit statistic problem description 給定乙個數學函式寫乙個程式來確定該函式是否是雙射的 input 多組輸入。第一行輸入三個整數n,m,k,分別表示集合a中的元素個數,集...
離散題目11
time limit 1000 ms memory limit 65536 kib submit statistic problem description 給定乙個數學函式寫乙個程式來確定該函式是否是雙射的 input 多組輸入。第一行輸入三個整數n,m,k,分別表示集合a中的元素個數,集合b中的...