SlideShare a Scribd company logo
回文なアナグラム




       原案・問題文:宮村
       解答:宮村、橋本
            解説:宮村
問題概要



   文字列 S が与えられる。 S のアナグラムで回文に
    なっているものの個数を求めてください。
   |S| ≦ 40
解法




   解を持たない条件は?
    奇数回出現する文字が 2 個以上存在するとき
    それ以外の場合は必ず解を持つ
解法

   個数をどうやって数える?
    後半は無視して前半がどうなるかだけを考える。
    簡単な組み合わせの計算。二項係数を用いたり、
    (|S|/2)! / (Π (n[c]/2)!)
    ( ただし、 n[c] は S に文字 c が何回表れるか )
    を用いたり。計算量は O(|S|) 。
   64bit 整数を使えばオーバーフローとか気にせず計
    算できます。
解答例

   宮村: C
    37 行 501 byte


   橋本: Java
    32 行 632 byte

More Related Content

What's hot

AtCoder Beginner Contest 025 解説
AtCoder Beginner Contest 025 解説AtCoder Beginner Contest 025 解説
AtCoder Beginner Contest 025 解説
AtCoder Inc.
 
【第34回数学カフェの予習会#1】微分と代数学のつながり
【第34回数学カフェの予習会#1】微分と代数学のつながり【第34回数学カフェの予習会#1】微分と代数学のつながり
【第34回数学カフェの予習会#1】微分と代数学のつながり
MathCafe
 
AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 014 解説AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 014 解説
AtCoder Inc.
 
AtCoder Regular Contest 023 解説
AtCoder Regular Contest 023 解説AtCoder Regular Contest 023 解説
AtCoder Regular Contest 023 解説
AtCoder Inc.
 
第33回数学カフェ予習会#1 線形空間・射影空間の定義
第33回数学カフェ予習会#1 線形空間・射影空間の定義第33回数学カフェ予習会#1 線形空間・射影空間の定義
第33回数学カフェ予習会#1 線形空間・射影空間の定義
MathCafe
 
ソート
ソートソート
abc027
abc027abc027
abc027
AtCoder Inc.
 
AtCoder Beginner Contest 018 解説
AtCoder Beginner Contest 018 解説AtCoder Beginner Contest 018 解説
AtCoder Beginner Contest 018 解説
AtCoder Inc.
 
Sengoku
SengokuSengoku
Sengoku
Hirotaka Isa
 
20140914_曲面上の「直線」と「最短線」
20140914_曲面上の「直線」と「最短線」20140914_曲面上の「直線」と「最短線」
20140914_曲面上の「直線」と「最短線」
matsumoring
 
20150522_つながり方・まがり方・大きさ
20150522_つながり方・まがり方・大きさ20150522_つながり方・まがり方・大きさ
20150522_つながり方・まがり方・大きさ
matsumoring
 
AtCoder Regular Contest 022 解説
AtCoder Regular Contest 022 解説AtCoder Regular Contest 022 解説
AtCoder Regular Contest 022 解説
AtCoder Inc.
 
高認数学 第1回 式の計算
高認数学 第1回 式の計算高認数学 第1回 式の計算
高認数学 第1回 式の計算
yanai_compass
 
相関係数と決定係数~回帰係数とその不偏性も
相関係数と決定係数~回帰係数とその不偏性も相関係数と決定係数~回帰係数とその不偏性も
相関係数と決定係数~回帰係数とその不偏性も
T T
 
Simulation_Report1
Simulation_Report1Simulation_Report1
Simulation_Report1
T2C_
 
MUJINプログラミングチャレンジ2016 解説
MUJINプログラミングチャレンジ2016 解説MUJINプログラミングチャレンジ2016 解説
MUJINプログラミングチャレンジ2016 解説
AtCoder Inc.
 
双曲平面のモデルと初等幾何
双曲平面のモデルと初等幾何双曲平面のモデルと初等幾何
双曲平面のモデルと初等幾何
matsumoring
 
AI course report part 1(Fix)
AI course report part 1(Fix)AI course report part 1(Fix)
AI course report part 1(Fix)
hisa2
 
AI course report part 1
AI course report part 1AI course report part 1
AI course report part 1
hisa2
 

What's hot (20)

AtCoder Beginner Contest 025 解説
AtCoder Beginner Contest 025 解説AtCoder Beginner Contest 025 解説
AtCoder Beginner Contest 025 解説
 
【第34回数学カフェの予習会#1】微分と代数学のつながり
【第34回数学カフェの予習会#1】微分と代数学のつながり【第34回数学カフェの予習会#1】微分と代数学のつながり
【第34回数学カフェの予習会#1】微分と代数学のつながり
 
AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 014 解説AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 014 解説
 
AtCoder Regular Contest 023 解説
AtCoder Regular Contest 023 解説AtCoder Regular Contest 023 解説
AtCoder Regular Contest 023 解説
 
第33回数学カフェ予習会#1 線形空間・射影空間の定義
第33回数学カフェ予習会#1 線形空間・射影空間の定義第33回数学カフェ予習会#1 線形空間・射影空間の定義
第33回数学カフェ予習会#1 線形空間・射影空間の定義
 
