472
472
4729
4730
4731
4732
4731
4734
4731
4736
4737
472____02
4740
472
472
4743
4744
4745
_______09____5562
47562
4749
Python3
4750
4751
4752
4753
________ 054 ________ 055
479
4757
4758
47580
4760
479
4762
479
4764
479
4768
4767_______068
4769
4769
47580
4772
472
472______368
4776
4768
4769
4779
4780
4709
4772
477
477____057____058
4757
4780
4789
477
479____5560
4757
479
4795
4796
4758
4798
4730
4731
4732____031
4734
4731
4736
47606
47607
4758
47609
47610
________ 3611 ________ 3612
47613
C#
47614
4761
________ 562 ________ 3617
47637
47638
479
477
479
470
479
471
479
47626
472
473
472
47631
472
477
479
478
_______02____362
472
472
4761
479
472____5584
472____5586
472______368
4769____02
471
477____368
4769____02
476
4711
478
479
________ 02 ________ 5560 ________ 5561
_______09____5562
_______09____5563
479
4722
47626
4724
47670
479
472______02
47674
472
472
47677
472
472____3680
_______044____3682
_______09____5562
47562
4749
PHP
47687
47688
4761
470
471
47692
473____3694
4731
47696
47697
478
479
_______09____362
479
4703
4704
479
4706
479
4708
479
4766
479
4768
4769
4714
4704
4714
4717
47696
47581
4714
4721
472______368
4769
4725
4758
4714
4728
4725
4717
47696
47581
4725
4721
477
4703
4737
47694
4798
4714
4741
47694
4798
4725
4745
479
47560
4703
47581
47562
479
4752
479
47694
4758
4756
4757
479
47696
4758
4761______369
47694
4764
479
4766
473_______3694
4731
47696
4771
4772
JavaScript
4773
479
4775
_______09____561
479
470
479
471
479
4783
472____085
4762
472____364
_______02____366
472____368
4793
477____368
4796
4711
478
________ 02 ________ 5560 ________ 5561
_______09____5562
_______09____5563
479____55607
479____55609
_______09____55611
_______09____55613
475614
475615
đầu ra
47
Giải pháp hiệu quả
Giải pháp hiệu quả có thể giải quyết vấn đề này trong thời gian O[n]. Giả định ở đây là các số nguyên được biểu diễn bằng 32 bit.
Giải pháp tối ưu sẽ là thử thao tác bit. Để thực hiện giải pháp, chúng tôi xem xét tất cả các bit là 1 và 0 và lưu trữ số lượng của chúng trong hai biến khác nhau. Tiếp theo bội số đó cùng với sức mạnh của 2 được nâng lên vị trí bit đó. Làm điều này cho tất cả các vị trí bit của các số. tổng của họ sẽ là câu trả lời của chúng tôi.
Tính năng này thực sự hoạt động như thế nào?
Ví dụ: nhìn vào bit ngoài cùng bên phải của tất cả các số trong mảng. Giả sử rằng một số có bit 0 tận cùng bên phải và b số có bit 1. Sau đó, trong số các cặp, a*b trong số chúng sẽ có 1 ở bit ngoài cùng bên phải của XOR. Điều này là do có a*b cách để chọn một số có bit 0 và một số có bit 1. Do đó, các bit này sẽ đóng góp a*b vào tổng số tất cả các XOR
Nói chung, khi nhìn vào bit thứ n [trong đó bit ngoài cùng bên phải là bit thứ 0], hãy đếm xem có bao nhiêu số có 0 [gọi đây là an] và bao nhiêu số có 1 [gọi đây là bn]. Đóng góp cho tổng cuối cùng sẽ là một*bn*pow[2,n]. Bạn cần làm điều này cho từng bit và tính tổng tất cả những đóng góp này lại với nhau
Điều này có thể được thực hiện trong thời gian O[kn], trong đó k là số bit trong các giá trị đã cho
476
CPP
475616
4761
4763
4762
4796
4758
470
471
475624
475624
472
475627
472
475
472
477
478
479____55624
475624
472
475637
479
4768
4769______02
475642
479
478
472____55646
472
472
475649
472
472____55652
472____55624
475624
472
475657
472____368
4769______02
475662
472____08
477____55666
475667
4711____55669
477____55671
4711____55673
477____55675
472____5562
472
472____55680
472____55682
472____55684
472____55686
_______09____5562
479
47560
475691
47562
472
47565
478
479____55624
475624
472
475637
479
472
47569
479
472
47612____5613
47614
47613
47616
_______09____56112
479____56114
479____5560
47631
47562
Java
476119
4761
47635
47636
47637
47638
479
479
470
479
471
479
47626
475624
475627
472
475
472
477
479
478
472____55624
476142____5580
47581
472______368
4769
472
4701
47580
476151
476152
476153
472____08
477____56157
477
472
476160____5580
476162
47580
47581
477
477____55652
477____55624
476170____5580
47581
477
477
4768
4769
472
476178
47580
4710
477
478
4711
475666
476185
476186
476187
47580
47697
476190____55669
476190
4711____55671
476190____55673
4711
476198
476186
47581
477____5562
477
477____55680
477____56307
4709
476309
479
477____56312
477____55686
472____5562
472____5560
475691
_______09____5562
479
479
4752
479
4722
47626
4724
476329
479
478
472____55624
476142____5580
47581
472
472
4729
4730
4731
4732
4731
4734
4731
4736
4737
472____02
4740
472
472____56112
472____56355
_______09____5562
47562
476359
Python3
476360
476361
4752
4753
4754
476365
479
479
476368
4758
47580
479
4768
4767_______068
4769____369
47580
4731
476152
476380
472____56382
472____56384____058
47580
472____56388
4758
47580
476391
472____56393
472____56395____058
47580
472______368
4776
4768
4769
4769
47580
476205
477_______55666
476208____56209
476186
4758
4758
47580
476380
4711 ________ 56384
4758 ________ 56384
4780 _______ 009
4711
477____55671____56224
4711 ________ 56388
4758 ________ 56388
4780 _______ 009
477_______56232
4758
472____56208
476236
476186
47697
472
476391
472____56242
472______56395
4758
476388
476247
476384
476247
4769
4709
476252
476253
472____56255
472____56368 ________ 058 ________ 56368 ________ 080 ________ 56261
479
479____5560
476368
476266
476368
4758
47580
4796
4758
476272
4730
4731
4732
4731
4734
4731
4736
47606
47607
4758
47609
47610
476368
4758
476287
47611
4769____56368
47697
476292
C#
476293
4761
________ 562 ________ 3617
47637
47638
479
479
470
479
471
479
47626
475624
475627
472
47631
472
477
479
478
472____55624
475637
472______368
4769______02
475642
472____08
477____56157
477
472
475649
477
477____55652
477____55624
475657
477
477____368
4769____02
475662
477
478
4711____55666
475667
476190____55669
476190
4711____55671
476190____55673
4711____55675
477____5562
477
477____55680
477____55682
479
477____56312
477____55686
472____5562
472____5560
475691
_______09____5562
479
479
4752
479
4722
47626
4724
479681
479
478
472____55624
475637
472______02
47674
472
472
47677
472
472____56112
472____59697
_______09____5562
47562
475801
PHP
47687
475803
4761
470
471
47692
475627____3694
4731
47696
47697
478
479____55815
4704
479
4768
4769
4714
4704
4714
475823
4714
4721
479
478
472____56157
472____55831
4704____55833
4704
472
472____55837
472____55839
472_______55841
4758____55833
476247____55831
475888
4714
4764