what』s 逆元
原題:xiaoxin juju needs help
題意:
給一字串,問用這個字串裡面的字元可以拼成多少個不同的回文串
解析:
把回文串分成左右兩邊,即字母x出現次數除2,求排列c
假設左半邊有x個字母a,y個字母b,z個字母c,c==(x+y+z)! / x! / y! / z!
普通的做法有個bug,(x+y+z)!當然可以做,但是%mod後再除x!呢?舉個例子,10000/100可以除,但是10000%107再/100就會造成精度上的錯誤。
用了逆元就完全不用擔心了,我們先求出(x+y+z)!,再乘x!的逆元,y!的逆元,z!的逆元,就避免了這種錯誤。
**:
#include
#include
#include
#define d long long
const d mod=(d)(1e9+7);
using
namespace
std;
d swift(d a,d b)return mul;
}d inv_fac[1007];
d fac[1007];
void init()
void process()
int nu[27];for(int i=1;i<=26;i++)nu[i]=0;
for(int i=0;i'a'+1]++;
int tji=0;
for(int i=1;i<=26;i++)if(nu[i]%2==1)tji++;
if(tji>1)
//因為取一半,所以奇數的那個不用管
d ans=fac[x.length()/2];
for(int i=1;i<=26;i++)
printf("%lld\n",ans);
}int main()
} /*
3*/
This在java中的運用
1 當有成員變數和區域性變數重名時。用this來表示成員變數。public class thisdemo public static void main string args 2 返回類自身的引用 public class thiszisheng private void print public...
中運用 膠水在木雕中的運用技巧
hi,歡迎收看本期 木雕裡的那些事 我是你的解密人,谷藏峰 做木雕時,有時難免會碰到,關鍵部件斷裂的情況,自己辛辛苦苦做了那麼久,就因為這些小缺陷,整個報廢,未免有些可惜。那麼該怎麼辦呢?這個時候,就要用到它了 502膠水 這是我們生活中,粘鞋時會用到的一種速乾膠水。在各種五金雜貨店都能買到。它能在...
CreateFile在串列埠中的運用
在32位的windows系統中,串列埠和其他通訊裝置是作為檔案處理的。對串列埠的操作和對檔案的操作是完全一樣的。通訊以呼叫createfile 開始。函式原型如下 handle createfile lpctstr lpfilename,指向檔名的指標 dword dwdesiredaccess,訪...