ソート
ソートソート
ソート
 
Matrix
MatrixMatrix
Matrix
 
abc027
abc027abc027
abc027
 
AtCoder Beginner Contest 018 解説
AtCoder Beginner Contest 018 解説AtCoder Beginner Contest 018 解説
AtCoder Beginner Contest 018 解説
 
Sengoku
SengokuSengoku
Sengoku
 
20140914_曲面上の「直線」と「最短線」
20140914_曲面上の「直線」と「最短線」20140914_曲面上の「直線」と「最短線」
20140914_曲面上の「直線」と「最短線」
 
20150522_つながり方・まがり方・大きさ
20150522_つながり方・まがり方・大きさ20150522_つながり方・まがり方・大きさ
20150522_つながり方・まがり方・大きさ
 
AtCoder Regular Contest 022 解説
AtCoder Regular Contest 022 解説AtCoder Regular Contest 022 解説
AtCoder Regular Contest 022 解説
 
高認数学 第1回 式の計算
高認数学 第1回 式の計算高認数学 第1回 式の計算
高認数学 第1回 式の計算
 
相関係数と決定係数~回帰係数とその不偏性も
相関係数と決定係数~回帰係数とその不偏性も相関係数と決定係数~回帰係数とその不偏性も
相関係数と決定係数~回帰係数とその不偏性も
 
Simulation_Report1
Simulation_Report1Simulation_Report1
Simulation_Report1
 
MUJINプログラミングチャレンジ2016 解説
MUJINプログラミングチャレンジ2016 解説MUJINプログラミングチャレンジ2016 解説
MUJINプログラミングチャレンジ2016 解説
 
双曲平面のモデルと初等幾何
双曲平面のモデルと初等幾何双曲平面のモデルと初等幾何
双曲平面のモデルと初等幾何
 
AI course report part 1(Fix)
AI course report part 1(Fix)AI course report part 1(Fix)
AI course report part 1(Fix)
 
AI course report part 1
AI course report part 1AI course report part 1
AI course report part 1
 

More from oupc

Comment
CommentComment
Comment
oupc
 
Trip
TripTrip
Trip
oupc
 
Cube
CubeCube
Cube
oupc
 
One
OneOne
One
oupc
 
Magical
MagicalMagical
Magical
oupc
 
Gcd
GcdGcd
Gcd
oupc
 
Replace
ReplaceReplace
Replace
oupc
 
Goto
GotoGoto
Goto
oupc
 
Sanpo
SanpoSanpo
Sanpo
oupc
 
Paren
ParenParen
Paren
oupc
 
Palin
PalinPalin
Palin
oupc
 
Sort
SortSort
Sort
oupc
 
Sharp2sat
Sharp2satSharp2sat
Sharp2sat
oupc
 
Segpair
SegpairSegpair
Segpair
oupc
 
Rmq
RmqRmq
Rmq
oupc
 
Permutation
PermutationPermutation
Permutation
oupc
 
Knapsack
KnapsackKnapsack
Knapsack
oupc
 
Game
GameGame
Game
oupc
 
Four op
Four opFour op
Four op
oupc
 

More from oupc (20)

Comment
CommentComment
Comment
 
Trip
TripTrip
Trip
 
Cube
CubeCube
Cube
 
One
OneOne
One
 
1
11
1
 
Magical
MagicalMagical
Magical
 
Gcd
GcdGcd
Gcd
 
Replace
ReplaceReplace
Replace
 
Goto
GotoGoto
Goto
 
Sanpo
SanpoSanpo
Sanpo
 
Paren
ParenParen
Paren
 
Palin
PalinPalin
Palin
 
Sort
SortSort
Sort
 
Sharp2sat
Sharp2satSharp2sat
Sharp2sat
 
Segpair
SegpairSegpair
Segpair
 
Rmq
RmqRmq
Rmq
 
Permutation
PermutationPermutation
Permutation
 
Knapsack
KnapsackKnapsack
Knapsack
 
Game
GameGame
Game
 
Four op
Four opFour op
Four op
 

Anagram

  • 1. 回文なアナグラム  原案・問題文:宮村  解答:宮村、橋本  解説:宮村
  • 2. 問題概要  文字列 S が与えられる。 S のアナグラムで回文に なっているものの個数を求めてください。  |S| ≦ 40
  • 3. 解法  解を持たない条件は? 奇数回出現する文字が 2 個以上存在するとき それ以外の場合は必ず解を持つ
  • 4. 解法  個数をどうやって数える? 後半は無視して前半がどうなるかだけを考える。 簡単な組み合わせの計算。二項係数を用いたり、 (|S|/2)! / (Π (n[c]/2)!) ( ただし、 n[c] は S に文字 c が何回表れるか ) を用いたり。計算量は O(|S|) 。  64bit 整数を使えばオーバーフローとか気にせず計 算できます。
  • 5. 解答例  宮村: C 37 行 501 byte  橋本: Java 32 行 632 byte