HDU 2095 find your present (2)
生活随笔
收集整理的這篇文章主要介紹了
HDU 2095 find your present (2)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
??? 原以為這是一純水題,就果斷開了1000000了數組給它(1300多K),沒想Memory果斷超了,后來又用鏈表做(寫了2000多K),再次無情的被Memory刷了,無耐百度一下,竟然發現別人的代碼才300多B(表示我的有2000多B),發現自己的方法OUT了。
這段代碼中最重要的是異或思想;相同的數異或后為0,0再和那個唯一的數異或(異或滿足交換律,所以“禮物”,在前面出現和在最后出現沒有區別,結果不變),結果即為那個不相同的數.杭電的測試數據太弱了,如果n為7, 3個1,3個2,一個3,結果就錯了。(?異或在本空間有介紹,如有不明,可以see一see
代碼 1 #include <stdio.h>2 ?int main ( )
3 {
4 int n,odd,x;
5 while ( scanf ( "%d" , &n ) == 1 && n )
6 {
7 odd = 0;//初始化
8 while ( n-- )
9 {
10 scanf ( "%d" , &x );
11 odd ^= x;//對每個數異或
12 }
13 printf ( "%d\n" , odd );
14 }
15 return 0;
16 }
17
18
19
?
轉載于:https://www.cnblogs.com/Lvsi/archive/2011/01/28/1947238.html
總結
以上是生活随笔為你收集整理的HDU 2095 find your present (2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: asp.net MVC 权限设计(续)
- 下一篇: 信用卡可以过户给别人吗?连借用都违法