题目描述
小s 和小t 为了打发无聊的数学课经常传小纸条。但是由于小纸条内容往往是一个secret,为了不让
别人偷看到这个secret,小s 用了一种编码方式。对于每个英文的大写字母都找到一个替换的字母。
这样原来的LOVE 可能decode 之后就变成HATE。这样传纸条的时候就不用担心secret 被泄露了~
输入文件
第一行,一个字符串,长度不超过10000。只包含大写字母和空格。
第二行,一个长度为26 的大写字符串,分别表示A~Z 编码后变成什么大写字母。
输出文件
一行,一个字符串,表示输入文件的第一行字符串编码后的字符串。
样例
decode.in
HPC
PJVYMIY
BLMRGJIASOPZEFDCKWYHUNXQTV
decode.out
ACM
CONTEST
decode.in
FDY
GAI
BG
UKMY
KIMHOTSQYRLCUZPAGWJNBVDXEF
decode.out
THE
SKY
IS
BLUE

 

program decode;
var
  s:ansistring;
  a:array[0..27]of char;
  i,j:longint;
begin
  assign(input,'decode.in');
  reset(input);
  assign(output,'decode.out');
  rewrite(output);
  readln(s);
  for i:=1 to 26 do
    read(a[i]);
  readln;
  for i:=1 to length(s) do
    if (s[i]=' ') then
      begin
        write(' ');
      end
      else
      begin
        j:=ord(s[i])-64;
        write(a[j]);
      end;
  writeln;
  close(input);
  close(output);
end.

题目描述
小s 经常做到关于质数的题,做多了都作腻了。某天,小s 在刷题的时候看到有一类特殊的数,叫做
Monday-Saturday Number,也就是可以表示成7N+1 或7N+6 的数(N>=0)。那么Monday-Saturday Prime
就是可以表示成7N+1 或7N+6,且不包含除了1 和它本身之外其他Monday-Saturday Number 的数。如
27 是一个Monday-Saturday Prime,但216 就不是,因为216=8×27,216 包含除1 和216 以外的
Monday-Saturday Number 的因数。现在小s 想知道,对于一个Monday-Saturday Number M,它能被哪
些除了1 和它本身之外的Monday-Saturday Prime 整除。
输入文件
一行,一个正整数M,为一个Monday-Saturday Number。
输出文件
先输出正整数M,后面紧跟一个冒号“:”和一个空格。下面紧跟若干整数,为M 的Monday-Saturday
因数。两个整数之间用一个空格隔开,行末没有多余空格。若M 本身是一个Monday-Saturday Prime,
则输出-1。
样例
prime.in
205920
prime.out
205920: 6 8 13 15 20 22 55 99
prime.in
8
prime.out
-1
2
prime.in
262144
prime.out
262144: 8
数据范围
40% M<=1000
100% 1<=M<=3000000

 

program prime;
const
  sum=317246;
  p:array[1..sum]of longint=(6,8,13,15,20,22,27,29,34,41,
43,50,55,57,62,69,71,76,83,85,
92,97,99,106,111,113,118,125,127,134,
139,141,146,148,153,155,167,181,183,188,
190,197,202,209,211,218,223,230,237,239,
244,251,253,265,267,274,279,281,293,295,
302,307,309,314,316,321,323,335,337,349,
356,358,363,365,370,379,386,391,393,398,
407,412,419,421,428,433,447,449,454,461,
463,470,475,477,482,489,491,503,505,517,
519,524,526,531,538,545,547,554,561,566,
573,575,587,589,596,601,603,610,617,622,
629,631,643,652,657,659,671,673,685,687,
692,694,699,701,706,713,722,727,734,743,
755,757,764,769,771,778,785,790,797,799,
811,813,818,827,839,853,862,867,869,874,
881,883,890,895,909,911,916,925,932,937,
939,951,953,958,965,967,974,979,981,993,
995,1007,1009,1021,1023,1028,1030,1037,1042,1049,
1051,1058,1063,1070,1077,1084,1091,1093,1114,1119,
1121,1126,1133,1135,1142,1147,1149,1154,1163,1175,
1177,1191,1198,1203,1205,1217,1219,1226,1231,1233,
1238,1252,1259,1268,1273,1282,1289,1294,1301,1303,
1310,1315,1317,1322,1324,1329,1331,1343,1345,1357,
1359,1366,1371,1373,1385,1387,1399,1401,1406,1413,
1415,1427,1429,1436,1441,1457,1471,1478,1483,1490,
1492,1497,1499,1511,1513,1525,1527,1532,1541,1546,
1553,1555,1567,1569,1574,1581,1583,1588,1597,1604,
1609,1611,1618,1623,1630,1637,1639,1646,1658,1667,
1679,1693,1702,1707,1709,1714,1721,1723,1730,1735,
1737,1749,1751,1756,1765,1772,1777,1779,1786,1791,
1793,1805,1814,1819,1821,1828,1835,1847,1861,1868,
1877,1882,1889,1891,1903,1910,1919,1931,1933,1945,
1947,1954,1959,1961,1966,1973,1975,1982,1987,1994,
1996,2003,2017,2029,2031,2036,2038,2043,2045,2057,
2066,2071,2073,2078,2087,2092,2099,2101,2113,2122,
2127,2129,2141,2143,2155,2157,2162,2164,2169,2183,
2185,2199,2206,2211,2213,2218,2225,2227,2234,2239,
2246,2253,2267,2269,2276,2281,2283,2290,2297,2302,
2309,2311,2318,2323,2330,2339,2351,2367,2372,2374,
2381,2386,2393,2395,2402,2409,2421,2423,2428,2435,
2437,2449,2458,2463,2477,2479,2491,2493,2498,2507,
2519,2521,2533,2547,2549,2554,2563,2570,2575,2577,
2582,2589,2591,2603,2605,2612,2617,2631,2633,2638,
2645,2647,2654,2659,2661,2675,2687,2689,2701,2703,
2708,2710,2722,2729,2731,2738,2757,2759,2764,2771,
2773,2785,2787,2799,2801,2806,2815,2827,2836,2841,
2843,2855,2857,2869,2876,2878,2883,2885,2897,2906,
2913,2918,2927,2932,2939,2941,2953,2962,2969,2974,
2981,2983,2995,3002,3004,3009,3011,3023,3037,3039,
3044,3046,3065,3067,3079,3086,3093,3095,3109,3121,
3123,3130,3137,3142,3149,3151,3158,3163,3170,3177,
3179,3191,3193,3205,3207,3214,3221,3226,3233,3235,
3242,3247,3254,3261,3275,3284,3291,3303,3305,3310,
3317,3319,3326,3331,3333,3338,3347,3359,3361,3373,
3382,3387,3389,3394,3401,3415,3417,3431,3436,3443,
3452,3457,3459,3466,3473,3478,3487,3494,3499,3501,
3506,3508,3513,3515,3527,3529,3541,3543,3548,3557,
3571,3578,3583,3590,3597,3599,3611,3613,3634,3639,
3641,3646,3662,3667,3669,3676,3681,3695,3697,3709,
3711,3716,3723,3725,3730,3737,3739,3746,3751,3758,
3767,3779,3781,3788,3793,3802,3814,3821,3823,3830,
3837,3849,3851,3863,3865,3877,3879,3884,3891,3893,
3898,3907,3914,3919,3921,3935,3947,3949,3961,3963,
3970,3989,3998,4003,4010,4019,4033,4045,4052,4054,
4061,4066,4073,4075,4087,4094,4101,4103,4115,4117,
4124,4129,4138,4143,4145,4157,4159,4166,4178,4187,
4201,4213,4222,4227,4229,4241,4243,4255,4262,4269,
4271,4276,4283,4285,4297,4299,4306,4311,4313,4325,
4327,4339,4341,4348,4353,4367,4369,4383,4388,4390,
4397,4409,4411,4418,4423,4430,4439,4451,4453,4465,
4467,4474,4479,4481,4486,4493,4502,4507,4514,4516,
4521,4523,4535,4549,4570,4577,4579,4586,4591,4593,
4607,4612,4619,4621,4647,4649,4661,4663,4670,4677,
4682,4684,4689,4691,4703,4705,4717,4724,4733,4738,
4747,4754,4759,4766,4775,4787,4789,4801,4803,4817,
4822,4829,4831,4852,4857,4871,4873,4885,4892,4894,
4913,4915,4922,4929,4934,4943,4948,4955,4957,4969,
4971,4978,4983,4985,4990,4997,4999,5006,5011,5013,
5027,5039,5053,5062,5067,5069,5081,5090,5095,5097,
5102,5111,5116,5123,5132,5137,5139,5151,5153,5158,
5165,5167,5179,5181,5186,5188,5193,5195,5209,5221,
5223,5228,5230,5237,5242,5251,5263,5277,5279,5284,
5293,5305,5314,5321,5326,5333,5342,5347,5349,5354,
5361,5363,5377,5389,5391,5398,5403,5405,5410,5417,
5419,5426,5431,5433,5438,5459,5468,5482,5487,5489,
5501,5503,5515,5517,5524,5531,5543,5545,5557,5559,
5571,5573,5578,5585,5587,5594,5599,5601,5606,5613,
5615,5627,5636,5641,5657,5662,5669,5671,5683,5690,
5692,5711,5725,5732,5734,5739,5741,5753,5755,5767,
5769,5774,5783,5788,5795,5797,5804,5809,5818,5823,
5825,5839,5846,5851,5853,5867,5879,5881,5907,5909,
5914,5921,5923,5930,5935,5937,5942,5949,5951,5956,
5963,5965,5972,5979,5991,5998,6005,6007,6026,6033,
6047,6049,6070,6077,6082,6089,6091,6098,6103,6117,
6124,6131,6133,6145,6147,6159,6161,6166,6173,6187,
6189,6194,6196,6203,6217,6229,6231,6236,6238,6243,
6245,6257,6259,6271,6287,6299,6301,6313,6329,6334,
6341,6343,6362,6369,6371,6385,6397,6404,6406,6411,
6413,6418,6425,6427,6434,6439,6455,6469,6476,6481,
6483,6497,6502,6509,6511,6518,6523,6530,6537,6551,
6553,6567,6574,6581,6586,6593,6595,6602,6607,6609,
6614,6621,6623,6628,6635,6637,6649,6651,6658,6663,
6677,6679,6686,6691,6707,6719,6733,6742,6749,6761,
6763,6770,6775,6782,6789,6791,6796,6803,6805,6817,
6819,6826,6833,6845,6854,6859,6861,6866,6901,6910,
6917,6922,6938,6943,6957,6959,6964,6971,6973,6987,
6999,7001,7013,7015,7022,7027,7034,7036,7041,7043,
7057,7069,7071,7078,7083,7090,7097,7099,7113,7118,
7127,7132,7139,7141,7148,7153,7162,7167,7169,7183,
7190,7195,7197,7204,7211,7223,7237,7244,7246,7251,
7253,7258,7265,7274,7281,7286,7295,7307,7309,7321,
7323,7330,7342,7349,7351,7363,7377,7379,7391,7393,
7405,7407,7419,7426,7433,7435,7442,7447,7454,7461,
7463,7468,7477,7484,7489,7491,7498,7505,7510,7517,
7519,7531,7538,7547,7559,7561,7573,7589,7594,7601,
7603,7610,7615,7617,7622,7629,7643,7652,7666,7671,
7673,7687,7694,7699,7701,7706,7713,7715,7727,7729,
7741,7757,7762,7769,7771,7778,7799,7804,7811,7825,
7827,7834,7841,7846,7853,7855,7862,7867,7883,7895,
7897,7909,7916,7918,7925,7937,7939,7951,7953,7958,
7967,7972,7979,7981,7988,7993,8002,8007,8009,8014,
8035,8042,8044,8049,8063,8065,8079,8093,8098,8105,
8107,8114,8119,8121,8133,8135,8147,8156,8161,8163,
8182,8189,8191,8198,8210,8212,8219,8231,8233,8247,
8252,8254,8259,8261,8266,8273,8275,8287,8301,8303,
8315,8317,8324,8329,8331,8345,8357,8366,8371,8373,
8387,8399,8401,8413,8422,8427,8429,8434,8441,8443,
8455,8457,8462,8469,8483,8485,8499,8506,8511,8513,
8518,8527,8539,8546,8548,8553,8581,8583,8590,8597,
8609,8611,8623,8630,8637,8639,8644,8653,8665,8674,
8679,8681,8693,8695,8702,8707,8709,8714,8716,8735,
8737,8751,8765,8770,8777,8779,8786,8791,8793,8807,
8812,8819,8821,8828,8833,8842,8847,8849,8854,8861,
8863,8870,8877,8882,8884,8889,8891,8917,8919,8926,
8933,8945,8947,8959,8966,8973,8975,8989,9001,9003,
9029,9031,9038,9043,9057,9059,9071,9085,9092,9094,
9101,9115,9122,9127,9129,9134,9141,9148,9155,9157,
9169,9171,9183,9190,9197,9199,9206,9211,9227,9239,
9241,9253,9267,9274,9281,9283,9290,9297,9302,9311,
9323,9325,9332,9337,9339,9346,9351,9353,9358,9365,
9381,9388,9393,9395,9407,9421,9428,9437,9442,9449,
9458,9463,9470,9479,9484,9491,9493,9505,9507,9521,
9533,9535,9547,9549,9556,9561,9563,9575,9577,9596,
9598,9617,9619,9626,9631,9638,9647,9661,9668,9673,
9682,9687,9689,9694,9701,9703,9710,9722,9731,9743,
9745,9757,9759,9764,9766,9771,9778,9785,9787,9806,
9813,9827,9829,9836,9843,9857,9862,9871,9883,9892,
9897,9899,9911,9913,9925,9927,9934,9939,9941,9946,
9953,9967,9969,9974,9981,9983,9995,10009,10018,10025,
10037,10039,10046,10051,10053,10058,10067,10079,10081,10093,
10102,10107,10109,10123,10130,10135,10137,10149,10151,10156,
10163,10165,10172,10177,10193,10198,10207,10214,10219,10221,
10226,10228,10235,10247,10249,10261,10263,10289,10298,10303,
10310,10319,10331,10333,10345,10347,10359,10389,10394,10401,
10403,10415,10417,10429,10436,10443,10445,10457,10459,10466,
10471,10473,10487,10499,10501,10513,10522,10529,10534,10555,
10562,10571,10583,10597,10599,10606,10613,10618,10627,10639,
10641,10646,10653,10655,10667,10669,10681,10683,10690,10697,
10702,10709,10711,10718,10723,10732,10737,10739,10753,10765,
10772,10774,10779,10781,10786,10807,10809,10814,10821,10823,
10828,10837,10844,10849,10851,10858,10870,10877,10886,10891,
10893,10898,10919,10921,10942,10949,10954,10963,10970,10975,
10977,10996,11003,11012,11017,11019,11026,11031,11033,11038,
11045,11047,11054,11059,11061,11068,11073,11075,11087,11101,
11103,11108,11117,11129,11131,11138,11143,11157,11159,11164,
11171,11173,11185,11199,11201,11213,11215,11227,11241,11243,
11255,11257,11269,11276,11278,11283,11285,11290,11299,11306,
11311,11318,11327,11332,11341,11348,11353,11369,11381,11383,
11402,11404,11409,11411,11423,11425,11437,11444,11451,11465,
11467,11474,11486,11493,11507,11509,11516,11530,11549,11551,
11558,11563,11577,11579,11591,11593,11607,11612,11614,11619,
11621,11626,11633,11642,11647,11649,11654,11663,11668,11675,
11677,11689,11698,11705,11710,11717,11719,11731,11733,11738,
11747,11759,11761,11773,11787,11789,11794,11801,11810,11822,
11829,11831,11845,11852,11859,11871,11873,11878,11885,11887,
11894,11899,11901,11906,11915,11927,11929,11941,11943,11957,
11962,11969,11971,11983,12004,12011,12039,12041,12046,12053,
12055,12062,12067,12074,12076,12081,12097,12109,12111,12130,
12137,12139,12146,12153,12158,12167,12179,12193,12202,12221,
12223,12230,12235,12237,12242,12244,12249,12251,12263,12277,
12279,12286,12291,12293,12305,12307,12314,12326,12333,12335,
12347,12349,12356,12361,12370,12377,12391,12398,12403,12417,
12419,12431,12433,12445,12459,12461,12466,12473,12475,12482,
12487,12494,12503,12515,12517,12529,12531,12538,12559,12566,
12578,12601,12613,12622,12629,12634,12641,12643,12655,12657,
12671,12676,12683,12697,12706,12713,12718,12725,12734,12739,
12741,12746,12748,12755,12767,12781,12783,12790,12797,12802,
12809,12811,12823,12830,12837,12839,12853,12867,12881,12893,
12895,12902,12907,12916,12921,12923,12937,12949,12951,12965,
12970,12977,12979,12991,13007,13012,13019,13028,13033,13042,
13047,13049,13054,13061,13063,13070,13075,13077,13084,13089,
13103,13105,13119,13126,13131,13133,13138,13147,13154,13159,
13173,13187,13189,13196,13210,13217,13229,13231,13238,13252,
13259,13271,13285,13292,13301,13306,13313,13315,13322,13327,
13329,13341,13343,13355,13357,13371,13378,13383,13385,13397,
13399,13406,13411,13413,13418,13439,13441,13453,13467,13469,
13474,13495,13497,13511,13523,13525,13537,13539,13551,13553,
13558,13565,13567,13579,13586,13595,13607,13609,13621,13628,
13642,13649,13651,13658,13670,13679,13691,13693,13705,13707,
13714,13719,13721,13726,13733,13742,13747,13749,13763,13777,
13789,13791,13796,13798,13810,13831,13847,13852,13859,13868,
13873,13887,13894,13901,13903,13917,13922,13929,13931,13943,
13945,13957,13964,13966,13971,13973,13985,13994,13999,14006,
14015,14029,14041,14043,14057,14062,14069,14071,14078,14083,
14090,14099,14111,14113,14127,14132,14134,14139,14141,14153,
14155,14167,14169,14174,14188,14197,14211,14218,14223,14225,
14230,14237,14251,14253,14258,14267,14279,14281,14293,14302,
14321,14323,14330,14335,14349,14363,14372,14377,14379,14386,
14393,14398,14407,14414,14419,14426,14428,14433,14435,14447,
14449,14461,14463,14468,14470,14477,14489,14503,14510,14517,
14519,14524,14531,14533,14545,14554,14561,14566,14582,14589,
14594,14601,14603,14615,14617,14629,14631,14636,14643,14657,
14659,14666,14671,14673,14687,14692,14699,14701,14708,14713,
14727,14741,14743,14757,14764,14771,14783,14785,14797,14799,
14804,14811,14813,14825,14827,14834,14853,14855,14867,14869,
14876,14881,14890,14897,14902,14909,14918,14923,14930,14932,
14939,14951,14953,14967,14974,14979,14995,15009,15014,15021,
15037,15044,15049,15058,15063,15065,15077,15079,15086,15091,
15098,15107,15121,15133,15149,15154,15161,15163,15175,15177,
15182,15191,15203,15205,15212,15217,15226,15231,15233,15238,
15245,15247,15259,15261,15273,15287,15289,15303,15310,15317,
15322,15329,15331,15338,15343,15357,15359,15371,15373,15401,
15406,15413,15415,15427,15434,15441,15443,15469,15485,15490,
15497,15499,15506,15511,15513,15518,15527,15541,15553,15567,
15569,15581,15583,15590,15595,15597,15611,15623,15637,15644,
15646,15653,15658,15667,15679,15681,15693,15709,15716,15721,
15723,15737,15749,15751,15758,15763,15772,15777,15779,15791,
15793,15807,15814,15819,15835,15842,15854,15861,15868,15877,
15889,15891,15898,15905,15917,15919,15926,15931,15947,15959,
15961,15973,15982,15987,15989,16001,16010,16015,16022,16043,
16045,16052,16057,16059,16071,16073,16078,16085,16087,16099,
16101,16106,16108,16127,16141,16143,16157,16162,16169,16171,
16178,16183,16190,16197,16204,16213,16234,16239,16241,16246,
16253,16255,16262,16267,16274,16283,16295,16309,16311,16316,
16323,16325,16337,16339,16358,16372,16379,16381,16407,16409,
16421,16423,16435,16437,16442,16444,16449,16451,16463,16465,
16477,16479,16486,16493,16505,16507,16514,16519,16521,16526,
16535,16547,16556,16561,16563,16570,16577,16582,16589,16591,
16603,16612,16619,16631,16633,16645,16647,16661,16673,16682,
16689,16703,16708,16715,16717,16729,16738,16743,16759,16771,
16773,16778,16787,16799,16801,16829,16834,16841,16843,16855,
16857,16862,16869,16871,16876,16883,16897,16906,16911,16925,
16927,16934,16941,16946,16953,16955,16967,16981,16990,16997,
17002,17009,17011,17039,17044,17051,17053,17065,17067,17074,
17079,17086,17093,17107,17109,17123,17135,17137,17149,17151,
17156,17158,17163,17165,17177,17191,17193,17198,17207,17219,
17221,17233,17242,17247,17249,17254,17263,17275,17282,17291,
17305,17317,17326,17331,17333,17338,17345,17354,17359,17366,
17373,17387,17389,17396,17401,17403,17410,17417,17431,17438,
17443,17452,17471,17473,17492,17494,17506,17522,17527,17529,
17541,17543,17555,17564,17569,17571,17583,17585,17590,17597,
17599,17606,17611,17618,17627,17639,17662,17669,17674,17681,
17683,17695,17697,17709,17711,17723,17725,17737,17746,17767,
17774,17779,17781,17786,17788,17795,17807,17809,17828,17830,
17837,17851,17858,17863,17870,17877,17879,17891,17905,17921,
17926,17933,17942,17947,17949,17954,17961,17975,17977,17989,
17991,17998,18003,18010,18019,18026,18033,18047,18052,18059,
18061,18068,18073,18082,18087,18089,18101,18110,18115,18129,
18131,18143,18145,18157,18159,18173,18178,18185,18199,18201,
18206,18215,18227,18229,18243,18257,18262,18269,18271,18283,
18311,18313,18325,18332,18334,18339,18341,18346,18353,18355,
18362,18367,18374,18381,18383,18388,18397,18418,18437,18439,
18446,18451,18453,18467,18479,18481,18493,18507,18514,18521,
18523,18556,18563,18565,18572,18579,18586,18591,18593,18605,
18607,18621,18628,18633,18635,18649,18661,18663,18670,18677,
18682,18689,18691,18698,18703,18710,18717,18719,18731,18745,
18747,18754,18761,18773,18775,18782,18787,18789,18794,18801,
18803,18817,18829,18831,18838,18843,18845,18857,18859,18866,
18878,18887,18892,18899,18913,18922,18929,18934,18943,18962,
18969,18971,18985,18997,18999,19004,19011,19013,19018,19025,
19027,19039,19041,19046,19055,19067,19069,19081,19083,19102,
19130,19132,19137,19139,19151,19153,19165,19167,19172,19174,
19179,19181,19193,19202,19207,19223,19235,19237,19249,19258,
19263,19265,19277,19286,19291,19293,19298,19319,19333,19342,
19347,19349,19354,19361,19363,19377,19391,19403,19405,19417,
19419,19433,19438,19445,19447,19466,19473,19489,19501,19508,
19510,19529,19531,19538,19543,19559,19571,19573,19585,19587,
19601,19606,19613,19615,19622,19627,19634,19636,19641,19655,
19657,19676,19678,19697,19699,19711,19713,19718,19727,19732,
19739,19741,19748,19753,19767,19769,19774,19781,19783,19790,
19795,19797,19802,19804,19811,19839,19846,19853,19858,19867,
19874,19879,19886,19895,19907,19921,19930,19937,19949,19963,
19970,19972,19977,19979,19991,19993,20005,20012,20014,20019,
20021,20035,20047,20054,20063,20077,20084,20089,20103,20105,
20110,20117,20119,20133,20138,20147,20159,20161,20173,20182,
20187,20194,20201,20203,20222,20229,20231,20236,20243,20245,
20257,20259,20266,20278,20285,20287,20299,20301,20308,20327,
20341,20343,20348,20357,20362,20369,20378,20383,20390,20399,
20404,20411,20413,20427,20441,20446,20455,20469,20476,20481,
20483,20495,20497,20509,20518,20523,20525,20530,20537,20539,
20546,20551,20558,20567,20581,20588,20593,20602,20607,20609,
20621,20630,20635,20637,20642,20649,20651,20663,20665,20684,
20686,20693,20698,20707,20714,20719,20721,20733,20747,20749,
20756,20777,20782,20789,20791,20798,20810,20819,20831,20847,
20854,20859,20861,20866,20873,20887,20901,20903,20908,20915,
20924,20929,20931,20957,20959,20971,20973,20987,21001,21013,
21022,21029,21041,21043,21055,21057,21062,21069,21071,21085,
21092,21097,21106,21111,21118,21127,21134,21139,21153,21155,
21167,21169,21181,21188,21202,21211,21218,21223,21237,21239,
21251,21253,21265,21293,21295,21302,21309,21314,21323,21337,
21349,21351,21363,21365,21370,21377,21379,21391,21393,21407,
21419,21421,21433,21447,21449,21461,21475,21477,21482,21491,
21503,21517,21524,21526,21531,21533,21559,21561,21575,21587,
21589,21596,21601,21610,21617,21622,21643,21652,21657,21659,
21673,21685,21687,21694,21699,21701,21706,21713,21722,21727,
21729,21734,21741,21743,21748,21755,21757,21764,21769,21778,
21783,21785,21790,21799,21806,21811,21813,21818,21839,21841,
21869,21874,21881,21883,21902,21909,21911,21916,21923,21925,
21932,21937,21946,21958,21965,21967,21974,21979,21981,21986,
21993,22007,22021,22023,22028,22030,22037,22042,22049,22051,
22063,22070,22079,22084,22091,22093,22105,22107,22114,22119,
22121,22133,22135,22142,22147,22163,22175,22177,22189,22203,
22205,22210,22219,22226,22233,22238,22247,22252,22259,22273,
22289,22303,22315,22322,22324,22331,22343,22357,22364,22371,
22387,22394,22413,22415,22429,22441,22443,22457,22469,22471,
22478,22483,22492,22497,22499,22511,22513,22527,22534,22539,
22541,22546,22553,22567,22569,22574,22583,22588,22595,22597,
22604,22609,22611,22623,22637,22639,22651,22658,22667,22679,
22681,22693,22702,22709,22721,22723,22730,22735,22749,22751,
22756,22772,22777,22779,22786,22793,22798,22805,22807,22819,
22821,22835,22847,22849,22861,22863,22868,22870,22877,22889,
22891,22898,22903,22917,22931,22947,22954,22959,22961,22966,
22973,22975,22982,22994,22996,23003,23015,23017,23029,23038,
23043,23057,23059,23066,23071,23073,23087,23099,23129,23141,
23143,23162,23164,23169,23185,23197,23204,23211,23225,23227,
23234,23239,23255,23267,23269,23281,23297,23302,23311,23318,
23330,23337,23339,23351,23353,23365,23367,23372,23379,23381,
23393,23395,23402,23407,23414,23423,23428,23437,23444,23449,
23451,23458,23470,23477,23479,23486,23507,23533,23542,23549,
23554,23561,23563,23570,23589,23591,23603,23605,23612,23619,
23626,23631,23633,23645,23654,23659,23666,23675,23687,23689,
23701,23703,23708,23710,23717,23729,23731,23743,23757,23759,
23771,23773,23794,23799,23801,23806,23813,23827,23857,23869,
23871,23878,23890,23897,23899,23906,23911,23913,23918,23939,
23941,23948,23953,23962,23967,23969,23974,23981,23990,23995,
24009,24023,24039,24044,24051,24053,24058,24065,24074,24079,
24086,24093,24095,24107,24109,24116,24121,24137,24142,24151,
24158,24163,24170,24172,24177,24179,24191,24205,24207,24212,
24214,24221,24226,24233,24235,24247,24249,24261,24263,24268,
24275,24277,24289,24291,24298,24303,24305,24317,24326,24333,
24359,24361,24373,24387,24394,24403,24410,24415,24417,24422,
24429,24431,24443,24445,24452,24457,24459,24471,24473,24478,
24487,24494,24499,24501,24506,24513,24515,24527,24529,24562,
24569,24571,24578,24590,24599,24604,24611,24613,24627,24646,
24653,24655,24667,24669,24683,24697,24709,24711,24730,24746,
24751,24758,24767,24781,24788,24793,24802,24807,24809,24814,
24821,24823,24835,24837,24842,24844,24851,24863,24865,24877,
24879,24884,24886,24891,24893,24907,24914,24919,24933,24935,
24949,24961,24963,24977,24982,24989,24991,25003,25017,25031,
25033,25045,25052,25054,25059,25061,25073,25082,25087,25089,
25094,25101,25108,25115,25117,25131,25138,25145,25157,25166,
25171,25173,25178,25187,25213,25222,25227,25229,25243,25255,
25257,25269,25271,25283,25292,25306,25313,25318,25325,25339,
25341,25348,25367,25369,25381,25383,25390,25397,25409,25411,
25423,25430,25439,25444,25451,25453,25474,25486,25495,25507,
25509,25514,25516,25523,25535,25537,25556,25563,25565,25570,
25577,25579,25591,25598,25619,25621,25633,25642,25661,25663,
25682,25684,25689,25691,25703,25717,25719,25726,25733,25745,
25747,25754,25759,25761,25775,25787,25796,25801,25817,25822,
25829,25838,25859,25873,25887,25892,25901,25906,25913,25927,
25934,25941,25943,25957,25964,25969,25971,25983,25985,25997,
25999,26006,26011,26018,26027,26041,26053,26067,26069,26074,
26081,26083,26090,26097,26111,26116,26123,26137,26139,26153,
26165,26167,26174,26179,26181,26186,26188,26193,26207,26209,
26223,26237,26242,26249,26251,26258,26263,26279,26284,26291,
26293,26305,26319,26321,26326,26333,26335,26342,26347,26349,
26354,26389,26396,26405,26417,26431,26438,26447,26459,26461,
26473,26482,26489,26501,26503,26515,26517,26522,26545,26557,
26566,26571,26573,26587,26594,26599,26601,26613,26615,26627,
26629,26636,26641,26657,26662,26669,26671,26678,26683,26692,
26697,26699,26711,26713,26725,26727,26734,26739,26753,26755,
26762,26769,26783,26795,26804,26823,26830,26837,26839,26851,
26853,26867,26879,26881,26893,26902,26907,26914,26921,26930,
26935,26942,26951,26963,26965,26977,26986,26991,26993,26998,
27021,27026,27033,27035,27049,27061,27070,27077,27089,27091,
27103,27110,27119,27124,27145,27147,27154,27159,27161,27175,
27182,27187,27194,27201,27203,27215,27217,27229,27238,27245,
27259,27266,27271,27273,27278,27292,27299,27301,27308,27322,
27327,27329,27334,27341,27343,27355,27357,27362,27364,27369,
27371,27385,27397,27399,27411,27413,27418,27425,27427,27439,
27441,27446,27453,27467,27476,27481,27483,27490,27497,27502,
27509,27518,27523,27530,27532,27537,27539,27551,27553,27565,
27581,27595,27602,27607,27609,27614,27623,27628,27635,27644,
27658,27663,27670,27679,27691,27707,27719,27721,27733,27747,
27749,27754,27763,27770,27789,27791,27796,27803,27817,27826,
27831,27845,27847,27854,27866,27868,27887,27901,27908,27910,
27917,27922,27929,27931,27938,27943,27957,27959,27964,27973,
27994,28001,28013,28022,28027,28029,28034,28057,28069,28071,
28076,28097,28099,28111,28113,28127,28139,28141,28153,28162,
28169,28174,28181,28183,28190,28195,28209,28211,28225,28237,
28239,28253,28265,28267,28279,28281,28286,28293,28295,28307,
28309,28316,28330,28342,28349,28351,28370,28393,28407,28412,
28414,28419,28426,28433,28442,28447,28461,28463,28477,28484,
28489,28491,28498,28503,28505,28510,28517,28519,28531,28533,
28538,28547,28559,28573,28601,28603,28610,28617,28629,28631,
28636,28643,28657,28673,28685,28687,28694,28699,28708,28713,
28715,28727,28729,28748,28757,28771,28778,28783,28790,28799,
28811,28813,28825,28827,28839,28841,28846,28862,28867,28869,
28874,28876,28881,28883,28895,28909,28916,28918,28923,28937,
28953,28958,28972,28979,28981,28988,28993,29009,29014,29021,
29023,29030,29035,29037,29063,29065,29077,29086,29091,29093,
29098,29105,29114,29119,29121,29126,29135,29147,29149,29161,
29163,29170,29177,29182,29189,29191,29217,29219,29231,29245,
29247,29254,29259,29266,29273,29275,29287,29301,29303,29317,
29324,29331,29338,29343,29345,29357,29359,29366,29371,29373,
29378,29387,29399,29401,29413,29422,29427,29429,29434,29441,
29443,29462,29476,29483,29485,29499,29506,29513,29518,29525,
29527,29534,29539,29553,29555,29567,29569,29581,29597,29611,
29623,29630,29639,29644,29651,29674,29681,29686,29693,29695,
29702,29707,29709,29721,29723,29735,29737,29758,29763,29765,
29777,29791,29793,29798,29819,29821,29828,29833,29847,29849,
29863,29903,29905,29917,29919,29924,29931,29933,29938,29947,
29959,29961,29966,29987,29989,29996,30001,30003,30010,30029,
30031,30038,30059,30071,30087,30092,30101,30106,30113,30115,
30122,30127,30148,30155,30157,30164,30169,30178,30183,30185,
30190,30197,30211,30239,30241,30253,30262,30269,30274,30281,
30283,30297,30309,30311,30323,30325,30332,30337,30339,30346,
30351,30365,30367,30374,30379,30386,30395,30409,30423,30428,
30437,30449,30451,30477,30484,30491,30493,30505,30507,30519,
30521,30526,30533,30542,30547,30549,30554,30556,30575,30577,
30596,30598,30603,30605,30610,30617,30619,30626,30631,30633,
30638,30647,30661,30673,30687,30689,30694,30701,30703,30715,
30717,30722,30724,30729,30731,30757,30759,30764,30766,30773,
30785,30787,30794,30799,30801,30813,30815,30829,30841,30857,
30869,30871,30878,30883,30890,30892,30897,30899,30911,30913,
30925,30934,30939,30941,30946,30967,30983,30995,31009,31011,
31039,31051,31053,31067,31079,31081,31093,31102,31107,31114,
31121,31123,31142,31149,31151,31156,31163,31165,31172,31177,
31193,31198,31205,31207,31214,31219,31221,31235,31247,31249,
31263,31268,31277,31282,31289,31298,31303,31319,31333,31345,
31354,31359,31361,31366,31373,31387,31389,31403,31415,31417,
31429,31431,31445,31459,31466,31471,31478,31487,31492,31501,
31508,31513,31522,31534,31541,31543,31555,31557,31569,31571,
31583,31585,31597,31599,31604,31606,31613,31618,31627,31634,
31641,31646,31653,31667,31669,31676,31683,31690,31709,31711,
31718,31723,31732,31739,31751,31765,31767,31774,31781,31786,
31793,31795,31802,31807,31814,31821,31823,31835,31849,31851,
31865,31870,31886,31891,31893,31907,31919,31921,31933,31942,
31961,31963,31975,31982,31989,31991,32003,32005,32017,32031,
32033,32047,32059,32061,32066,32068,32073,32075,32087,32089,
32101,32117,32122,32129,32138,32143,32159,32171,32173,32187,
32194,32199,32206,32213,32222,32229,32236,32241,32243,32255,
32257,32269,32271,32276,32278,32290,32297,32299,32311,32313,
32327,32339,32341,32348,32353,32367,32369,32374,32381,32397,
32404,32411,32423,32425,32437,32439,32444,32446,32458,32467,
32479,32486,32493,32507,32521,32530,32537,32549,32563,32570,
32577,32579,32593,32605,32607,32614,32621,32633,32635,32642,
32647,32649,32663,32668,32675,32684,32691,32698,32703,32710,
32717,32719,32726,32733,32738,32782,32787,32789,32794,32801,
32803,32815,32817,32822,32829,32831,32836,32843,32845,32866,
32871,32885,32887,32894,32901,32906,32927,32941,32948,32957,
32962,32969,32971,32983,32990,32997,32999,33011,33013,33025,
33027,33039,33041,33053,33062,33069,33074,33076,33081,33083,
33095,33097,33130,33139,33146,33151,33167,33172,33179,33181,
33188,33193,33207,33209,33214,33223,33230,33244,33249,33265,
33277,33279,33298,33305,33307,33314,33326,33347,33349,33361,
33377,33382,33389,33391,33398,33403,33412,33419,33431,33433,
33445,33447,33452,33461,33473,33482,33487,33494,33503,33508,
33515,33517,33529,33531,33543,33545,33557,33559,33571,33578,
33587,33599,33601,33613,33622,33627,33629,33641,33643,33662,
33671,33676,33685,33692,33697,33706,33711,33713,33718,33739,
33746,33753,33767,33769,33783,33788,33797,33802,33809,33811,
33818,33823,33837,33844,33851,33874,33881,33886,33893,33895,
33921,33923,33937,33949,33951,33958,33963,33965,33977,33979,
33986,33991,33998,34007,34019,34033,34042,34049,34054,34061,
34063,34070,34082,34084,34089,34091,34103,34105,34117,34131,
34145,34147,34154,34159,34161,34173,34175,34187,34189,34201,
34217,34231,34243,34252,34259,34273,34285,34287,34292,34301,
34313,34315,34322,34327,34329,34334,34341,34343,34355,34369,
34378,34383,34397,34406,34413,34418,34427,34439,34441,34453,
34462,34467,34469,34483,34490,34495,34497,34509,34511,34516,
34523,34525,34537,34546,34553,34558,34579,34581,34586,34588,
34607,34609,34621,34623,34630,34637,34642,34649,34651,34663,
34670,34677,34679,34693,34721,34733,34735,34747,34754,34756,
34761,34763,34789,34791,34796,34805,34817,34819,34831,34833,
34838,34847,34852,34859,34882,34901,34910,34915,34922,34924,
34929,34964,34966,34971,34978,34985,34987,34994,34999,35001,
35006,35013,35015,35027,35029,35041,35043,35057,35062,35069,
35071,35078,35083,35097,35099,35111,35132,35141,35146,35153,
35155,35162,35183,35195,35197,35209,35218,35223,35225,35239,
35246,35251,35253,35267,35279,35281,35302,35307,35309,35314,
35323,35330,35335,35337,35349,35356,35363,35377,35379,35393,
35407,35414,35419,35421,35426,35435,35447,35449,35461,35463,
35468,35470,35489,35491,35498,35517,35519,35531,35533,35545,
35566,35573,35575,35582,35587,35589,35601,35603,35617,35638,
35643,35645,35671,35678,35692,35701,35727,35729,35741,35743,
35755,35762,35764,35769,35771,35783,35797,35799,35804,35806,
35813,35818,35825,35827,35839,35846,35869,35876,35881,35897,
35909,35911,35918,35923,35930,35951,35953,35965,35974,35979,
35981,35986,35993,35995,36002,36007,36009,36021,36028,36035,
36037,36044,36063,36065,36070,36079,36086,36091,36093,36098,
36107,36119,36133,36147,36149,36154,36161,36170,36175,36177,
36182,36189,36191,36196,36217,36219,36233,36238,36247,36254,
36259,36266,36268,36275,36287,36289,36301,36303,36310,36317,
36329,36331,36338,36343,36357,36359,36364,36371,36373,36385,
36399,36401,36415,36422,36427,36429,36434,36436,36441,36443,
36455,36457,36469,36471,36483,36485,36497,36506,36513,36527,
36532,36539,36541,36548,36553,36574,36581,36583,36590,36597,
36602,36604,36609,36611,36623,36637,36644,36653,36658,36665,
36667,36681,36709,36721,36723,36730,36737,36742,36749,36758,
36770,36779,36791,36793,36807,36812,36814,36819,36821,36826,
36833,36847,36854,36861,36863,36877,36884,36889,36891,36898,
36903,36910,36919,36926,36931,36947,36961,36973,36987,36989,
37001,37003,37010,37022,37029,37031,37043,37057,37059,37073,
37078,37085,37087,37099,37106,37108,37127,37129,37143,37157,
37169,37171,37183,37190,37197,37199,37213,37225,37227,37234,
37239,37253,37255,37274,37276,37283,37295,37309,37311,37318,
37325,37330,37337,37339,37353,37358,37372,37379,37393,37402,
37409,37421,37423,37435,37437,37451,37463,37477,37484,37486,
37491,37493,37498,37507,37514,37519,37533,37535,37547,37549,
37561,37577,37589,37591,37603,37610,37612,37617,37619,37631,
37633,37645,37652,37659,37666,37673,37689,37694,37703,37715,
37717,37724,37731,37738,37745,37757,37759,37766,37771,37799,
37801,37813,37822,37834,37841,37857,37871,37885,37892,37897,
37899,37911,37913,37918,37939,37941,37946,37953,37955,37967,
37981,37983,37988,37997,38002,38009,38011,38018,38023,38030,
38037,38039,38044,38053,38065,38067,38074,38079,38093,38095,
38102,38107,38109,38123,38137,38149,38156,38158,38163,38177,
38179,38186,38219,38221,38242,38249,38261,38275,38277,38282,
38289,38291,38303,38305,38317,38319,38326,38331,38333,38345,
38347,38359,38366,38373,38387,38401,38422,38431,38438,38443,
38452,38457,38459,38471,38473,38487,38492,38494,38501,38513,
38515,38527,38534,38543,38557,38569,38578,38585,38611,38618,
38627,38639,38641,38653,38667,38669,38674,38681,38683,38697,
38702,38711,38716,38723,38725,38737,38746,38751,38758,38765,
38767,38774,38788,38793,38795,38807,38821,38823,38842,38849,
38851,38858,38863,38877,38879,38884,38891,38893,38914,38919,
38921,38926,38933,38942,38949,38954,38956,38963,38975,38977,
38996,39003,39017,39019,39031,39033,39038,39047,39061,39068,
39082,39089,39101,39103,39110,39115,39124,39129,39131,39145,
39157,39164,39166,39171,39178,39187,39194,39199,39201,39206,
39213,39227,39229,39241,39257,39269,39271,39283,39290,39297,
39311,39313,39327,39332,39341,39346,39362,39367,39369,39374,
39381,39383,39395,39397,39404,39409,39418,39423,39430,39439,
39451,39453,39467,39493,39502,39509,39514,39521,39523,39535,
39549,39551,39563,39577,39586,39593,39605,39607,39619,39626,
39628,39633,39635,39649,39661,39670,39677,39682,39691,39698,
39703,39719,39724,39731,39733,39745,39747,39761,39773,39782,
39787,39789,39796,39801,39803,39815,39829,39838,39857,39859,
39873,39887,39892,39899,39901,39922,39927,39929,39941,39943,
39955,39969,39971,39983,39997,39999,40011,40013,40025,40034,
40039,40046,40055,40067,40069,40081,40083,40097,40102,40109,
40111,40123,40130,40137,40151,40153,40167,40179,40181,40193,
40195,40202,40207,40214,40237,40244,40249,40251,40258,40263,
40265,40270,40277,40279,40286,40298,40307,40319,40321,40333,
40342,40347,40349,40354,40361,40382,40389,40396,40403,40405,
40412,40431,40433,40438,40445,40447,40459,40461,40466,40475,
40487,40489,40501,40510,40517,40522,40529,40531,40538,40543,
40557,40559,40564,40585,40594,40601,40606,40613,40615,40622,
40627,40636,40655,40657,40669,40671,40676,40685,40697,40699,
40706,40711,40718,40739,40741,40762,40769,40783,40790,40802,
40811,40823,40839,40844,40853,40867,40874,40879,40881,40886,
40895,40907,40909,40921,40923,40930,40949,40951,40958,40972,
40991,40993,41007,41012,41014,41033,41042,41047,41049,4

 

题目描述
大家都知道回文串吧~ 简单地说就是左右对称的一个串,比如abcba,werrew。小s 对回文串的研究已
经够深刻了,现在她转而研究其他方面的回文,比如,数的回文拆分。对于自然数的拆分,就是把一个
自然数N 用若干个整数之和表示。比如15=1+2+3+4+5=1+2+1+7+1+2+1。那么怎样的拆分才算是回文的
呢?我们用从归纳的角度来定义数的回文拆分。首先一个数A=A 是一个回文拆分。其次,一个自然数
N=A+A 或是N=A+x+A,其中A 是一个回文拆分,x 是任意一个自然数,这两种也是回文拆分。举个例子,
7 的所有回文拆分有7,1+5+1,2+3+2,1+1+3+1+1,3+1+3,1+1+1+1+1+1+1。现在小s 想知道,一个正整数
N 的回文拆分到底有多少种。由于这个数字可能很大,小s 只需要你告诉她答案mod 1,000,000,007 的
值。
输入文件
一行,一个正整数N
输出文件
一行,一个整数M,为N 的回文拆分数mod 1,000,000,007 的值
样例
palin.in
4
palin.out
4
palin.in
20
palin.out
2
60
数据范围
20% 1<=N<=20
60% 1<=N<=1000
100% 1<=N<=100,000

 

var
  f:array[0..300000]of int64;
  i,j,n:longint;
begin
  assign(input,'palin.in');reset(input);
  assign(output,'palin.out');rewrite(output);
  readln(n);
  f[1]:=1;
  f[2]:=2;
  f[3]:=2;
  for i:=4 to n do
    begin
      if (not odd(i)) then f[i]:=(f[i-2]+f[i div 2]) mod 1000000007
      else f[i]:=f[i-1];
    end;
  writeln(f[n]);
  close(input);close(output);
end.

 

题目描述
小s 最近学了最小生成树,不过聪明的小s 显然对简单的求最小生成树不感兴趣。现在小s 想知道,对
于一个给定的图,它的所有生成树中,最大边和最小边的边权差最小是多少。
输入文件
第一行,两个用空格隔开的整数N 和M,分别表示顶点数和边数。
下面M 行,每行3 个数u,v,w,表示u 和v 之间有一条权值为w 的无向边。
输出文件
一行,一个非负整数,表示最大边和最小边的最小边权差。若图本身不联通,则输出-1
样例
span.in
4 5
1 2 3
1 3 5
1 4 6
2 4 6
3 4 7
span.out
1
span.in
2
5 10
1 2 9384
1 3 887
1 4 2778
1 5 6916
2 3 7794
2 4 8336
2 5 5387
3 4 493
3 5 6650
4 5 1422
span.out
1686
数据范围
20% N<=10
100% 2<=N<=100,0<=M<=30

 

program span;
const
  INF=20000000;
type
  node=record
    a,b,w:longint;
  end;
var
  e:array[0..3100] of node;
  fa:array[0..110] of longint;
  i,j,tot,n,m,ans,x,y,start:longint;
function min(a,b:longint):longint;
  begin
    if (a<b) then exit(a) else exit(b);
  end;
procedure swap(var a,b:longint);
  var
    c:longint;
  begin
    c:=a;
    a:=b;
    b:=c;
  end;
procedure sort(l,r:longint);
  var
    i,j,x:longint;
  begin
    i:=l;
    j:=r;
    x:=e[(l+r) shr 1].w;
    repeat
      while (e[i].w<x) do inc(i);
      while (e[j].w>x) do dec(j);
      if (i<=j) then
        begin
          swap(e[i].a,e[j].a);
          swap(e[i].b,e[j].b);
          swap(e[i].w,e[j].w);
          inc(i);
          dec(j);
        end;
    until i>j;
    if (i<r) then sort(i,r);
    if (l<j) then sort(l,j);
  end;
function get(x:longint):longint;
  begin
    if (fa[x]=x) then exit(x);
    fa[x]:=get(fa[x]);
    exit(fa[x]);
  end;
begin
  assign(input,'span.in');reset(input);
  assign(output,'span.out');rewrite(output);
  readln(n,m);
  for i:=1 to m do
    begin
      readln(e[i].a,e[i].b,e[i].w);
    end;
  sort(1,m);
  ans:=INF;
  for i:=1 to m-n+1 do
    begin
      for j:=1 to n do
        fa[j]:=j;
      tot:=0;
      for j:=i to m do
        begin
          x:=get(e[j].a);
          y:=get(e[j].b);
          if (x<>y) then
            begin
              inc(tot);
              fa[x]:=y;
              if (tot=n-1) then ans:=min(ans,e[j].w-e[i].w);
            end;
        end;
    end;
  if (ans=INF) then writeln(-1) else
  writeln(ans);
  close(input);
  close(output);
end.