-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsearch.xml
More file actions
990 lines (571 loc) · 371 KB
/
search.xml
File metadata and controls
990 lines (571 loc) · 371 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
<?xml version="1.0" encoding="utf-8"?>
<search>
<entry>
<title>《4月打卡楼》</title>
<link href="/2019/04/03/%E3%80%8A4%E6%9C%88%E6%89%93%E5%8D%A1%E6%A5%BC%E3%80%8B/"/>
<url>/2019/04/03/%E3%80%8A4%E6%9C%88%E6%89%93%E5%8D%A1%E6%A5%BC%E3%80%8B/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><a href="http://www.adwardx.top/2019/03/04/%E3%80%8A3%E6%9C%88%E6%89%93%E5%8D%A1%E6%A5%BC%E3%80%8B/">前一个打卡楼</a><br><br><a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="2019年4月3日"><a href="#2019年4月3日" class="headerlink" title="2019年4月3日"></a>2019年4月3日</h1><p>从失败的阴影中逐渐走出来,继续弄之前遗留下来的爬虫问题</p></the>]]></content>
<tags>
<tag> 打卡 </tag>
</tags>
</entry>
<entry>
<title>《Tampermonkey插件》第一次制作</title>
<link href="/2019/03/08/%E3%80%8ATampermonkey%E6%8F%92%E4%BB%B6%E3%80%8B%E7%AC%AC%E4%B8%80%E6%AC%A1%E5%88%B6%E4%BD%9C/"/>
<url>/2019/03/08/%E3%80%8ATampermonkey%E6%8F%92%E4%BB%B6%E3%80%8B%E7%AC%AC%E4%B8%80%E6%AC%A1%E5%88%B6%E4%BD%9C/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><a href="http://www.adwardx.top/2019/03/04/%E3%80%8A3%E6%9C%88%E6%89%93%E5%8D%A1%E6%A5%BC%E3%80%8B/">3月打卡楼</a><br><br>这几天也不知道复习了个啥,不过反正我也没闲着,在今天做了个油猴脚本——<a href="https://greasyfork.org/zh-CN/scripts/379413-%E9%9A%8F%E6%84%8F%E7%9C%8B" target="_blank" rel="noopener">随意看</a><br><a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="制作背景"><a href="#制作背景" class="headerlink" title="制作背景"></a>制作背景</h1><p>最近复习很不顺利,没有什么效率。抱着不浪费时间的想法看爬虫视频,并且学了点,爬取了爱奇艺的视频地址。而后突发奇想,之前初学的时候用Flask做过一个微电影管理系统,自己也有一个<a href="https://www.adwardmovie.top" target="_blank" rel="noopener">观看VIP视频的网站</a>,但是网站里面没有什么内容,只能通过复制要看的视频链接地址才能看,加上刚学的爬取地址。想着要不要重新沿用那个管理系统整合一下呢?随着捣鼓了大半天都没什么进展——舍弃。正当我迷茫之际,翻看别人制作的油猴脚本,便心生一计(嘿嘿嘿.jpg)</p><h1 id="主要功能"><a href="#主要功能" class="headerlink" title="主要功能"></a>主要功能</h1><p>不像那个<a href="https://www.adwardmovie.top" target="_blank" rel="noopener">观看VIP视频的网站</a>能解析全网视频,这个脚本是在相应的视频网站通过释放出解析后的路径供选择,之前还想着动修改爱奇艺播放列表链接的主意。经检查后映射出来的链接是<font color="red">base_url</font>,只读属性,没办法。总要做出点成绩蛮,不然一天白忙活了,于是在这套了个<font color="red">极丑无比</font>的table,emmm。虽然丑,但是能用啊。</p><blockquote><p>主要功能:解析爱奇艺VIP视频<br><img src="/images/episode.png" alt="集数"></p></blockquote><h1 id="代码"><a href="#代码" class="headerlink" title="代码"></a>代码</h1><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// ==UserScript==</span></span><br><span class="line"><span class="comment">// @name 随意看</span></span><br><span class="line"><span class="comment">// @namespace http://tampermonkey.net/</span></span><br><span class="line"><span class="comment">// @version 0.1</span></span><br><span class="line"><span class="comment">// @description try to take over the world!</span></span><br><span class="line"><span class="comment">// @author Adward</span></span><br><span class="line"><span class="comment">// @match *://*.iqiyi.com/*</span></span><br><span class="line"><span class="comment">// @require http://cdn.bootcss.com/jquery/1.8.3/jquery.min.js</span></span><br><span class="line"><span class="comment">// @grant none</span></span><br><span class="line"><span class="comment">// ==/UserScript==</span></span><br><span class="line">(<span class="function"><span class="keyword">function</span>(<span class="params"></span>) </span>{</span><br><span class="line"><span class="meta"> 'use strict'</span>;</span><br><span class="line"> <span class="keyword">var</span> jxWebsize = <span class="string">"https://www.adwardmovie.top/?url="</span>;</span><br><span class="line"> <span class="keyword">var</span> video_urls = $(<span class="string">"div[is='i71-playpage-sdrama-list']"</span>).attr(<span class="string">":initialized-data"</span>);</span><br><span class="line"> <span class="keyword">var</span> video_urls_to_json = <span class="built_in">JSON</span>.parse(video_urls); <span class="comment">// 将数组转为json</span></span><br><span class="line"> <span class="keyword">var</span> end_urls = <span class="keyword">new</span> <span class="built_in">Array</span>();<span class="comment">//解析地址集合</span></span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">var</span> p <span class="keyword">in</span> video_urls_to_json){<span class="comment">//遍历json数组</span></span><br><span class="line"> end_urls.push(jxWebsize + video_urls_to_json[p].url);</span><br><span class="line"> }</span><br><span class="line"> <span class="function"><span class="keyword">function</span> <span class="title">createTable</span>(<span class="params"></span>)</span>{</span><br><span class="line"> <span class="keyword">var</span> table = <span class="built_in">document</span>.createElement(<span class="string">'table'</span>);</span><br><span class="line"> <span class="keyword">var</span> tbody = <span class="built_in">document</span>.createElement(<span class="string">'tbody'</span>);</span><br><span class="line"> <span class="keyword">var</span> count = <span class="number">0</span>;</span><br><span class="line"> <span class="keyword">for</span> (<span class="keyword">var</span> i = <span class="number">0</span>; i < <span class="number">4</span>; i++) {</span><br><span class="line"> <span class="keyword">var</span> tr = <span class="built_in">document</span>.createElement(<span class="string">'tr'</span>);</span><br><span class="line"> <span class="keyword">for</span> (<span class="keyword">var</span> j = <span class="number">0</span>; j < end_urls.length / <span class="number">4</span>; j++) {</span><br><span class="line"> <span class="keyword">var</span> td = <span class="built_in">document</span>.createElement(<span class="string">'td'</span>);</span><br><span class="line"> <span class="keyword">var</span> a = <span class="built_in">document</span>.createElement(<span class="string">"a"</span>);</span><br><span class="line"> <span class="keyword">var</span> inner = <span class="built_in">document</span>.createTextNode(<span class="string">"第"</span>+(count+<span class="number">1</span>) +<span class="string">"集"</span>);</span><br><span class="line"> a.appendChild(inner);</span><br><span class="line"> a.setAttribute(<span class="string">"href"</span>, end_urls[count]);</span><br><span class="line"> a.setAttribute(<span class="string">"target"</span>, <span class="string">"_blank"</span>);</span><br><span class="line"> a.style.background = <span class="string">"#FFFFFF"</span>;</span><br><span class="line"> count++;</span><br><span class="line"> td.appendChild(a);</span><br><span class="line"> tr.appendChild(td);</span><br><span class="line"> }</span><br><span class="line"> tbody.appendChild(tr);</span><br><span class="line"> }</span><br><span class="line"> table.appendChild(tbody);</span><br><span class="line"> <span class="built_in">document</span>.getElementById(<span class="string">'block-E'</span>).appendChild(table);</span><br><span class="line"> table.setAttribute(<span class="string">'border'</span>, <span class="string">'1'</span>);</span><br><span class="line"> }</span><br><span class="line"> createTable();</span><br><span class="line">})();</span><br></pre></td></tr></table></figure><h1 id="TODO"><a href="#TODO" class="headerlink" title="TODO"></a>TODO</h1><h2 id="适配列表"><a href="#适配列表" class="headerlink" title="适配列表"></a>适配列表</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// @match *://*.youku.com/*</span></span><br><span class="line"><span class="comment">// @match *://*.le.com/*</span></span><br><span class="line"><span class="comment">// @match *://*.letv.com/*</span></span><br><span class="line"><span class="comment">// @match *://v.qq.com/*</span></span><br><span class="line"><span class="comment">// @match *://*.tudou.com/*</span></span><br><span class="line"><span class="comment">// @match *://*.mgtv.com/*</span></span><br><span class="line"><span class="comment">// @match *://film.sohu.com/*</span></span><br><span class="line"><span class="comment">// @match *://tv.sohu.com/*</span></span><br><span class="line"><span class="comment">// @match *://*.acfun.cn/v/*</span></span><br><span class="line"><span class="comment">// @match *://*.bilibili.com/*</span></span><br><span class="line"><span class="comment">// @match *://vip.1905.com/play/*</span></span><br><span class="line"><span class="comment">// @match *://*.pptv.com/*</span></span><br><span class="line"><span class="comment">// @match *://v.yinyuetai.com/video/*</span></span><br><span class="line"><span class="comment">// @match *://v.yinyuetai.com/playlist/*</span></span><br><span class="line"><span class="comment">// @match *://*.fun.tv/vplay/*</span></span><br><span class="line"><span class="comment">// @match *://*.wasu.cn/Play/show/*</span></span><br><span class="line"><span class="comment">// @match *://*.56.com/*</span></span><br></pre></td></tr></table></figure><h2 id="美化功能"><a href="#美化功能" class="headerlink" title="美化功能"></a>美化功能</h2><h2 id="优化代码"><a href="#优化代码" class="headerlink" title="优化代码"></a>优化代码</h2></the>]]></content>
<categories>
<category> Tampermonkey </category>
</categories>
</entry>
<entry>
<title>《3月打卡楼》</title>
<link href="/2019/03/04/%E3%80%8A3%E6%9C%88%E6%89%93%E5%8D%A1%E6%A5%BC%E3%80%8B/"/>
<url>/2019/03/04/%E3%80%8A3%E6%9C%88%E6%89%93%E5%8D%A1%E6%A5%BC%E3%80%8B/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><a href="http://www.adwardx.top/2019/01/24/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E5%88%B7%E9%A2%98%E6%89%93%E5%8D%A1%E4%B9%8B%E4%B9%99%E7%BA%A7%E7%AF%87/">前一个打卡楼</a><br><br><a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="2019年3月1日"><a href="#2019年3月1日" class="headerlink" title="2019年3月1日"></a>2019年3月1日</h1><p>准备复试第十一天</p><h1 id="2019年3月2日"><a href="#2019年3月2日" class="headerlink" title="2019年3月2日"></a>2019年3月2日</h1><p>准备复试第十二天</p><h1 id="2019年3月3日"><a href="#2019年3月3日" class="headerlink" title="2019年3月3日"></a>2019年3月3日</h1><p>准备复试第十三天</p><h1 id="2019年3月4日"><a href="#2019年3月4日" class="headerlink" title="2019年3月4日"></a>2019年3月4日</h1><p>准备复试第十四天,我有点慌了</p><blockquote><p>趁着今天好好吐槽一下,这些天来的复习感觉没什么效率。虽然每天都在看复试的课本(还不如敲代码呢==),乙级的题也没时间做回顾,也不知道是不是我用的方法不对,都到这地步了,还是再忍忍吧。蠢点就蠢点,只要复试准备好了,就有书读了。</p></blockquote><h1 id="2019年3月5日"><a href="#2019年3月5日" class="headerlink" title="2019年3月5日"></a>2019年3月5日</h1><p>准备复试第十五天</p><h1 id="2019年3月6日"><a href="#2019年3月6日" class="headerlink" title="2019年3月6日"></a>2019年3月6日</h1><p>准备复试第十六天,今天端口被封了几个,还以为出什么大问题了,害得我忙活了大半天</p><h1 id="2019年3月7日"><a href="#2019年3月7日" class="headerlink" title="2019年3月7日"></a>2019年3月7日</h1><p>复习很不顺利的一天</p><h1 id="2019年3月8日"><a href="#2019年3月8日" class="headerlink" title="2019年3月8日"></a>2019年3月8日</h1><p>与其不顺利倒不如充分利用时间,今天对网站进行了点修改,同时制作了一个油猴插件</p><h1 id="2019年3月9日"><a href="#2019年3月9日" class="headerlink" title="2019年3月9日"></a>2019年3月9日</h1><p>准备复试</p><h1 id="2019年3月10日"><a href="#2019年3月10日" class="headerlink" title="2019年3月10日"></a>2019年3月10日</h1><p>准备复试</p><h1 id="2019年3月11日"><a href="#2019年3月11日" class="headerlink" title="2019年3月11日"></a>2019年3月11日</h1><p>准备复试</p><h1 id="2019年3月12日"><a href="#2019年3月12日" class="headerlink" title="2019年3月12日"></a>2019年3月12日</h1><p>刷操作系统的题</p><h1 id="2019年3月13日"><a href="#2019年3月13日" class="headerlink" title="2019年3月13日"></a>2019年3月13日</h1><p>刷操作系统的题<br><br>手贱,在闲下来的时候又开始搞脚本了,结果今天好像没进展==</p><h1 id="2019年3月14日"><a href="#2019年3月14日" class="headerlink" title="2019年3月14日"></a>2019年3月14日</h1><p>准备复试</p><h1 id="2019年3月15日"><a href="#2019年3月15日" class="headerlink" title="2019年3月15日"></a>2019年3月15日</h1><p>国家线下午出来了,看了下群里高分的也不少,唉,懊恼自己考得很差。不过还是不能放弃,我没有准备后路找调剂,看能不能过院线吧==</p><h1 id="2019年3月16日"><a href="#2019年3月16日" class="headerlink" title="2019年3月16日"></a>2019年3月16日</h1><p>复习复习复习</p><h1 id="2019年3月17日"><a href="#2019年3月17日" class="headerlink" title="2019年3月17日"></a>2019年3月17日</h1><p>复习,等分数线</p><h1 id="2019年3月18日"><a href="#2019年3月18日" class="headerlink" title="2019年3月18日"></a>2019年3月18日</h1><p>操作系统刷题中<br><br>软件工程背概念中<br><br>明天估计要出复试要求了,开心</p><h1 id="2019年3月19日"><a href="#2019年3月19日" class="headerlink" title="2019年3月19日"></a>2019年3月19日</h1><p>软工日常看了就忘,emmm,不过我不会放弃的。希望复试名单里面有我!!!</p><h1 id="2019年3月20日"><a href="#2019年3月20日" class="headerlink" title="2019年3月20日"></a>2019年3月20日</h1><p>操作系统背了几个概念题,刷了一些计算题,看了会软工</p><h1 id="2019年3月21日"><a href="#2019年3月21日" class="headerlink" title="2019年3月21日"></a>2019年3月21日</h1><p>为口语面试,专业面试做准备中(我好菜啊.jpg)</p></the>]]></content>
<tags>
<tag> 考研 </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1035题</title>
<link href="/2019/02/12/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1035%E9%A2%98/"/>
<url>/2019/02/12/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1035%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><a href="http://www.adwardx.top/2019/01/24/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E5%88%B7%E9%A2%98%E6%89%93%E5%8D%A1%E4%B9%8B%E4%B9%99%E7%BA%A7%E7%AF%87/#2019%E5%B9%B42%E6%9C%885%E6%97%A5">打卡文</a><br><a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>根据维基百科的定义:</p><p><strong>插入排序</strong>是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。</p><p><strong>归并排序</strong>进行如下迭代操作:首先将原始序列看成 N 个只包含 1 个元素的有序子序列,然后每次迭代归并两个相邻的有序子序列,直到最后只剩下 1 个有序的序列。</p><p>现给定原始序列和由某排序算法产生的中间序列,请你判断该算法究竟是哪种排序算法?</p><p><strong>输入格式:</strong></p><p>输入在第一行给出正整数 N (≤100);随后一行给出原始序列的 N 个整数;最后一行给出由某排序算法产生的中间序列。这里假设排序的目标序列是升序。数字间以空格分隔。</p><p><strong>输出格式:</strong></p><p>首先在第 1 行中输出Insertion Sort表示插入排序、或Merge Sort表示归并排序;然后在第 2 行中输出用该排序算法再迭代一轮的结果序列。题目保证每组测试的结果是唯一的。数字间以空格分隔,且行首尾不得有多余空格。</p><p><strong>输入样例 1:</strong></p><pre>103 1 2 8 7 5 9 4 6 01 2 3 7 8 5 9 4 6 0</pre><p><strong>输出样例 1:</strong></p><pre>Insertion Sort1 2 3 5 7 8 9 4 6 0</pre><p><strong>输入样例 2:</strong></p><pre>103 1 2 8 7 5 9 4 0 61 3 2 8 5 7 4 9 0 6</pre><p><strong>输出样例 2:</strong></p><pre>Merge Sort1 2 3 8 4 5 7 9 0 6</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><iostream></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><algorithm></span></span></span><br><span class="line"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="built_in">std</span>;</span><br><span class="line"><span class="keyword">int</span> n;</span><br><span class="line"><span class="function"><span class="keyword">void</span> <span class="title">insort</span><span class="params">(<span class="keyword">int</span> a[], <span class="keyword">int</span> b[])</span> </span>{</span><br><span class="line"><span class="keyword">int</span> key = <span class="number">0</span>; <span class="comment">//当匹配到中间序列时,key置1,下次排序后输出,结束程序就行</span></span><br><span class="line"><span class="keyword">for</span> (<span class="keyword">int</span> i = <span class="number">2</span>; i <= n; i++) {<span class="comment">//插入排序起始为2,结束为n,否则测试点2不通过</span></span><br><span class="line">sort(a, a + i);</span><br><span class="line"><span class="keyword">if</span> (key) {</span><br><span class="line"><span class="built_in">cout</span> << <span class="string">"Insertion Sort"</span> << <span class="built_in">endl</span>;</span><br><span class="line"><span class="built_in">cout</span> << a[<span class="number">0</span>];</span><br><span class="line"><span class="keyword">for</span> (<span class="keyword">int</span> j = <span class="number">1</span>; j < n; j++)</span><br><span class="line"><span class="built_in">cout</span> << <span class="string">" "</span> << a[j];</span><br><span class="line"><span class="keyword">return</span>;</span><br><span class="line">}</span><br><span class="line"><span class="keyword">if</span> (equal(a, a + n, b)) <span class="comment">//equal是一个比较数组的函数</span></span><br><span class="line">key = <span class="number">1</span>;</span><br><span class="line">}</span><br><span class="line">}</span><br><span class="line"><span class="function"><span class="keyword">void</span> <span class="title">mesort</span><span class="params">(<span class="keyword">int</span> a[], <span class="keyword">int</span> b[])</span> </span>{</span><br><span class="line"><span class="keyword">int</span> key = <span class="number">0</span>;</span><br><span class="line"><span class="keyword">for</span> (<span class="keyword">int</span> i = <span class="number">2</span>;; i *= <span class="number">2</span>) { <span class="comment">//这里不给结束条件,是因为当i>n时还要进行一次排序</span></span><br><span class="line"><span class="keyword">for</span> (<span class="keyword">int</span> j = <span class="number">0</span>; j < n; j += i) {</span><br><span class="line">sort(a + j, a + (j + i < n ? j + i : n)); <span class="comment">//注意确定边界</span></span><br><span class="line">}</span><br><span class="line"><span class="keyword">if</span> (key) {</span><br><span class="line"><span class="built_in">cout</span> << <span class="string">"Merge Sort"</span> << <span class="built_in">endl</span>;</span><br><span class="line"><span class="built_in">cout</span> << a[<span class="number">0</span>];</span><br><span class="line"><span class="keyword">for</span> (<span class="keyword">int</span> j = <span class="number">1</span>; j < n; j++)</span><br><span class="line"><span class="built_in">cout</span> << <span class="string">" "</span> << a[j];</span><br><span class="line"><span class="keyword">return</span>;</span><br><span class="line">}</span><br><span class="line"><span class="keyword">if</span> (equal(a, a + n, b))</span><br><span class="line">key = <span class="number">1</span>;</span><br><span class="line"><span class="keyword">if</span> (i > n)</span><br><span class="line"><span class="keyword">break</span>;</span><br><span class="line"> </span><br><span class="line">}</span><br><span class="line">}</span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span> </span>{</span><br><span class="line"><span class="built_in">cin</span> >> n;</span><br><span class="line"><span class="keyword">int</span> a1[<span class="number">100</span>], a2[<span class="number">100</span>], b[<span class="number">100</span>];</span><br><span class="line"><span class="keyword">for</span> (<span class="keyword">int</span> i = <span class="number">0</span>; i < n; i++) {</span><br><span class="line"><span class="built_in">cin</span> >> a1[i];</span><br><span class="line">a2[i] = a1[i];</span><br><span class="line">}</span><br><span class="line"><span class="keyword">for</span> (<span class="keyword">int</span> i = <span class="number">0</span>; i < n; i++)</span><br><span class="line"><span class="built_in">cin</span> >> b[i];</span><br><span class="line">insort(a2, b);</span><br><span class="line">mesort(a1, b);</span><br><span class="line"><span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="分析"><a href="#分析" class="headerlink" title="分析"></a>分析</h1><p>本题一拿到手是没有任何思路的,经过观察网友代码后才看懂。这个题之后再刷一遍。</p><h2 id="新知识"><a href="#新知识" class="headerlink" title="新知识"></a>新知识</h2><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">equal(a, a + n, b);</span><br><span class="line"><span class="comment">//将a数组与b数组进行比较,如果是vector容器,则为:a.begin(), a.end()</span></span><br></pre></td></tr></table></figure></the>]]></content>
<categories>
<category> 拼题A </category>
</categories>
<tags>
<tag> PTA </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1034题</title>
<link href="/2019/02/12/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1034%E9%A2%98/"/>
<url>/2019/02/12/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1034%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><a href="http://www.adwardx.top/2019/01/24/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E5%88%B7%E9%A2%98%E6%89%93%E5%8D%A1%E4%B9%8B%E4%B9%99%E7%BA%A7%E7%AF%87/#2019%E5%B9%B42%E6%9C%885%E6%97%A5">打卡文</a><br><a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>本题要求编写程序,计算 2 个有理数的和、差、积、商。</p><p><strong>输入格式:</strong></p><p>输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为 0。</p><p><strong>输出格式:</strong></p><p>分别在 4 行中按照 有理数1 运算符 有理数2 = 结果 的格式顺序输出 2 个有理数的和、差、积、商。注意输出的每个有理数必须是该有理数的最简形式 k a/b,其中 k 是整数部分,a/b 是最简分数部分;若为负数,则须加括号;若除法分母为 0,则输出 Inf。题目保证正确的输出中没有超过整型范围的整数。</p><p><strong>输入样例 1:</strong></p><pre>2/3 -4/2</pre><p><strong>输出样例 1:</strong></p><pre>2/3 + (-2) = (-1 1/3)2/3 - (-2) = 2 2/32/3 * (-2) = (-1 1/3)2/3 / (-2) = (-1/3)</pre><p><strong>输入样例 2:</strong></p><pre>5/3 0/6</pre><p><strong>输出样例 2:</strong></p><pre>1 2/3 + 0 = 1 2/31 2/3 - 0 = 1 2/31 2/3 * 0 = 01 2/3 / 0 = Inf</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><iostream></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><cmath></span></span></span><br><span class="line"></span><br><span class="line"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="built_in">std</span>;</span><br><span class="line"></span><br><span class="line"><span class="comment">//辗转相除法</span></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">gcd</span><span class="params">(<span class="keyword">long</span> <span class="keyword">long</span> a, <span class="keyword">long</span> <span class="keyword">long</span> b)</span></span>{</span><br><span class="line"> <span class="keyword">return</span> b == <span class="number">0</span> ? a : gcd(b, a % b);</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">void</span> <span class="title">print</span><span class="params">(<span class="keyword">long</span> <span class="keyword">long</span> a, <span class="keyword">long</span> <span class="keyword">long</span> b)</span></span>{</span><br><span class="line"> <span class="keyword">long</span> <span class="keyword">long</span> c = <span class="number">0</span>; <span class="comment">//带分数前面的整数部分,默认是0</span></span><br><span class="line"> <span class="keyword">if</span>(a > <span class="number">0</span>){ <span class="comment">//正数</span></span><br><span class="line"> <span class="keyword">if</span>(b == <span class="number">1</span>){ <span class="comment">//形如3/1</span></span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%lld"</span>, a);</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">else</span> <span class="keyword">if</span>(a > b){ <span class="comment">//形如5/3</span></span><br><span class="line"> c = a / b;</span><br><span class="line"> a -= b * c;</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%lld %lld/%lld"</span>, c, a, b);</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">else</span>{ <span class="comment">//真分数 形如3/5</span></span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%lld/%lld"</span>, a, b);</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">else</span> <span class="keyword">if</span>(a == <span class="number">0</span>){ <span class="comment">//形如0/3</span></span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%c"</span>, <span class="string">'0'</span>);</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">else</span>{ <span class="comment">//负数</span></span><br><span class="line"> <span class="keyword">if</span>(b == <span class="number">1</span>){ <span class="comment">//形如-3/1</span></span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"(%lld)"</span>, a);</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">else</span> <span class="keyword">if</span>(<span class="number">-1</span> * a > b){ <span class="comment">//形如-5/3</span></span><br><span class="line"> c = a / b;</span><br><span class="line"> a = (<span class="number">-1</span> * a) % b;</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"(%lld %lld/%lld)"</span>, c, a, b);</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">else</span>{ <span class="comment">//真分数</span></span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"(%lld/%lld)"</span>, a, b);</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">void</span> <span class="title">add</span><span class="params">(<span class="keyword">long</span> <span class="keyword">long</span> a1, <span class="keyword">long</span> <span class="keyword">long</span> b1, <span class="keyword">long</span> <span class="keyword">long</span> a2, <span class="keyword">long</span> <span class="keyword">long</span> b2)</span></span>{</span><br><span class="line"> print(a1, b1);</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">" + "</span>);</span><br><span class="line"> print(a2, b2);</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">" = "</span>);</span><br><span class="line"> <span class="keyword">long</span> <span class="keyword">long</span> a3 = a1 * b2 + a2 * b1;</span><br><span class="line"> <span class="keyword">long</span> <span class="keyword">long</span> b3 = b1 * b2;</span><br><span class="line"> <span class="comment">//化简到最简形式,非带分数形式</span></span><br><span class="line"> <span class="keyword">long</span> <span class="keyword">long</span> gcd3 = <span class="built_in">abs</span>(gcd(a3, b3));</span><br><span class="line"> a3 /= gcd3;</span><br><span class="line"> b3 /= gcd3;</span><br><span class="line"> print(a3, b3);</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"\n"</span>);</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">void</span> <span class="title">subtract</span><span class="params">(<span class="keyword">long</span> <span class="keyword">long</span> a1, <span class="keyword">long</span> <span class="keyword">long</span> b1, <span class="keyword">long</span> <span class="keyword">long</span> a2, <span class="keyword">long</span> <span class="keyword">long</span> b2)</span></span>{</span><br><span class="line"> print(a1, b1);</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">" - "</span>);</span><br><span class="line"> print(a2, b2);</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">" = "</span>);</span><br><span class="line"> <span class="keyword">long</span> <span class="keyword">long</span> a3 = a1 * b2 - a2 * b1;</span><br><span class="line"> <span class="keyword">long</span> <span class="keyword">long</span> b3 = b1 * b2;</span><br><span class="line"> <span class="comment">//化简到最简形式,非带分数形式</span></span><br><span class="line"> <span class="keyword">long</span> <span class="keyword">long</span> gcd3 = <span class="built_in">abs</span>(gcd(a3, b3));</span><br><span class="line"> a3 /= gcd3;</span><br><span class="line"> b3 /= gcd3;</span><br><span class="line"> print(a3, b3);</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"\n"</span>);</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">void</span> <span class="title">multiply</span><span class="params">(<span class="keyword">long</span> <span class="keyword">long</span> a1, <span class="keyword">long</span> <span class="keyword">long</span> b1, <span class="keyword">long</span> <span class="keyword">long</span> a2, <span class="keyword">long</span> <span class="keyword">long</span> b2)</span></span>{</span><br><span class="line"> print(a1, b1);</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">" * "</span>);</span><br><span class="line"> print(a2, b2);</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">" = "</span>);</span><br><span class="line"> <span class="keyword">long</span> <span class="keyword">long</span> a3 = a1 * a2;</span><br><span class="line"> <span class="keyword">long</span> <span class="keyword">long</span> b3 = b1 * b2;</span><br><span class="line"> <span class="comment">//化简到最简形式,非带分数形式</span></span><br><span class="line"> <span class="keyword">long</span> <span class="keyword">long</span> gcd3 = <span class="built_in">abs</span>(gcd(a3, b3));</span><br><span class="line"> a3 /= gcd3;</span><br><span class="line"> b3 /= gcd3;</span><br><span class="line"> print(a3, b3);</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"\n"</span>);</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">void</span> <span class="title">divide</span><span class="params">(<span class="keyword">long</span> <span class="keyword">long</span> a1, <span class="keyword">long</span> <span class="keyword">long</span> b1, <span class="keyword">long</span> <span class="keyword">long</span> a2, <span class="keyword">long</span> <span class="keyword">long</span> b2)</span></span>{</span><br><span class="line"> print(a1, b1);</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">" / "</span>);</span><br><span class="line"> print(a2, b2);</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">" = "</span>);</span><br><span class="line"> <span class="keyword">if</span>(a2 == <span class="number">0</span>){</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"Inf"</span>);</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">else</span> <span class="keyword">if</span>(a2 < <span class="number">0</span>){</span><br><span class="line"> <span class="keyword">long</span> <span class="keyword">long</span> a3 = <span class="number">-1</span> * a1 * b2;</span><br><span class="line"> <span class="keyword">long</span> <span class="keyword">long</span> b3 = <span class="number">-1</span> * b1 * a2;</span><br><span class="line"> <span class="comment">//化简到最简形式,非带分数形式</span></span><br><span class="line"> <span class="keyword">long</span> <span class="keyword">long</span> gcd3 = <span class="built_in">abs</span>(gcd(a3, b3));</span><br><span class="line"> a3 /= gcd3;</span><br><span class="line"> b3 /= gcd3;</span><br><span class="line"> print(a3, b3);</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">else</span>{</span><br><span class="line"> <span class="keyword">long</span> <span class="keyword">long</span> a3 = a1 * b2;</span><br><span class="line"> <span class="keyword">long</span> <span class="keyword">long</span> b3 = b1 * a2;</span><br><span class="line"> <span class="comment">//化简到最简形式,非带分数形式</span></span><br><span class="line"> <span class="keyword">long</span> <span class="keyword">long</span> gcd3 = <span class="built_in">abs</span>(gcd(a3, b3));</span><br><span class="line"> a3 /= gcd3;</span><br><span class="line"> b3 /= gcd3;</span><br><span class="line"> print(a3, b3);</span><br><span class="line"> }</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"\n"</span>);</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span>{</span><br><span class="line"> <span class="keyword">long</span> <span class="keyword">long</span> a1, b1, a2, b2;</span><br><span class="line"> <span class="keyword">long</span> <span class="keyword">long</span> c1 = <span class="number">0</span>, c2 = <span class="number">0</span>;</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%lld/%lld %lld/%lld"</span>, &a1, &b1, &a2, &b2);</span><br><span class="line"> <span class="comment">//先化简到最简形式,非带分数形式</span></span><br><span class="line"> <span class="keyword">long</span> <span class="keyword">long</span> gcd1 = <span class="built_in">abs</span>(gcd(a1, b1));</span><br><span class="line"> a1 /= gcd1;</span><br><span class="line"> b1 /= gcd1;</span><br><span class="line"> <span class="keyword">long</span> <span class="keyword">long</span> gcd2 = <span class="built_in">abs</span>(gcd(a2, b2));</span><br><span class="line"> a2 /= gcd2;</span><br><span class="line"> b2 /= gcd2;</span><br><span class="line"> <span class="comment">//统一用最简形式参与运算</span></span><br><span class="line"> add(a1, b1, a2, b2);</span><br><span class="line"> subtract(a1, b1, a2, b2);</span><br><span class="line"> multiply(a1, b1, a2, b2);</span><br><span class="line"> divide(a1, b1, a2, b2);</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="分析"><a href="#分析" class="headerlink" title="分析"></a>分析</h1><p>此代码条理清晰,通俗易懂。有情况是我当时做的时候没有考虑到的,值得学习。之后再刷一遍</p></the>]]></content>
<categories>
<category> 拼题A </category>
</categories>
<tags>
<tag> PTA </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1025题</title>
<link href="/2019/02/12/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1025%E9%A2%98/"/>
<url>/2019/02/12/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1025%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><a href="http://www.adwardx.top/2019/01/24/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E5%88%B7%E9%A2%98%E6%89%93%E5%8D%A1%E4%B9%8B%E4%B9%99%E7%BA%A7%E7%AF%87/#2019%E5%B9%B42%E6%9C%885%E6%97%A5">打卡文</a><br><a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转。例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4;如果 K 为 4,则输出应该为 4→3→2→1→5→6,即最后不到 K 个元素不反转。</p><p><strong>输入格式:</strong></p><p>每个输入包含 1 个测试用例。每个测试用例第 1 行给出第 1 个结点的地址、结点总个数正整数 N (≤10<sup>5</sup>)、以及正整数 K (≤N),即要求反转的子链结点的个数。结点的地址是 5 位非负整数,NULL 地址用 −1 表示。</p><p>接下来有 N 行,每行格式为:</p><pre>Address Data Next</pre>其中 <strong>Address</strong> 是结点地址,<strong>Data</strong> 是该结点保存的整数数据,<strong>Next</strong> 是下一结点的地址。<br><br><strong>输出格式:</strong><br>对每个测试用例,顺序输出反转后的链表,其上每个结点占一行,格式与输入相同。<br><br><strong>输入样例:</strong><pre>00100 6 400000 4 9999900100 1 1230968237 6 -133218 3 0000099999 5 6823712309 2 33218</pre><p><strong>输出样例:</strong></p><pre>00000 4 3321833218 3 1230912309 2 0010000100 1 9999999999 5 6823768237 6 -1</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><cstdio></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><algorithm></span></span></span><br><span class="line"></span><br><span class="line"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="built_in">std</span>;</span><br><span class="line"></span><br><span class="line"><span class="keyword">const</span> <span class="keyword">int</span> maxn = <span class="number">100010</span>;</span><br><span class="line"></span><br><span class="line"><span class="class"><span class="keyword">struct</span> <span class="title">Node</span>{</span></span><br><span class="line"><span class="keyword">int</span> address, data, next;</span><br><span class="line"><span class="keyword">int</span> order;</span><br><span class="line">}node[maxn];</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">bool</span> <span class="title">cmp</span><span class="params">(Node a, Node b)</span></span>{</span><br><span class="line"><span class="keyword">return</span> a.order < b.order;</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span>{</span><br><span class="line"><span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < maxn; ++i)node[i].order = maxn;</span><br><span class="line"><span class="keyword">int</span> begin, n, K, address;</span><br><span class="line"><span class="built_in">scanf</span>(<span class="string">"%d %d %d"</span>, &begin, &n, &K);</span><br><span class="line"><span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < n; ++i){</span><br><span class="line"><span class="built_in">scanf</span>(<span class="string">"%d"</span>, &address);</span><br><span class="line"><span class="built_in">scanf</span>(<span class="string">"%d %d"</span>, &node[address].data, &node[address].next);</span><br><span class="line">node[address].address = address;</span><br><span class="line">}</span><br><span class="line"><span class="keyword">int</span> p = begin, count = <span class="number">0</span>;</span><br><span class="line"><span class="keyword">while</span>(p != <span class="number">-1</span>){</span><br><span class="line">node[p].order = count++;</span><br><span class="line">p = node[p].next;</span><br><span class="line">}</span><br><span class="line">sort(node, node + maxn, cmp);</span><br><span class="line">n = count;</span><br><span class="line"><span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < n / K; ++i){</span><br><span class="line"><span class="keyword">for</span>(<span class="keyword">int</span> j = (i + <span class="number">1</span>) * K - <span class="number">1</span>; j > i * K; --j){</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">"%05d %d %05d\n"</span>, node[j].address, node[j].data, node[j - <span class="number">1</span>].address);</span><br><span class="line">}</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">"%05d %d "</span>, node[i * K].address, node[i * K].data);</span><br><span class="line"><span class="keyword">if</span>(i < n / K - <span class="number">1</span>)<span class="built_in">printf</span>(<span class="string">"%05d\n"</span>, node[(i + <span class="number">2</span>) * K - <span class="number">1</span>].address);</span><br><span class="line"><span class="keyword">else</span>{</span><br><span class="line"><span class="keyword">if</span>(n % K == <span class="number">0</span>)<span class="built_in">printf</span>(<span class="string">"-1\n"</span>);</span><br><span class="line"><span class="keyword">else</span>{</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">"%05d\n"</span>, node[(i + <span class="number">1</span>) * K].address);</span><br><span class="line"><span class="keyword">for</span>(<span class="keyword">int</span> i = n / K * K; i < n; ++i){</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">"%05d %d "</span>, node[i].address, node[i].data);</span><br><span class="line"><span class="keyword">if</span>(i < n - <span class="number">1</span>)<span class="built_in">printf</span>(<span class="string">"%05d\n"</span>, node[i + <span class="number">1</span>].address);</span><br><span class="line"><span class="keyword">else</span><span class="built_in">printf</span>(<span class="string">"-1\n"</span>);</span><br><span class="line">}</span><br><span class="line">}</span><br><span class="line">}</span><br><span class="line">}</span><br><span class="line"><span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="分析"><a href="#分析" class="headerlink" title="分析"></a>分析</h1><p>之前尝试过自己写,后来实在是做不出来,故将算法笔记上的标准答案给写上来了。虽然还是有点看得懵逼==</p><h2 id="新知识"><a href="#新知识" class="headerlink" title="新知识"></a>新知识</h2><blockquote><p>此前用map时,将结构体作为key,赋值时为:</p></blockquote><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">typedef</span> <span class="class"><span class="keyword">struct</span> <span class="title">node</span>{</span></span><br><span class="line"><span class="keyword">int</span> address, data;</span><br><span class="line"></span><br><span class="line"><span class="keyword">bool</span> <span class="keyword">operator</span>< (<span class="keyword">const</span> node &x) <span class="keyword">const</span>{</span><br><span class="line"><span class="keyword">return</span> data < x.data;</span><br><span class="line">}<span class="comment">//一定要复写,因为map根据key排序</span></span><br><span class="line">}node;</span><br><span class="line"></span><br><span class="line">......</span><br><span class="line"></span><br><span class="line"><span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < N; ++i){</span><br><span class="line"><span class="keyword">int</span> tempad, tempdata, tempnext;</span><br><span class="line"><span class="built_in">scanf</span>(<span class="string">"%d %d %d"</span>, &tempad, &tempdata, &tempnext);</span><br><span class="line">node temp = {tempad, tempdata};<span class="comment">//node类型初始化</span></span><br><span class="line">maplink[temp] = tempnext;<span class="comment">//键值对</span></span><br><span class="line">}</span><br></pre></td></tr></table></figure><blockquote><p>随后见到了auto关键字,使用方法为:</p></blockquote><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">for</span>(<span class="keyword">auto</span> &v : maplink){</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">"%05d %d %05d\n"</span>, v.first.address, v.first.data, v.second);</span><br><span class="line">}</span><br></pre></td></tr></table></figure><p>这个题对现阶段的我来说有点难,不知道还能不能做得出来</p></the>]]></content>
<categories>
<category> 拼题A </category>
</categories>
<tags>
<tag> PTA </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1085题</title>
<link href="/2019/02/11/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1085%E9%A2%98/"/>
<url>/2019/02/11/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1085%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><a href="http://www.adwardx.top/2019/01/24/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E5%88%B7%E9%A2%98%E6%89%93%E5%8D%A1%E4%B9%8B%E4%B9%99%E7%BA%A7%E7%AF%87/#2019%E5%B9%B42%E6%9C%885%E6%97%A5">打卡文</a><br><a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>每次 PAT 考试结束后,考试中心都会发布一个考生单位排行榜。本题就请你实现这个功能。</p><p><strong>输入格式:</strong></p><p>输入第一行给出一个正整数 N(≤10<sup>5</sup>),即考生人数。随后 N 行,每行按下列格式给出一个考生的信息:</p><pre>准考证号 得分 学校</pre>其中<strong>准考证号</strong>是由 6 个字符组成的字符串,其首字母表示考试的级别:B代表乙级,A代表甲级,T代表顶级;<strong>得分</strong>是 [0, 100] 区间内的整数;<strong>学校</strong>是由不超过 6 个英文字母组成的单位码(大小写无关)。注意:题目保证每个考生的准考证号是不同的。<br><br><strong>输出格式:</strong>首先在一行中输出单位个数。随后按以下格式非降序输出单位的排行榜:<pre>排名 学校 加权总分 考生人数</pre>其中<strong>排名</strong>是该单位的排名(从 1 开始);<strong>学校</strong>是全部按小写字母输出的单位码;<strong>加权总分</strong>定义为<strong>乙级总分/1.5 + 甲级总分 + 顶级总分*1.5</strong>的<strong>整数部分</strong>;<strong>考生人数</strong>是该属于单位的考生的总人数。<br>学校首先按加权总分排行。如有并列,则应对应相同的排名,并按考生人数升序输出。如果仍然并列,则按单位码的字典序输出。<br><br><strong>输入样例:</strong><pre>10A57908 85 AuB57908 54 LanXA37487 60 auT28374 67 CMUT32486 24 hypuA66734 92 cmuB76378 71 AUA47780 45 lanxA72809 100 pkuA03274 45 hypu</pre><p><strong>输出样例:</strong></p><pre>51 cmu 192 21 au 192 33 pku 100 14 hypu 81 24 lanx 81 2</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><iostream></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><string></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><map></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><vector></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><algorithm></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><cmath></span></span></span><br><span class="line"></span><br><span class="line"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="built_in">std</span>;</span><br><span class="line"></span><br><span class="line"><span class="keyword">typedef</span> <span class="class"><span class="keyword">struct</span> <span class="title">node</span></span></span><br><span class="line"><span class="class">{</span></span><br><span class="line"> <span class="keyword">int</span> order;</span><br><span class="line"> <span class="keyword">int</span> num = <span class="number">0</span>;</span><br><span class="line"> <span class="keyword">double</span> score = <span class="number">0</span>;</span><br><span class="line">}node;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">bool</span> <span class="title">cmp</span><span class="params">(pair<<span class="built_in">string</span>, node> a, pair<<span class="built_in">string</span>, node> b)</span></span></span><br><span class="line"><span class="function"></span>{</span><br><span class="line"> <span class="keyword">if</span>(<span class="built_in">floor</span>(a.second.score) == <span class="built_in">floor</span>(b.second.score))</span><br><span class="line"> {</span><br><span class="line"> <span class="keyword">if</span>(a.second.num == b.second.num)</span><br><span class="line"> <span class="keyword">return</span> a.first < b.first;</span><br><span class="line"> <span class="keyword">else</span></span><br><span class="line"> <span class="keyword">return</span> a.second.num < b.second.num;</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">else</span></span><br><span class="line"> <span class="keyword">return</span> a.second.score > b.second.score;</span><br><span class="line">}</span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span></span><br><span class="line"><span class="function"></span>{</span><br><span class="line"> <span class="keyword">int</span> n, i;</span><br><span class="line"> <span class="built_in">map</span><<span class="built_in">string</span>, node> school;</span><br><span class="line"> <span class="built_in">string</span> in;</span><br><span class="line"> <span class="built_in">cin</span> >> n;</span><br><span class="line"> <span class="built_in">cin</span>.get();</span><br><span class="line"> <span class="keyword">for</span>(i = <span class="number">0</span>; i < n; i++)</span><br><span class="line"> {</span><br><span class="line"> getline(<span class="built_in">cin</span>, in);</span><br><span class="line"> <span class="keyword">double</span> score = stoi(in.substr(<span class="number">7</span>, in.find_last_of(<span class="string">" "</span>)));</span><br><span class="line"> <span class="built_in">string</span> sn = in.substr(in.find_last_of(<span class="string">" "</span>) + <span class="number">1</span>);</span><br><span class="line"> transform(sn.begin(), sn.end(), sn.begin(), ::<span class="built_in">tolower</span>);</span><br><span class="line"> school[sn].num++;</span><br><span class="line"> <span class="keyword">if</span>(in[<span class="number">0</span>] == <span class="string">'A'</span>)</span><br><span class="line"> school[sn].score += score;</span><br><span class="line"> <span class="keyword">else</span> <span class="keyword">if</span>(in[<span class="number">0</span>] == <span class="string">'B'</span>)</span><br><span class="line"> school[sn].score += score / <span class="number">1.5</span>;</span><br><span class="line"> <span class="keyword">else</span></span><br><span class="line"> school[sn].score += score * <span class="number">1.5</span>;</span><br><span class="line"> }</span><br><span class="line"> <span class="built_in">vector</span><pair<<span class="built_in">string</span>, node>> v(school.begin(), school.end());</span><br><span class="line"> sort(v.begin(), v.end(), cmp);</span><br><span class="line"> v[<span class="number">0</span>].second.order = <span class="number">1</span>;</span><br><span class="line"> <span class="built_in">cout</span> << v.size() << <span class="built_in">endl</span> << v[<span class="number">0</span>].second.order << <span class="string">" "</span> << v[<span class="number">0</span>].first << <span class="string">" "</span> << (<span class="keyword">int</span>)<span class="built_in">floor</span>(v[<span class="number">0</span>].second.score) << <span class="string">" "</span> << v[<span class="number">0</span>].second.num << <span class="built_in">endl</span>;</span><br><span class="line"> <span class="keyword">for</span>(i = <span class="number">1</span>; i < v.size(); i++)</span><br><span class="line"> {</span><br><span class="line"> <span class="keyword">if</span>(<span class="built_in">floor</span>(v[i].second.score) == <span class="built_in">floor</span>(v[i - <span class="number">1</span>].second.score))</span><br><span class="line"> v[i].second.order = v[i - <span class="number">1</span>].second.order;</span><br><span class="line"> <span class="keyword">else</span></span><br><span class="line"> v[i].second.order = i + <span class="number">1</span>;</span><br><span class="line"> <span class="built_in">cout</span> << v[i].second.order << <span class="string">" "</span> << v[i].first << <span class="string">" "</span> << (<span class="keyword">int</span>)<span class="built_in">floor</span>(v[i].second.score) << <span class="string">" "</span> << v[i].second.num << <span class="built_in">endl</span>;</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="分析"><a href="#分析" class="headerlink" title="分析"></a>分析</h1><h2 id="新知识"><a href="#新知识" class="headerlink" title="新知识"></a>新知识</h2><p>本题用map,vector容器,其中,要对分数进行排序,故在vector中使用pair<>,将map的内容传进去按照题目要求进行排序。而pair<>中也使用了结构体作为对象,故在调用时应为vectorname.second.structItem。<br><br>不仅如此,还使用了string的多种方法。比如<font color="red">find_last_of(),<br>substr(), stoi()</font>。还有,为了将学校名称转为小写,还使用了<pre>transform(str.begin(), str.end(), str.begin(), ::tolower/::toupper),// 所属头文件#include<\algorithm>,去掉’\’</pre><br><br><br>后期再刷一遍这个题</p></the>]]></content>
<categories>
<category> 拼题A </category>
</categories>
<tags>
<tag> PTA </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1083题</title>
<link href="/2019/02/11/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1083%E9%A2%98/"/>
<url>/2019/02/11/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1083%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><a href="http://www.adwardx.top/2019/01/24/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E5%88%B7%E9%A2%98%E6%89%93%E5%8D%A1%E4%B9%8B%E4%B9%99%E7%BA%A7%E7%AF%87/#2019%E5%B9%B42%E6%9C%885%E6%97%A5">打卡文</a><br><a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>给定 N 张卡片,正面分别写上 1、2、……、N,然后全部翻面,洗牌,在背面分别写上 1、2、……、N。将每张牌的正反两面数字相减(大减小),得到 N 个非负差值,其中是否存在相等的差?</p><p><strong>输入格式:</strong></p><p>输入第一行给出一个正整数 N(2 ≤ N ≤ 10 000),随后一行给出 1 到 N 的一个洗牌后的排列,第 i 个数表示正面写了 i 的那张卡片背面的数字。</p><p><strong>输出格式:</strong></p><p>按照“差值 重复次数”的格式从大到小输出重复的差值及其重复的次数,每行输出一个结果。</p><p><strong>输入样例:</strong></p><pre>83 5 8 6 2 1 4 7</pre><p><strong>输出样例:</strong></p><pre>5 23 32 2</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><iostream></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><map></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><cmath></span></span></span><br><span class="line"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="built_in">std</span>;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span> </span>{</span><br><span class="line"><span class="built_in">map</span><<span class="keyword">int</span>, <span class="keyword">int</span>> card;</span><br><span class="line"><span class="keyword">int</span> N; <span class="comment">//正整数 N(2 ≤ N ≤ 10 000)</span></span><br><span class="line"><span class="built_in">cin</span> >> N;</span><br><span class="line"><span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">1</span>; i <= N; ++i){</span><br><span class="line"><span class="keyword">int</span> back;</span><br><span class="line"><span class="built_in">cin</span> >> back;</span><br><span class="line">++card[<span class="built_in">abs</span>(back - i)];<span class="comment">//abs为int型的绝对值,fabs为double型的绝对值</span></span><br><span class="line">}</span><br><span class="line"><span class="keyword">for</span>(<span class="built_in">map</span><<span class="keyword">int</span>, <span class="keyword">int</span>>::reverse_iterator it = card.rbegin(); it != card.rend(); ++it){</span><br><span class="line"><span class="keyword">if</span>(it->second > <span class="number">1</span>)<span class="built_in">cout</span><<it->first<<<span class="string">" "</span><<it->second<<<span class="built_in">endl</span>;</span><br><span class="line">}</span><br><span class="line"><span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="分析"><a href="#分析" class="headerlink" title="分析"></a>分析</h1><h2 id="新知识"><a href="#新知识" class="headerlink" title="新知识"></a>新知识</h2><p>reverse_iterator, map.rbegin(), map.rend() :迭代器的逆序输出</p></the>]]></content>
<categories>
<category> 拼题A </category>
</categories>
<tags>
<tag> PTA </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1080题</title>
<link href="/2019/02/10/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1080%E9%A2%98/"/>
<url>/2019/02/10/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1080%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><a href="http://www.adwardx.top/2019/01/24/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E5%88%B7%E9%A2%98%E6%89%93%E5%8D%A1%E4%B9%8B%E4%B9%99%E7%BA%A7%E7%AF%87/#2019%E5%B9%B42%E6%9C%885%E6%97%A5">打卡文</a><br><a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>对于在中国大学MOOC(<a href="http://www.icourse163.org/" target="_blank" rel="noopener">http://www.icourse163.org/</a> )学习“数据结构”课程的学生,想要获得一张合格证书,必须首先获得不少于200分的在线编程作业分,然后总评获得不少于60分(满分100)。总评成绩的计算公式为 G=(Gmid−term × 40% + G_final × 60%),如果 Gmid−term > Gfinal ;否则总评 G 就是 Gfinal。这里 Gmid−term 和 G final 分别为学生的期中和期末成绩。</p><p>现在的问题是,每次考试都产生一张独立的成绩单。本题就请你编写程序,把不同的成绩单合为一张。</p><p><strong>输入格式:</strong></p><p>输入在第一行给出3个整数,分别是 P(做了在线编程作业的学生数)、M(参加了期中考试的学生数)、N(参加了期末考试的学生数)。每个数都不超过10000。</p><p>接下来有三块输入。第一块包含 P 个在线编程成绩 Gp ;第二块包含 M 个期中考试成绩 Gmid−term;第三块包含 N 个期末考试成绩 Gfinal 。每个成绩占一行,格式为:<strong>学生学号 分数</strong>。其中<strong>学生学号</strong>为不超过20个字符的英文字母和数字;<strong>分数</strong>是非负整数(编程总分最高为900分,期中和期末的最高分为100分)。</p><p><strong>输出格式:</strong></p><p>打印出获得合格证书的学生名单。每个学生占一行,格式为:</p><pre>学生学号 Gp Gmid−term Gfinal G</pre>如果有的成绩不存在(例如某人没参加期中考试),则在相应的位置输出“−1”。输出顺序为按照总评分数(四舍五入精确到整数)递减。若有并列,则按学号递增。题目保证学号没有重复,且至少存在1个合格的学生。<br><strong>输入样例:</strong><pre>6 6 701234 880a1903 199ydjh2 200wehu8 300dx86w 220missing 400ydhfu77 99wehu8 55ydjh2 98dx86w 88a1903 8601234 39ydhfu77 88a1903 6601234 58wehu8 84ydjh2 82missing 99dx86w 81</pre><p><strong>输出样例:</strong></p><pre>missing 400 -1 99 99ydjh2 200 98 82 88dx86w 220 88 81 84wehu8 300 55 84 84</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><iostream></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><map></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><string></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><algorithm></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><cmath></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><vector></span></span></span><br><span class="line"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="built_in">std</span>;</span><br><span class="line"><span class="class"><span class="keyword">struct</span> <span class="title">student</span>{</span> <span class="comment">//存放学生的各种信息 </span></span><br><span class="line"> <span class="built_in">string</span> name; <span class="comment">//学生学号 </span></span><br><span class="line"> <span class="keyword">int</span> code, markz, markm, GPA; <span class="comment">//编程成绩code,期中成绩markz,期末成绩markm,总评GPA </span></span><br><span class="line"> student(){</span><br><span class="line"> markz = <span class="number">-1</span>; markm = <span class="number">-1</span>; GPA = <span class="number">0</span>; <span class="comment">//初始化 </span></span><br><span class="line"> } </span><br><span class="line">}; </span><br><span class="line"><span class="function"><span class="keyword">bool</span> <span class="title">cmp</span><span class="params">(student a, student b)</span></span>{ </span><br><span class="line"> <span class="keyword">if</span>(a.GPA != b.GPA ){</span><br><span class="line"> <span class="keyword">return</span> a.GPA > b.GPA ; <span class="comment">//按照总评递减 </span></span><br><span class="line"> }<span class="keyword">else</span> <span class="keyword">return</span> a.name < b.name; <span class="comment">//总评相等按照学号字母序递增 </span></span><br><span class="line">}</span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span></span><br><span class="line"><span class="function"></span>{</span><br><span class="line"> <span class="keyword">int</span> p, m, n, score;</span><br><span class="line"> <span class="built_in">string</span> name;</span><br><span class="line"> <span class="built_in">vector</span><student> pass; <span class="comment">//存放所有合格的学生信息 </span></span><br><span class="line"> <span class="built_in">map</span><<span class="built_in">string</span>, student> stu; <span class="comment">//建立学生学号和学生信息之间映射, </span></span><br><span class="line"> <span class="built_in">cin</span> >> p >> m >> n;</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < p; i++){</span><br><span class="line"> <span class="built_in">cin</span> >> name >> score;</span><br><span class="line"> <span class="keyword">if</span>(score >= <span class="number">200</span> && score <= <span class="number">900</span>){ <span class="comment">//只录入满足编程条件的学生 </span></span><br><span class="line"> stu[name].name = name; </span><br><span class="line"> stu[name].code = score;</span><br><span class="line"> } </span><br><span class="line"> } </span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < m; i++){ <span class="comment">//录入期中成绩 </span></span><br><span class="line"> <span class="built_in">cin</span> >> name >> score; </span><br><span class="line"> <span class="keyword">if</span>(stu.count(name) && score >= <span class="number">0</span> && score <= <span class="number">100</span>){ <span class="comment">//如果这个人有编程成绩,并且期中成绩在范围内 </span></span><br><span class="line"> stu[name].markz = score; </span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">else</span> <span class="keyword">continue</span>; </span><br><span class="line"> } </span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < n; i++){ <span class="comment">//录入期末成绩 </span></span><br><span class="line"> <span class="built_in">cin</span> >> name >> score;</span><br><span class="line"> <span class="keyword">if</span>(stu.count(name)){ <span class="comment">//如果这人有录入编程成绩 </span></span><br><span class="line"> stu[name].markm = score; </span><br><span class="line"> <span class="keyword">if</span>(stu[name].markm < stu[name].markz ){ <span class="comment">//如果期期末成绩小于期中成绩 </span></span><br><span class="line"> stu[name].GPA = (<span class="keyword">int</span>)round((stu[name].markz * <span class="number">0.4</span> + stu[name].markm * <span class="number">0.6</span>));</span><br><span class="line"> }<span class="keyword">else</span> stu[name].GPA = stu[name].markm; <span class="comment">//否则直接等于期末成绩 </span></span><br><span class="line"> <span class="keyword">if</span>(stu[name].GPA >= <span class="number">60</span>){ <span class="comment">//总评超过60分,加入到pass内 </span></span><br><span class="line"> pass.push_back(stu[name]);</span><br><span class="line"> }</span><br><span class="line"> }<span class="keyword">else</span> <span class="keyword">continue</span>; </span><br><span class="line"> } </span><br><span class="line"> sort(pass.begin(), pass.end(), cmp); <span class="comment">//排序 </span></span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < pass.size(); i++){ <span class="comment">//按照格式输出 </span></span><br><span class="line"> <span class="built_in">cout</span> << pass[i].name << <span class="string">' '</span> << pass[i].code << <span class="string">' '</span> << pass[i].markz << <span class="string">' '</span> << pass[i].markm << <span class="string">' '</span> << pass[i].GPA << <span class="built_in">endl</span>;</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line"> }</span><br></pre></td></tr></table></figure><h1 id="分析"><a href="#分析" class="headerlink" title="分析"></a>分析</h1><p>从这题中学会到了struct类型作为map,vector的元素,之前一直以为是int型,double型,string才能使用。此题之后再做一遍</p></the>]]></content>
<categories>
<category> 拼题A </category>
</categories>
<tags>
<tag> PTA </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1078题</title>
<link href="/2019/02/10/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1078%E9%A2%98/"/>
<url>/2019/02/10/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1078%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><a href="http://www.adwardx.top/2019/01/24/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E5%88%B7%E9%A2%98%E6%89%93%E5%8D%A1%E4%B9%8B%E4%B9%99%E7%BA%A7%E7%AF%87/#2019%E5%B9%B42%E6%9C%885%E6%97%A5">打卡文</a><br><a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>文本压缩有很多种方法,这里我们只考虑最简单的一种:把由相同字符组成的一个连续的片段用这个字符和片段中含有这个字符的个数来表示。例如<strong> ccccc </strong>就用<strong> 5c </strong>来表示。如果字符没有重复,就原样输出。例如<strong> aba </strong>压缩后仍然是<strong> aba</strong>。</p><p>解压方法就是反过来,把形如<strong> 5c </strong>这样的表示恢复为<strong> ccccc</strong>。</p><p>本题需要你根据压缩或解压的要求,对给定字符串进行处理。这里我们简单地假设原始字符串是完全由英文字母和空格组成的非空字符串。</p><p><strong>输入格式:</strong></p><p>输入第一行给出一个字符,如果是 C 就表示下面的字符串需要被压缩;如果是 D 就表示下面的字符串需要被解压。第二行给出需要被压缩或解压的不超过 1000 个字符的字符串,以回车结尾。题目保证字符重复个数在整型范围内,且输出文件不超过 1MB。</p><p><strong>输出格式:</strong></p><p>根据要求压缩或解压字符串,并在一行中输出结果。</p><p><strong>输入样例 1:</strong></p><pre>CTTTTThhiiiis isssss a tesssst CAaaa as</pre><strong>输出样例 1:</strong><pre>5T2h4is i5s a3 te4st CA3a as</pre><strong>输入样例 2:</strong><pre>D5T2h4is i5s a3 te4st CA3a as10Z</pre><strong>输出样例 2:</strong><pre>TTTTThhiiiis isssss a tesssst CAaaa asZZZZZZZZZZ</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><iostream></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><string></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><cctype></span></span></span><br><span class="line"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="built_in">std</span>;</span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span>{</span><br><span class="line"> <span class="built_in">string</span> temp, str, ans;</span><br><span class="line"> <span class="keyword">char</span> c;</span><br><span class="line"> getline(<span class="built_in">cin</span>, temp);</span><br><span class="line"> getline(<span class="built_in">cin</span>, str);</span><br><span class="line"> <span class="keyword">if</span>(temp == <span class="string">"C"</span>){</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < str.length(); i++){</span><br><span class="line"> <span class="keyword">int</span> cnt = <span class="number">0</span>;</span><br><span class="line"> c = str[i];</span><br><span class="line"> <span class="keyword">while</span>(i < str.length() && str[i] == c){</span><br><span class="line"> cnt++;</span><br><span class="line"> i++;</span><br><span class="line"> }</span><br><span class="line"> i--;</span><br><span class="line"> <span class="keyword">if</span>(cnt > <span class="number">1</span>) ans = ans + to_string(cnt);</span><br><span class="line"> ans = ans + c;</span><br><span class="line"> }</span><br><span class="line"> }<span class="keyword">else</span>{</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < str.length(); i++){</span><br><span class="line"> <span class="built_in">string</span> cnt;</span><br><span class="line"> <span class="keyword">int</span> k = <span class="number">1</span>;</span><br><span class="line"> <span class="keyword">while</span>(<span class="built_in">isdigit</span>(str[i])){<span class="comment">//获取计数值</span></span><br><span class="line"> cnt += str[i++];</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">char</span> t = str[i];</span><br><span class="line"> <span class="keyword">if</span>(!cnt.empty()) k = stoi(cnt);</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> j = <span class="number">0</span>; j < k; j++) ans += t;</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="built_in">cout</span> << ans << <span class="built_in">endl</span>;</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="分析"><a href="#分析" class="headerlink" title="分析"></a>分析</h1><p>之前做的时候和此代码的想法一样,但实现太麻烦以及case也没有完全通过,导致不得不去寻找他人的解法。<font color="red">此解法中额外使用了ctype头文件中的isdigit()方法</font>,原是我使用的少,在此长了记性。</p></the>]]></content>
<categories>
<category> 拼题A </category>
</categories>
<tags>
<tag> PTA </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1065题</title>
<link href="/2019/02/09/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1065%E9%A2%98/"/>
<url>/2019/02/09/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1065%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><a href="http://www.adwardx.top/2019/01/24/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E5%88%B7%E9%A2%98%E6%89%93%E5%8D%A1%E4%B9%8B%E4%B9%99%E7%BA%A7%E7%AF%87/#2019%E5%B9%B42%E6%9C%885%E6%97%A5">打卡文</a><br><a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>“单身狗”是中文对于单身人士的一种爱称。本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱。</p><p><strong>输入格式:</strong></p><p>输入第一行给出一个正整数 N(≤ 50 000),是已知夫妻/伴侣的对数;随后 N 行,每行给出一对夫妻/伴侣——为方便起见,每人对应一个 ID 号,为 5 位数字(从 00000 到 99999),ID 间以空格分隔;之后给出一个正整数 M(≤ 10 000),为参加派对的总人数;随后一行给出这 M 位客人的 ID,以空格分隔。题目保证无人重婚或脚踩两条船。</p><p><strong>输出格式:</strong></p><p>首先第一行输出落单客人的总人数;随后第二行按 ID 递增顺序列出落单的客人。ID 间用 1 个空格分隔,行的首尾不得有多余空格。</p><p><strong>输入样例:</strong></p><pre>311111 2222233333 4444455555 66666755555 44444 10000 88888 22222 11111 23333</pre><p><strong>输出样例:</strong></p><pre>510000 23333 44444 55555 88888</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><iostream></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><vector></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><algorithm></span></span></span><br><span class="line"></span><br><span class="line"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="built_in">std</span>;</span><br><span class="line"></span><br><span class="line"><span class="keyword">int</span> table[<span class="number">100000</span>];</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span>{</span><br><span class="line"> <span class="keyword">int</span> n;</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%d"</span>, &n);</span><br><span class="line"> <span class="keyword">int</span> a, b;</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < n; ++i){</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%d %d"</span>, &a, &b);</span><br><span class="line"> <span class="comment">//建立相互映射关系 </span></span><br><span class="line"> table[a] = b;</span><br><span class="line"> table[b] = a;</span><br><span class="line"> }</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%d"</span>, &n);</span><br><span class="line"> <span class="built_in">vector</span><<span class="keyword">int</span>> v(n);</span><br><span class="line"> <span class="built_in">vector</span><<span class="keyword">int</span>> doge;</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < n; ++i){</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%d"</span>, &v[i]);</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < n; ++i){</span><br><span class="line"> <span class="built_in">vector</span><<span class="keyword">int</span>>::iterator result = find(v.begin(), v.end(), table[v[i]]);</span><br><span class="line"> <span class="keyword">if</span>(result == v.end()){ <span class="comment">//说明没找到他/她的伴侣 </span></span><br><span class="line"> doge.push_back(v[i]); <span class="comment">//单身狗的队伍又壮大了 </span></span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> sort(doge.begin(),doge.end());</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%d\n"</span>, doge.size());</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < doge.size(); ++i){</span><br><span class="line"> <span class="keyword">if</span>(i == <span class="number">0</span>){</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%05d"</span>, doge[i]);</span><br><span class="line"> } </span><br><span class="line"> <span class="keyword">else</span>{</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">" %05d"</span>, doge[i]);</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="分析"><a href="#分析" class="headerlink" title="分析"></a>分析</h1><p>之前的思路是没有想到第3个for循环可以这么处理,故在本题学到了iterator,find的使用,本题难度不大。</p></the>]]></content>
<categories>
<category> 拼题A </category>
</categories>
<tags>
<tag> PTA </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1060题</title>
<link href="/2019/02/09/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1060%E9%A2%98/"/>
<url>/2019/02/09/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1060%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><a href="http://www.adwardx.top/2019/01/24/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E5%88%B7%E9%A2%98%E6%89%93%E5%8D%A1%E4%B9%8B%E4%B9%99%E7%BA%A7%E7%AF%87/#2019%E5%B9%B42%E6%9C%885%E6%97%A5">打卡文</a><br><a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>英国天文学家爱丁顿很喜欢骑车。据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数” E ,即满足有 E 天骑车超过 E 英里的最大整数 E。据说爱丁顿自己的 E 等于 87。</p><p>现给定某人 N 天的骑车距离,请你算出对应的爱丁顿数 E(≤N)。</p><p><strong>输入格式:</strong></p><p>输入第一行给出一个正整数 N (≤10<sup>5</sup>),即连续骑车的天数;第二行给出 N 个非负整数,代表每天的骑车距离。</p><p><strong>输出格式:</strong></p><p>在一行中给出 N 天的爱丁顿数。</p><p><strong>输入样例:</strong></p><pre>106 7 6 9 3 10 8 2 7 8</pre><p><strong>输出样例:</strong></p><pre>6</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><iostream></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><vector></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><algorithm></span></span></span><br><span class="line"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="built_in">std</span>;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">bool</span> <span class="title">compare</span><span class="params">(<span class="keyword">int</span> a, <span class="keyword">int</span> b)</span></span>{</span><br><span class="line"> <span class="keyword">return</span> a > b;</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span>{</span><br><span class="line"> <span class="keyword">int</span> n;</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%d"</span>, &n);</span><br><span class="line"> <span class="built_in">vector</span><<span class="keyword">int</span>> v(n + <span class="number">1</span>);<span class="comment">//初始化有n + 1个元素的int型vector</span></span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">1</span>; i <= n; ++i){</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%d"</span>, &v[i]);</span><br><span class="line"> }</span><br><span class="line"> sort(v.begin() + <span class="number">1</span>, v.end(), compare); <span class="comment">//降序</span></span><br><span class="line"> <span class="keyword">int</span> e = <span class="number">0</span>;</span><br><span class="line"> <span class="keyword">int</span> i = <span class="number">1</span>;</span><br><span class="line"> <span class="keyword">while</span>(i <= n && v[i] > i){</span><br><span class="line"> ++e;</span><br><span class="line"> ++i;</span><br><span class="line"> }</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%d\n"</span>, e);</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="分析"><a href="#分析" class="headerlink" title="分析"></a>分析</h1><p>本题开始正式接触vector,之前把题意理解成了满足有 E 天骑车超过 E 英里的最大整数 E ,这3个 E 是相等的。经小伙伴提醒,应该是 <font color="red">满足有 E 天骑车超过 E 英里</font>。</p></the>]]></content>
<categories>
<category> 拼题A </category>
</categories>
<tags>
<tag> PTA </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1045题</title>
<link href="/2019/02/09/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1045%E9%A2%98/"/>
<url>/2019/02/09/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1045%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><a href="http://www.adwardx.top/2019/01/24/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E5%88%B7%E9%A2%98%E6%89%93%E5%8D%A1%E4%B9%8B%E4%B9%99%E7%BA%A7%E7%AF%87/#2019%E5%B9%B42%E6%9C%885%E6%97%A5">打卡文</a><br><a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的 N 个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元?</p><p>例如给定 $N = 5$, 排列是1、3、2、4、5。则:</p><p>1 的左边没有元素,右边的元素都比它大,所以它可能是主元;<br>尽管 3 的左边元素都比它小,但其右边的 2 比它小,所以它不能是主元;<br>尽管 2 的右边元素都比它大,但其左边的 3 比它大,所以它不能是主元;<br>类似原因,4 和 5 都可能是主元。<br>因此,有 3 个元素可能是主元。</p><p><strong>输入格式:</strong></p><p>输入在第 1 行中给出一个正整数 N(≤10<sup>5</sup>); 第 2 行是空格分隔的 N 个不同的正整数,每个数不超过 10<sup>9</sup>。</p><p><strong>输出格式:</strong></p><p>在第 1 行中输出有可能是主元的元素个数;在第 2 行中按递增顺序输出这些元素,其间以 1 个空格分隔,行首尾不得有多余空格。</p><p><strong>输入样例:</strong></p><pre>51 3 2 4 5</pre><p><strong>输出样例:</strong></p><pre>31 4 5</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><cstdio></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><algorithm></span></span></span><br><span class="line"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="built_in">std</span>;</span><br><span class="line"><span class="keyword">const</span> <span class="keyword">int</span> MAXN = <span class="number">100010</span>;</span><br><span class="line"><span class="keyword">const</span> <span class="keyword">int</span> INF = <span class="number">0x3fffffff</span>;</span><br><span class="line"></span><br><span class="line"><span class="keyword">int</span> a[MAXN], leftMax[MAXN], rightMin[MAXN];</span><br><span class="line"><span class="keyword">int</span> ans[MAXN], num = <span class="number">0</span>;</span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span>{</span><br><span class="line"> <span class="keyword">int</span> n;</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%d"</span>, &n);</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < n; ++i){</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%d"</span>, &a[i]);</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">1</span>; i < n; ++i){</span><br><span class="line"> leftMax[i] = max(leftMax[i - <span class="number">1</span>], a[i - <span class="number">1</span>]);</span><br><span class="line"> }</span><br><span class="line"> rightMin[n - <span class="number">1</span>] = INF;</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = n - <span class="number">2</span>; i >= <span class="number">0</span>; --i){</span><br><span class="line"> rightMin[i] = min(rightMin[i + <span class="number">1</span>], a[i + <span class="number">1</span>]);</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < n; ++i){</span><br><span class="line"> <span class="keyword">if</span>(leftMax[i] < a[i] && rightMin[i] > a[i]){</span><br><span class="line"> ans[num++] = a[i];</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%d\n"</span>, num);</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < num; ++i){</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%d"</span>, ans[i]);</span><br><span class="line"> <span class="keyword">if</span>(i < num - <span class="number">1</span>) <span class="built_in">printf</span>(<span class="string">" "</span>);</span><br><span class="line"> }</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"\n"</span>);</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="分析"><a href="#分析" class="headerlink" title="分析"></a>分析</h1><p>本题同之前的<a href="http://www.adwardx.top/2019/02/08/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1040%E9%A2%98/#more">1040</a>题类似,用标记数组存储下标i的关系值,然后将满足对应关系的存储,计数。最后将存储后的结果输出。</p></the>]]></content>
<categories>
<category> 拼题A </category>
</categories>
<tags>
<tag> PTA </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1044题</title>
<link href="/2019/02/09/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1044%E9%A2%98/"/>
<url>/2019/02/09/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1044%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><a href="http://www.adwardx.top/2019/01/24/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E5%88%B7%E9%A2%98%E6%89%93%E5%8D%A1%E4%B9%8B%E4%B9%99%E7%BA%A7%E7%AF%87/#2019%E5%B9%B42%E6%9C%885%E6%97%A5">打卡文</a><br><a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>火星人是以 13 进制计数的:</p><p>地球人的 0 被火星人称为 tret。<br>地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep, oct, nov, dec。<br>火星人将进位以后的 12 个高位数字分别称为:tam, hel, maa, huh, tou, kes, hei, elo, syy, lok, mer, jou。<br>例如地球人的数字 29 翻译成火星文就是 hel mar;而火星文 elo nov 对应地球数字 115。为了方便交流,请你编写程序实现地球和火星数字之间的互译。</p><p><strong>输入格式:</strong></p><p>输入第一行给出一个正整数 N(<100),随后 N 行,每行给出一个 [0, 169) 区间内的数字 —— 或者是地球文,或者是火星文。</p><p><strong>输出格式:</strong></p><p>对应输入的每一行,在一行中输出翻译后的另一种语言的数字。</p><p><strong>输入样例:</strong></p><pre>4295elo novtam</pre><p><strong>输出样例:</strong></p><pre>hel marmay11513</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><cstdio></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><iostream></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><cstring></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><string></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><map></span></span></span><br><span class="line"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="built_in">std</span>;</span><br><span class="line"></span><br><span class="line"><span class="built_in">string</span> low[<span class="number">14</span>] = {<span class="string">"tret"</span>,<span class="string">"jan"</span>,<span class="string">"feb"</span>,<span class="string">"mar"</span>,<span class="string">"apr"</span>,<span class="string">"may"</span>,<span class="string">"jun"</span>,<span class="string">"jly"</span>,<span class="string">"aug"</span>,<span class="string">"sep"</span>,<span class="string">"oct"</span>,<span class="string">"nov"</span>,<span class="string">"dec"</span>};</span><br><span class="line"><span class="built_in">string</span> high[<span class="number">14</span>] = {<span class="string">"tret"</span>,<span class="string">"tam"</span>,<span class="string">"hel"</span>,<span class="string">"maa"</span>,<span class="string">"huh"</span>,<span class="string">"tou"</span>,<span class="string">"kes"</span>,<span class="string">"hei"</span>,<span class="string">"elo"</span>,<span class="string">"syy"</span>,<span class="string">"lok"</span>,<span class="string">"mer"</span>,<span class="string">"jou"</span>};</span><br><span class="line"></span><br><span class="line"><span class="built_in">string</span> etom[<span class="number">300</span>];</span><br><span class="line"><span class="built_in">map</span><<span class="built_in">string</span>, <span class="keyword">int</span>> mtoe;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span>{</span><br><span class="line"> <span class="keyword">int</span> n;</span><br><span class="line"> <span class="built_in">string</span> str; </span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < <span class="number">13</span>; i++){<span class="comment">//初始化 数制转换关系</span></span><br><span class="line"> mtoe[low[i]] = i;</span><br><span class="line"> mtoe[high[i]] = i * <span class="number">13</span>;</span><br><span class="line"></span><br><span class="line"> etom[i] = low[i];</span><br><span class="line"> etom[i * <span class="number">13</span>] = high[i];</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> <span class="comment">//组成火星两位数的map映射</span></span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">1</span>; i < <span class="number">13</span>; i++) </span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> j = <span class="number">1</span>; j < <span class="number">13</span>; j++){ <span class="comment">//个位 </span></span><br><span class="line"> <span class="built_in">string</span> str = high[i] + <span class="string">" "</span> + low[j];</span><br><span class="line"> etom[i * <span class="number">13</span> + j] = str;</span><br><span class="line"> mtoe[str] = i * <span class="number">13</span> + j;</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%d%*c"</span>, &n);</span><br><span class="line"></span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < n; i++){</span><br><span class="line"> <span class="keyword">int</span> num = <span class="number">0</span>;</span><br><span class="line"> getline(<span class="built_in">cin</span>, str);</span><br><span class="line"> <span class="comment">//数字 </span></span><br><span class="line"> <span class="keyword">if</span>(str[<span class="number">0</span>]>=<span class="string">'0'</span> && str[<span class="number">0</span>] <= <span class="string">'9'</span>){ </span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> j = <span class="number">0</span>; j < str.length();j++) <span class="comment">//字符串转数字</span></span><br><span class="line"> num = num * <span class="number">10</span> + (str[j] - <span class="string">'0'</span>);</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%s\n"</span>, etom[num].c_str()); </span><br><span class="line"> }</span><br><span class="line"> <span class="comment">//字符串(火星数字)</span></span><br><span class="line"> <span class="keyword">else</span>{ </span><br><span class="line"> <span class="built_in">cout</span> << mtoe[str] << <span class="built_in">endl</span>; <span class="comment">//map直接输出</span></span><br><span class="line"> } </span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="分析"><a href="#分析" class="headerlink" title="分析"></a>分析</h1><p>本题通过用map建立映射关系来反映可能出现的各种情况,然后根据输入的内容去映射或者字符串数组里面找出对应的内容(日后再刷一遍)</p></the>]]></content>
<categories>
<category> 拼题A </category>
</categories>
<tags>
<tag> PTA </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1043题</title>
<link href="/2019/02/09/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1043%E9%A2%98/"/>
<url>/2019/02/09/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1043%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><a href="http://www.adwardx.top/2019/01/24/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E5%88%B7%E9%A2%98%E6%89%93%E5%8D%A1%E4%B9%8B%E4%B9%99%E7%BA%A7%E7%AF%87/#2019%E5%B9%B42%E6%9C%885%E6%97%A5">打卡文</a><br><a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>给定一个长度不超过 10<sup>4</sup> 的、仅由英文字母构成的字符串。请将字符重新调整顺序,按 PATestPATest…. 这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 PATest 的顺序打印,直到所有字符都被输出。</p><p><strong>输入格式:</strong></p><p>输入在一行中给出一个长度不超过 10<sup>4</sup> 的、仅由英文字母构成的非空字符串。</p><p><strong>输出格式:</strong></p><p>在一行中按题目要求输出排序后的字符串。题目保证输出非空。</p><p><strong>输入样例:</strong></p><pre>redlesPayBestPATTopTeePHPereatitAPPT</pre><p><strong>输出样例:</strong></p><pre>PATestPATestPTetPTePePee</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><cstdio></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><cstring></span></span></span><br><span class="line"><span class="keyword">const</span> <span class="keyword">int</span> max_n = <span class="number">10001</span>;</span><br><span class="line"><span class="keyword">char</span> dict[<span class="number">6</span>] = {<span class="string">'P'</span>, <span class="string">'A'</span>, <span class="string">'T'</span>, <span class="string">'e'</span>, <span class="string">'s'</span>, <span class="string">'t'</span>};</span><br><span class="line"><span class="keyword">int</span> hashtable[<span class="number">6</span>] = {<span class="number">0</span>};</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span>{</span><br><span class="line"> <span class="keyword">char</span> str[max_n];</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%[^\n]%*c"</span>, str);</span><br><span class="line"> <span class="keyword">int</span> len = <span class="built_in">strlen</span>(str), sum = <span class="number">0</span>;</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < len; ++i){</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> j = <span class="number">0</span>; j < <span class="number">6</span>; ++j){</span><br><span class="line"> <span class="keyword">if</span>(str[i] == dict[j]){</span><br><span class="line"> ++hashtable[j];</span><br><span class="line"> ++sum;</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">while</span>(sum > <span class="number">0</span>){</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < <span class="number">6</span>; ++i){</span><br><span class="line"> <span class="keyword">if</span>(hashtable[i] > <span class="number">0</span>){</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%c"</span>, dict[i]);</span><br><span class="line"> --hashtable[i];</span><br><span class="line"> --sum;</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="分析"><a href="#分析" class="headerlink" title="分析"></a>分析</h1><p>用一个数组枚举这6种字符,并用计数数组进行对应,同时若在字符串中碰到相应字符,则计数数组 + 1。一趟过后,能知道有多少个这 6 种字符,遍历输出即可。</p></the>]]></content>
<categories>
<category> 拼题A </category>
</categories>
<tags>
<tag> PTA </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1040题</title>
<link href="/2019/02/08/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1040%E9%A2%98/"/>
<url>/2019/02/08/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1040%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><a href="http://www.adwardx.top/2019/01/24/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E5%88%B7%E9%A2%98%E6%89%93%E5%8D%A1%E4%B9%8B%E4%B9%99%E7%BA%A7%E7%AF%87/#2019%E5%B9%B42%E6%9C%885%E6%97%A5">打卡文</a><br><a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位(P),第 4 位(A),第 6 位(T);第二个 PAT 是第 3 位(P),第 4 位(A),第 6 位(T)。</p><p>现给定字符串,问一共可以形成多少个 PAT?</p><p><strong>输入格式:</strong></p><p>输入只有一行,包含一个字符串,长度不超过10<sup>5</sup>,只包含 P、A、T 三种字母。</p><p><strong>输出格式:</strong></p><p>在一行中输出给定字符串中包含多少个 PAT。由于结果可能比较大,只输出对 1000000007 取余数的结果。</p><p><strong>输入样例:</strong></p><pre>APPAPT</pre><p><strong>输出样例:</strong></p><pre>2</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><cstdio></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><cstring></span></span></span><br><span class="line"><span class="keyword">const</span> <span class="keyword">int</span> MAXN = <span class="number">100010</span>;</span><br><span class="line"><span class="keyword">const</span> <span class="keyword">int</span> MOD = <span class="number">1000000007</span>;</span><br><span class="line"><span class="keyword">char</span> str[MAXN];</span><br><span class="line"><span class="keyword">int</span> leftNumP[MAXN] = {<span class="number">0</span>};</span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span>{</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%s"</span>, str);</span><br><span class="line"> <span class="keyword">int</span> len = <span class="built_in">strlen</span>(str);</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < len; ++i){</span><br><span class="line"> <span class="keyword">if</span>(i > <span class="number">0</span>) leftNumP[i] = leftNumP[i - <span class="number">1</span>];</span><br><span class="line"> <span class="keyword">if</span>(str[i] == <span class="string">'P'</span>) ++leftNumP[i];</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">int</span> ans = <span class="number">0</span>, rightNumT = <span class="number">0</span>;</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = len - <span class="number">1</span>; i >= <span class="number">0</span>; --i){</span><br><span class="line"> <span class="keyword">if</span>(str[i] == <span class="string">'T'</span>) rightNumT++;</span><br><span class="line"> <span class="keyword">else</span> <span class="keyword">if</span>(str[i] == <span class="string">'A'</span>) ans = (ans + leftNumP[i] * rightNumT) % MOD;</span><br><span class="line"> }</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%d"</span>, ans);</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="分析"><a href="#分析" class="headerlink" title="分析"></a>分析</h1><p>从前往后计算P的个数,然后从后往前计算T的个数。在计算T的个数时,一旦遇到A,就将当前P的个数与T的个数相乘。</p></the>]]></content>
<categories>
<category> 拼题A </category>
</categories>
<tags>
<tag> PTA </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1033题</title>
<link href="/2019/02/08/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1033%E9%A2%98/"/>
<url>/2019/02/08/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1033%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><a href="http://www.adwardx.top/2019/01/24/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E5%88%B7%E9%A2%98%E6%89%93%E5%8D%A1%E4%B9%8B%E4%B9%99%E7%BA%A7%E7%AF%87/#2019%E5%B9%B42%E6%9C%885%E6%97%A5">打卡文</a><br><a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?</p><p><strong>输入格式:</strong></p><p>输入在 2 行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过 10<sup>5</sup> 个字符的串。可用的字符包括字母 [a-z, A-Z]、数字 0-9、以及下划线 _(代表空格)、,、.、-、+(代表上档键)。题目保证第 2 行输入的文字串非空。</p><p>注意:如果上档键坏掉了,那么大写的英文字母无法被打出。</p><p><strong>输出格式:</strong></p><p>在一行中输出能够被打出的结果文字。如果没有一个字符能被打出,则输出空行。</p><p><strong>输入样例:</strong></p><pre>7+IE.7_This_is_a_test.</pre><p><strong>输出样例:</strong></p><pre>_hs_s_a_tst5</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><cstdio></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><cctype></span></span></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span></span><br><span class="line"><span class="function"></span>{</span><br><span class="line"> <span class="keyword">int</span> <span class="built_in">list</span>[<span class="number">128</span>] = {<span class="number">0</span>}, bad_key = <span class="number">0</span>, input;</span><br><span class="line"> <span class="keyword">while</span> ((bad_key = getchar()) != <span class="string">'\n'</span>) {</span><br><span class="line"> <span class="built_in">list</span>[bad_key] = <span class="number">1</span>;</span><br><span class="line"> <span class="built_in">list</span>[<span class="built_in">tolower</span>(bad_key)] = <span class="number">1</span>; <span class="comment">// 将所有坏键赋值为1,如果是字母,相应的大小写字符都要赋值为1</span></span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">if</span> (<span class="built_in">list</span>[<span class="string">'+'</span>] == <span class="number">1</span>) <span class="comment">// 检查上档键</span></span><br><span class="line"> <span class="keyword">for</span> (<span class="keyword">int</span> i = <span class="number">65</span>; i < <span class="number">91</span>; i++)</span><br><span class="line"> <span class="built_in">list</span>[i] = <span class="number">1</span>;</span><br><span class="line"> <span class="keyword">while</span> ((input = getchar()) != <span class="string">'\n'</span>)</span><br><span class="line"> <span class="keyword">if</span> (<span class="built_in">list</span>[input] == <span class="number">0</span>) <span class="comment">// 查验字符表,并进行输出</span></span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%c"</span>, input);</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="分析"><a href="#分析" class="headerlink" title="分析"></a>分析</h1><p>输入的字符刚好在ASCII码表中,故设置一个大小为128的整型数组。要注意的是上档键要是坏了,则无法输出大写。</p><h2 id="新知识"><a href="#新知识" class="headerlink" title="新知识"></a>新知识</h2><p>tolower:如果输入的是大写字母并且具有对应小写,则转换。否则不变。<font color="red">所属头文件:ctype</font></p></the>]]></content>
<categories>
<category> 拼题A </category>
</categories>
<tags>
<tag> PTA </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1028题</title>
<link href="/2019/02/08/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1028%E9%A2%98/"/>
<url>/2019/02/08/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1028%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><a href="http://www.adwardx.top/2019/01/24/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E5%88%B7%E9%A2%98%E6%89%93%E5%8D%A1%E4%B9%8B%E4%B9%99%E7%BA%A7%E7%AF%87/#2019%E5%B9%B42%E6%9C%885%E6%97%A5">打卡文</a><br><a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。</p><p>这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今天是 2014 年 9 月 6 日,所以超过 200 岁的生日和未出生的生日都是不合理的,应该被过滤掉。</p><p><strong>输入格式:</strong></p><p>输入在第一行给出正整数 N,取值在(0,10<sup>5</sup>];随后 N 行,每行给出 1 个人的姓名(由不超过 5 个英文字母组成的字符串)、以及按 yyyy/mm/dd(即年/月/日)格式给出的生日。题目保证最年长和最年轻的人没有并列。</p><p><strong>输出格式:</strong></p><p>在一行中顺序输出有效生日的个数、最年长人和最年轻人的姓名,其间以空格分隔。</p><p><strong>输入样例:</strong></p><pre>5John 2001/05/12Tom 1814/09/06Ann 2121/01/30James 1814/09/05Steve 1967/11/20</pre><p><strong>输出样例:</strong></p><pre>3 Tom John</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><cstdio></span></span></span><br><span class="line"><span class="class"><span class="keyword">struct</span> <span class="title">people</span>{</span></span><br><span class="line"> <span class="keyword">char</span> name[<span class="number">6</span>];</span><br><span class="line"> <span class="keyword">int</span> year, month, day;</span><br><span class="line">}oldest, youngest, left, right, temp;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">bool</span> <span class="title">Less</span><span class="params">(people a, people b)</span></span>{</span><br><span class="line"> <span class="keyword">if</span>(a.year != b.year) <span class="keyword">return</span> a.year <= b.year;</span><br><span class="line"> <span class="keyword">else</span> <span class="keyword">if</span>(a.month != b.month) <span class="keyword">return</span> a.month <= b.month;</span><br><span class="line"> <span class="keyword">else</span> <span class="keyword">if</span>(a.day != b.day) <span class="keyword">return</span> a.day <= b.day;</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">bool</span> <span class="title">More</span><span class="params">(people a, people b)</span></span>{</span><br><span class="line"> <span class="keyword">if</span>(a.year != b.year) <span class="keyword">return</span> a.year >= b.year;</span><br><span class="line"> <span class="keyword">else</span> <span class="keyword">if</span>(a.month != b.month) <span class="keyword">return</span> a.month >= b.month;</span><br><span class="line"> <span class="keyword">else</span> <span class="keyword">if</span>(a.day != b.day) <span class="keyword">return</span> a.day >= b.day;</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">void</span> <span class="title">init</span><span class="params">()</span></span>{</span><br><span class="line"> youngest.year = left.year = <span class="number">1814</span>;</span><br><span class="line"> oldest.year = right.year = <span class="number">2014</span>;</span><br><span class="line"> youngest.month = oldest.month = left.month = right.month = <span class="number">9</span>;</span><br><span class="line"> youngest.day = oldest.day = left.day = right.day = <span class="number">6</span>;</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span>{</span><br><span class="line"> <span class="keyword">int</span> n, count = <span class="number">0</span>;</span><br><span class="line"> init();</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%d"</span>, &n);</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < n; ++i){</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%s %d/%d/%d"</span>, temp.name, &temp.year, &temp.month, &temp.day); <span class="comment">// 输入</span></span><br><span class="line"> <span class="keyword">if</span>(Less(temp, right) && More(temp, left)){</span><br><span class="line"> ++count;</span><br><span class="line"> <span class="keyword">if</span>(Less(temp, oldest)) oldest = temp;</span><br><span class="line"> <span class="keyword">if</span>(More(temp, youngest)) youngest = temp;</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> </span><br><span class="line"> <span class="keyword">if</span>(!count) <span class="built_in">printf</span>(<span class="string">"0\n"</span>);</span><br><span class="line"> <span class="keyword">else</span> <span class="built_in">printf</span>(<span class="string">"%d %s %s"</span>, count, oldest.name, youngest.name);</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="分析"><a href="#分析" class="headerlink" title="分析"></a>分析</h1><p>代码给出了2个边界,一个最大边界,一个最小边界,介于这两者之间的则是有效的生日。<font color="red">当时这题还让我学会了Less和More这种比较的方法</font></p></the>]]></content>
<categories>
<category> 拼题A </category>
</categories>
<tags>
<tag> PTA </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1020题</title>
<link href="/2019/02/08/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1020%E9%A2%98/"/>
<url>/2019/02/08/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1020%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><a href="http://www.adwardx.top/2019/01/24/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E5%88%B7%E9%A2%98%E6%89%93%E5%8D%A1%E4%B9%8B%E4%B9%99%E7%BA%A7%E7%AF%87/#2019%E5%B9%B42%E6%9C%885%E6%97%A5">打卡文</a><br><a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。</p><p>注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿元。如果市场的最大需求量只有 20 万吨,那么我们最大收益策略应该是卖出全部 15 万吨第 2 种月饼、以及 5 万吨第 3 种月饼,获得 72 + 45/2 = 94.5(亿元)。</p><p><strong>输入格式:</strong></p><p>每个输入包含一个测试用例。每个测试用例先给出一个不超过 1000 的正整数 N 表示月饼的种类数、以及不超过 500(以万吨为单位)的正整数 D 表示市场最大需求量。随后一行给出 N 个正数表示每种月饼的库存量(以万吨为单位);最后一行给出 N 个正数表示每种月饼的总售价(以亿元为单位)。数字间以空格分隔。</p><p><strong>输出格式:</strong></p><p>对每组测试用例,在一行中输出最大收益,以亿元为单位并精确到小数点后 2 位。</p><p><strong>输入样例:</strong></p><pre>3 2018 15 1075 72 45</pre><strong>输出样例:</strong><pre>94.50</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><cstdio></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><algorithm></span></span></span><br><span class="line"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="built_in">std</span>;</span><br><span class="line"></span><br><span class="line"><span class="class"><span class="keyword">struct</span> <span class="title">mooncake</span>{</span></span><br><span class="line"> <span class="keyword">double</span> store;</span><br><span class="line"> <span class="keyword">double</span> sell;</span><br><span class="line"> <span class="keyword">double</span> price;</span><br><span class="line">}cake[<span class="number">1001</span>];</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">bool</span> <span class="title">cmp</span><span class="params">(mooncake a, mooncake b)</span></span>{</span><br><span class="line"> <span class="keyword">return</span> a.price > b.price;</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span>{</span><br><span class="line"> <span class="keyword">int</span> N, D;</span><br><span class="line"> <span class="keyword">double</span> sum = <span class="number">0</span>;</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%d %d"</span>, &N, &D);</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < N; ++i){</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%lf"</span>, &cake[i].store);</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < N; ++i){</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%lf"</span>, &cake[i].sell);</span><br><span class="line"> cake[i].price = cake[i].sell / cake[i].store;</span><br><span class="line"> }</span><br><span class="line"> sort(cake, cake + N, cmp);</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < N; ++i){</span><br><span class="line"> <span class="keyword">if</span>(D >= cake[i].store){</span><br><span class="line"> D -= cake[i].store;</span><br><span class="line"> sum += cake[i].price * cake[i].store;</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">else</span>{</span><br><span class="line"> sum += cake[i].price * D;</span><br><span class="line"> <span class="keyword">break</span>;</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%.2f"</span>, sum);</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="分析"><a href="#分析" class="headerlink" title="分析"></a>分析</h1><p>其实这是一个非常简单的问题,就是当时做的时候没有想到这个点。可能真是当局者迷。</p></the>]]></content>
<categories>
<category> 拼题A </category>
</categories>
<tags>
<tag> PTA </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1017题</title>
<link href="/2019/02/08/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1017%E9%A2%98/"/>
<url>/2019/02/08/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1017%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><a href="http://www.adwardx.top/2019/01/24/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E5%88%B7%E9%A2%98%E6%89%93%E5%8D%A1%E4%B9%8B%E4%B9%99%E7%BA%A7%E7%AF%87/#2019%E5%B9%B42%E6%9C%885%E6%97%A5">打卡文</a><br><a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。</p><p><strong>输入格式:</strong></p><p>输入在一行中依次给出 A 和 B,中间以 1 空格分隔。</p><p><strong>输出格式:</strong></p><p>在一行中依次输出 Q 和 R,中间以 1 空格分隔。</p><p><strong>输入样例:</strong></p><pre>123456789050987654321 7</pre><strong>输出样例:</strong><pre>17636684150141093474 3</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><cstdio></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><cstring></span></span></span><br><span class="line"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="built_in">std</span>;</span><br><span class="line"><span class="keyword">char</span> a[<span class="number">1001</span>];</span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span> </span>{</span><br><span class="line"><span class="keyword">int</span> ans[<span class="number">1001</span>], b, temp = <span class="number">0</span>;</span><br><span class="line"><span class="built_in">scanf</span>(<span class="string">"%s %d"</span>, a, &b);</span><br><span class="line"><span class="keyword">int</span> n = <span class="built_in">strlen</span>(a);</span><br><span class="line"><span class="keyword">for</span> (<span class="keyword">int</span> i = <span class="number">0</span>; i < n; i++) {</span><br><span class="line">temp = temp * <span class="number">10</span> + a[i] - <span class="string">'0'</span>; <span class="comment">//和上一步的余数进行合成</span></span><br><span class="line">ans[i] = temp / b; <span class="comment">//求商</span></span><br><span class="line">temp = temp % b; <span class="comment">//求余数</span></span><br><span class="line">}</span><br><span class="line"><span class="keyword">bool</span> flag = <span class="literal">true</span>; </span><br><span class="line"><span class="keyword">for</span> (<span class="keyword">int</span> i = <span class="number">0</span>; i < n<span class="number">-1</span>; i++) { </span><br><span class="line"><span class="keyword">if</span> (flag && ans[i] != <span class="number">0</span>) </span><br><span class="line">flag = <span class="literal">false</span>;</span><br><span class="line"><span class="keyword">if</span> (!flag)</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">"%d"</span>, ans[i]);</span><br><span class="line">}</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">"%d %d"</span>, ans[n - <span class="number">1</span>], temp);</span><br><span class="line"><span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="分析"><a href="#分析" class="headerlink" title="分析"></a>分析</h1><p>本题位数最大有1000,故用int,long long都无法存储,故采用数组形式对商进行存储。做运算的时候可参考平常手写的那种步骤,于是就有了for循环的内容。关于输出要注意的一点有,最高位的0是不输出的,但商为0时要输出0。</p></the>]]></content>
<categories>
<category> 拼题A </category>
</categories>
<tags>
<tag> PTA </tag>
</tags>
</entry>
<entry>
<title>《2019-02-05》到复试前的To-do-list</title>
<link href="/2019/02/05/%E3%80%8A2019-02-05%E3%80%8B%E5%88%B0%E5%A4%8D%E8%AF%95%E5%89%8D%E7%9A%84To-do-list/"/>
<url>/2019/02/05/%E3%80%8A2019-02-05%E3%80%8B%E5%88%B0%E5%A4%8D%E8%AF%95%E5%89%8D%E7%9A%84To-do-list/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br>今天初一,昨天刚好把PAT乙级题库刷的差不多,现如今已经在收尾阶段了,希望在新的一年执行力,智力都能有较大的提升<a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="To-do-list"><a href="#To-do-list" class="headerlink" title="To do list"></a>To do list</h1><p><input type="checkbox" onclick="return false;"> PAT乙级题库二刷+做总结(长期)</p><p><input type="checkbox" onclick="return false;"> 复试前的操作系统复习</p><p><input type="checkbox" onclick="return false;"> 复试前的软件工程复习</p><p><input type="checkbox" onclick="return false;"> 做一个小程序</p><p><input type="checkbox" onclick="return false;"> 学习机器学习基础相关</p></the>]]></content>
<tags>
<tag> todo </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之刷题打卡之乙级篇</title>
<link href="/2019/01/24/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E5%88%B7%E9%A2%98%E6%89%93%E5%8D%A1%E4%B9%8B%E4%B9%99%E7%BA%A7%E7%AF%87/"/>
<url>/2019/01/24/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E5%88%B7%E9%A2%98%E6%89%93%E5%8D%A1%E4%B9%8B%E4%B9%99%E7%BA%A7%E7%AF%87/</url>
<content type="html"><文章是从2019年1月5日到2019年1月23日的,这段期间的刷题是按照算法笔记这本书上来甲级乙级混着一起刷的,而现在考虑到自身能力和时间问题,甲级的题目暂且先放一放,专心准备乙级和复试。<img src='/images/algorithm.jpg' width="100" style="float:left" alt=""/>--><h1 id="2019年1月5日"><a href="#2019年1月5日" class="headerlink" title="2019年1月5日"></a>2019年1月5日</h1><p>B1016,B1026</p><h1 id="2019年1月6日"><a href="#2019年1月6日" class="headerlink" title="2019年1月6日"></a>2019年1月6日</h1><p>A1042</p><h1 id="2019年1月7日"><a href="#2019年1月7日" class="headerlink" title="2019年1月7日"></a>2019年1月7日</h1><font color="red">停电一天</font><h1 id="2019年1月8日"><a href="#2019年1月8日" class="headerlink" title="2019年1月8日"></a>2019年1月8日</h1><p>A1046,A1065,B1010,B1002,B1009</p><h1 id="2019年1月9日"><a href="#2019年1月9日" class="headerlink" title="2019年1月9日"></a>2019年1月9日</h1><p>B1041,B1004,B1028,B1032,A1011</p><h1 id="2019年1月10日"><a href="#2019年1月10日" class="headerlink" title="2019年1月10日"></a>2019年1月10日</h1><p>A1006,A1036,B1036,B1027,A1031</p><h1 id="2019年1月11日"><a href="#2019年1月11日" class="headerlink" title="2019年1月11日"></a>2019年1月11日</h1><p>B1022,B1037,A1019,A1027,A1058</p><h1 id="2019年1月12日"><a href="#2019年1月12日" class="headerlink" title="2019年1月12日"></a>2019年1月12日</h1><p>B1006,B1021,B1031,B1002,B1009</p><h1 id="2019年1月13日"><a href="#2019年1月13日" class="headerlink" title="2019年1月13日"></a>2019年1月13日</h1><p>B1014,A1061,B1024,A1073,B1048,A1001,A1005</p><h1 id="2019年1月14日"><a href="#2019年1月14日" class="headerlink" title="2019年1月14日"></a>2019年1月14日</h1><p>A1035,A1077,A1082 <pre>入门篇——入门模拟结束</pre><br>B1015,A1062,A1012</p><h1 id="2019年1月15日"><a href="#2019年1月15日" class="headerlink" title="2019年1月15日"></a>2019年1月15日</h1><p>A1016,A1025,A1028,A1055,A1075</p><h1 id="2019年1月16日"><a href="#2019年1月16日" class="headerlink" title="2019年1月16日"></a>2019年1月16日</h1><p>A1083,A1080,A1095,B1029,A1084</p><h1 id="2019年1月17日"><a href="#2019年1月17日" class="headerlink" title="2019年1月17日"></a>2019年1月17日</h1><p>有其他事,暂停刷一天</p><h1 id="2019年1月18日"><a href="#2019年1月18日" class="headerlink" title="2019年1月18日"></a>2019年1月18日</h1><p>B1033,B1038,B1039,A1092,B1042</p><h1 id="2019年1月19日"><a href="#2019年1月19日" class="headerlink" title="2019年1月19日"></a>2019年1月19日</h1><p>B1043,B1047,A1041,A1050,B1005</p><h1 id="2019年1月20日"><a href="#2019年1月20日" class="headerlink" title="2019年1月20日"></a>2019年1月20日</h1><p>A1048,B1023,B1020,A1070,A1033</p><h1 id="2019年1月21日"><a href="#2019年1月21日" class="headerlink" title="2019年1月21日"></a>2019年1月21日</h1><p>A1037,A1067,A1038,B1030,A1085</p><h1 id="2019年1月22日"><a href="#2019年1月22日" class="headerlink" title="2019年1月22日"></a>2019年1月22日</h1><p>A1010,A1044,A1048,B1035,A1089</p><h1 id="2019年1月23日"><a href="#2019年1月23日" class="headerlink" title="2019年1月23日"></a>2019年1月23日</h1><p>B1040,A1093,B1045,A1101,B1003</p><h1 id="2019年1月24日"><a href="#2019年1月24日" class="headerlink" title="2019年1月24日"></a>2019年1月24日</h1><p>B1019,B1049,B1008,B1034,B1007,B1013,B1017</p><h1 id="2019年1月25日"><a href="#2019年1月25日" class="headerlink" title="2019年1月25日"></a>2019年1月25日</h1><p>B1044,B1025,B1003,B1035,B1050,B1051,B1052</p><h1 id="2019年1月26日"><a href="#2019年1月26日" class="headerlink" title="2019年1月26日"></a>2019年1月26日</h1><p>B1053,B1054,B1055,B1056,B1057,B1058</p><h1 id="2019年1月27日"><a href="#2019年1月27日" class="headerlink" title="2019年1月27日"></a>2019年1月27日</h1><p>B1059,B1060,B1061,B1062,B1063</p><h1 id="2019年1月28日"><a href="#2019年1月28日" class="headerlink" title="2019年1月28日"></a>2019年1月28日</h1><p>B1064,B1065,B1066,B1067,B1068</p><h1 id="2019年1月29日"><a href="#2019年1月29日" class="headerlink" title="2019年1月29日"></a>2019年1月29日</h1><p>B1069,B1070,B1071,B1072,B1073</p><h1 id="2019年1月30日"><a href="#2019年1月30日" class="headerlink" title="2019年1月30日"></a>2019年1月30日</h1><p>B1074,B1075,B1076,B1077,B1078</p><h1 id="2019年1月31日"><a href="#2019年1月31日" class="headerlink" title="2019年1月31日"></a>2019年1月31日</h1><p>B1079,B1080,B1081,B1082,B1083</p><h1 id="2019年2月1日"><a href="#2019年2月1日" class="headerlink" title="2019年2月1日"></a>2019年2月1日</h1><p>B1084,B1085(帮姐姐忙,然后顺便闪了腰<悲催>)</p><h1 id="2019年2月2日"><a href="#2019年2月2日" class="headerlink" title="2019年2月2日"></a>2019年2月2日</h1><p>B1086,B1087(帮姐姐忙)</p><h1 id="2019年2月3日"><a href="#2019年2月3日" class="headerlink" title="2019年2月3日"></a>2019年2月3日</h1><p>B1088,B1089,B1090,B1091</p><h1 id="2019年2月4日"><a href="#2019年2月4日" class="headerlink" title="2019年2月4日"></a>2019年2月4日</h1><p>B1092,B1093,B1094,B1095</p><h1 id="2019年2月5日"><a href="#2019年2月5日" class="headerlink" title="2019年2月5日"></a>2019年2月5日</h1><p>今天初一,题库里的95个题按目标来说算是刷完了,打算回头再看一遍,由于之前有些不懂的题目借鉴了网络上其他大佬们的想法,现在对于这些题目要重新做一遍。并且将之前所做的过程中出现的一些新思路新知识写成总结。</p><p>接下来,还打算做一个小程序,学习一下机器学习相关的基础,目标先订好,希望能尽最大所能去做。</p><h1 id="2019年2月6日"><a href="#2019年2月6日" class="headerlink" title="2019年2月6日"></a>2019年2月6日</h1><p>发烧了,休息了一天</p><h1 id="2019年2月7日"><a href="#2019年2月7日" class="headerlink" title="2019年2月7日"></a>2019年2月7日</h1><p>B1003</p><h1 id="2019年2月8日"><a href="#2019年2月8日" class="headerlink" title="2019年2月8日"></a>2019年2月8日</h1><p>B1017,B1020,B1028,B1033,B1040</p><h1 id="2019年2月9日"><a href="#2019年2月9日" class="headerlink" title="2019年2月9日"></a>2019年2月9日</h1><p>B1043,B1044,B1045,B1060,B1065</p><h1 id="2019年2月10日"><a href="#2019年2月10日" class="headerlink" title="2019年2月10日"></a>2019年2月10日</h1><p>B1078,B1080</p><h1 id="2019年2月11日"><a href="#2019年2月11日" class="headerlink" title="2019年2月11日"></a>2019年2月11日</h1><p>B1083,B1085</p><font color="red">22岁生日</font><h1 id="2019年2月12日"><a href="#2019年2月12日" class="headerlink" title="2019年2月12日"></a>2019年2月12日</h1><p>B1025,B1034,B1035</p><h1 id="2019年2月13日"><a href="#2019年2月13日" class="headerlink" title="2019年2月13日"></a>2019年2月13日</h1><p>帮忙,没刷题</p><h1 id="2019年2月14日"><a href="#2019年2月14日" class="headerlink" title="2019年2月14日"></a>2019年2月14日</h1><p>帮忙,没刷题,学了点python,为成绩焦虑中</p><h1 id="2019年2月15日"><a href="#2019年2月15日" class="headerlink" title="2019年2月15日"></a>2019年2月15日</h1><p>因为成绩的事,焦虑了一天。好害怕没考好,然后让接下来的导师失望。。。</p><h1 id="2019年2月16日"><a href="#2019年2月16日" class="headerlink" title="2019年2月16日"></a>2019年2月16日</h1><p>等了这么久,成绩终于出来了<br><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">英语:<span class="number">56</span></span><br><span class="line">政治:<span class="number">46</span></span><br><span class="line">数学:<span class="number">116</span></span><br><span class="line">专业课:<span class="number">112</span></span><br><span class="line">总分:<span class="number">330</span></span><br></pre></td></tr></table></figure></p><p>我有点开始慌了,这分数==<br>但好歹这么多天来的焦虑总算是结束了,接下来还是好好准备复试,希望一战上岸。</p><h1 id="2019年2月17日"><a href="#2019年2月17日" class="headerlink" title="2019年2月17日"></a>2019年2月17日</h1><p>准备复试第一天,文字小,书厚。看的我头疼</p><h1 id="2019年2月18日"><a href="#2019年2月18日" class="headerlink" title="2019年2月18日"></a>2019年2月18日</h1><p>准备复试第二天<!-- 顺带开始学Python3数据分析与挖掘建模实战 --></p><h1 id="2019年2月19日"><a href="#2019年2月19日" class="headerlink" title="2019年2月19日"></a>2019年2月19日</h1><p>准备复试第三天</p><h1 id="2019年2月20日"><a href="#2019年2月20日" class="headerlink" title="2019年2月20日"></a>2019年2月20日</h1><p>准备复试第四天,买的资料也到了</p><h1 id="2019年2月21日"><a href="#2019年2月21日" class="headerlink" title="2019年2月21日"></a>2019年2月21日</h1><p>休息</p><h1 id="2019年2月22日"><a href="#2019年2月22日" class="headerlink" title="2019年2月22日"></a>2019年2月22日</h1><p>准备复试第五天,同时了解了flask的一些相关知识</p><h1 id="2019年2月23日"><a href="#2019年2月23日" class="headerlink" title="2019年2月23日"></a>2019年2月23日</h1><p>准备复试第六天</p><h1 id="2019年2月24日"><a href="#2019年2月24日" class="headerlink" title="2019年2月24日"></a>2019年2月24日</h1><p>准备复试第七天</p><h1 id="2019年2月25日"><a href="#2019年2月25日" class="headerlink" title="2019年2月25日"></a>2019年2月25日</h1><p>准备复试第八天</p><h1 id="2019年2月26日"><a href="#2019年2月26日" class="headerlink" title="2019年2月26日"></a>2019年2月26日</h1><p>对Python有了新的了解,在以前的基础上进行了新的知识扩充</p><h1 id="2019年2月27日"><a href="#2019年2月27日" class="headerlink" title="2019年2月27日"></a>2019年2月27日</h1><p>复习了正则表达式,装饰器。准备复试第九天</p><h1 id="2019年2月28日"><a href="#2019年2月28日" class="headerlink" title="2019年2月28日"></a>2019年2月28日</h1><p>准备复试第十天,了解了点requests</p></the>]]></content>
<categories>
<category> 拼题A </category>
</categories>
<tags>
<tag> PTA </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1077题</title>
<link href="/2019/01/15/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1077%E9%A2%98/"/>
<url>/2019/01/15/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1077%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br>如题<a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>1077 Kuchiguse (20 分)</p><p>The Japanese language is notorious for its sentence ending particles. Personal preference of such particles can be considered as a reflection of the speaker’s personality. Such a preference is called “Kuchiguse” and is often exaggerated artistically in Anime and Manga. For example, the artificial sentence ending particle “nyan~” is often used as a stereotype for characters with a cat-like personality:</p><pre>Itai nyan~ (It hurts, nyan~)</pre><pre>Ninjin wa iyada nyan~ (I hate carrots, nyan~)</pre><p>Now given a few lines spoken by the same character, can you find her Kuchiguse?</p><p><strong>Input Specification:</strong><br><br>Each input file contains one test case. For each case, the first line is an integer N (2≤N≤100). Following are N file lines of 0~256 (inclusive) characters in length, each representing a character’s spoken line. The spoken lines are case sensitive.</p><p><strong>Output Specification:</strong><br><br>For each test case, print in one line the kuchiguse of the character, i.e., the longest common suffix of all N lines. If there is no such suffix, write nai.</p><p><strong>Sample Input 1:</strong></p><pre>3Itai nyan~Ninjin wa iyadanyan~uhhh nyan~</pre><strong>Sample Output 1:</strong><pre>nyan~</pre><strong>Sample Input 2:</strong><pre>3Itai!Ninjinnwaiyada T_TT_T</pre><strong>Sample Output 2:</strong><pre>nai</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><iostream></span></span></span><br><span class="line"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="built_in">std</span>;</span><br><span class="line"><span class="keyword">const</span> <span class="keyword">int</span> MAX_N = <span class="number">101</span>;</span><br><span class="line"><span class="keyword">const</span> <span class="keyword">int</span> MAX_M = <span class="number">257</span>;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span>{</span><br><span class="line"> <span class="keyword">int</span> N, count = <span class="number">0</span>, minLength = <span class="number">257</span>;</span><br><span class="line"> <span class="built_in">string</span> temp[MAX_N];</span><br><span class="line"> <span class="built_in">cin</span>>>N;</span><br><span class="line"> <span class="built_in">cin</span>.ignore();</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < N; ++i){</span><br><span class="line"> getline(<span class="built_in">cin</span>, temp[i]);</span><br><span class="line"> <span class="keyword">if</span>(minLength > temp[i].length()) minLength = temp[i].length();</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> j = <span class="number">0</span>; j < temp[i].length() / <span class="number">2</span>; ++j){</span><br><span class="line"> <span class="keyword">char</span> a = temp[i][j];</span><br><span class="line"> temp[i][j] = temp[i][temp[i].length() - <span class="number">1</span> - j];</span><br><span class="line"> temp[i][temp[i].length() - <span class="number">1</span> - j] = a;</span><br><span class="line"> } <span class="comment">// 翻转</span></span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < minLength; ++i){</span><br><span class="line"> <span class="keyword">bool</span> same = <span class="literal">true</span>;</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> j = <span class="number">1</span>; j < N; ++j){</span><br><span class="line"> <span class="keyword">if</span>(temp[<span class="number">0</span>][i] != temp[j][i]){</span><br><span class="line"> same = <span class="literal">false</span>;</span><br><span class="line"> <span class="keyword">break</span>;</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">if</span>(same) count++;</span><br><span class="line"> <span class="keyword">else</span> <span class="keyword">break</span>;</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">if</span>(!count)<span class="built_in">cout</span><<<span class="string">"nai"</span><<<span class="built_in">endl</span>;</span><br><span class="line"> <span class="keyword">else</span>{</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = count - <span class="number">1</span>; i >= <span class="number">0</span>; --i){</span><br><span class="line"> <span class="built_in">cout</span><<temp[<span class="number">0</span>][i];</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="错误分析"><a href="#错误分析" class="headerlink" title="错误分析"></a>错误分析</h1><blockquote><p>没弄清楚题目要求的是求相同的后缀,第一时间的做法是想着求所有字符串中相同的子串,然后就跑偏了。</p></blockquote></the>]]></content>
<categories>
<category> 拼题A </category>
</categories>
<tags>
<tag> PTA </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1058题</title>
<link href="/2019/01/13/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1058%E9%A2%98/"/>
<url>/2019/01/13/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1058%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br>如题<a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>1058 A+B in Hogwarts (20 分)</p><p>If you are a fan of Harry Potter, you would know the world of magic has its own currency system – as Hagrid explained it to Harry, “Seventeen silver Sickles to a Galleon and twenty-nine Knuts to a Sickle, it’s easy enough.” Your job is to write a program to compute A+B where A and B are given in the standard form of Galleon.Sickle.Knut (Galleon is an integer in [0,10^7], Sickle is an integer in [0, 17), and Knut is an integer in [0, 29)).</p><p><strong>Input Specification:</strong><br>Each input file contains one test case which occupies a line with A and B in the standard form, separated by one space.</p><p><strong>Output Specification:</strong><br>For each test case you should output the sum of A and B in one line, with the same format as the input.</p><p><strong>Sample Input:</strong></p><pre>3.2.1 10.16.27</pre><strong>Sample Output:</strong><pre>14.1.28</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><cstdio></span></span></span><br><span class="line"><span class="keyword">const</span> <span class="keyword">int</span> Galleon = <span class="number">17</span> * <span class="number">29</span>;</span><br><span class="line"><span class="keyword">const</span> <span class="keyword">int</span> Sickle = <span class="number">29</span>;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span>{</span><br><span class="line"> <span class="keyword">int</span> a1, b1, c1;</span><br><span class="line"> <span class="keyword">int</span> a2, b2, c2;</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%d.%d.%d %d.%d.%d"</span>, &a1, &b1, &c1, &a2, &b2, &c2);</span><br><span class="line"> <span class="keyword">int</span> price = a1 * Galleon + b1 * Sickle + c1;</span><br><span class="line"> <span class="keyword">int</span> pay = a2 * Galleon + b2 * Sickle + c2;</span><br><span class="line"> <span class="keyword">int</span> sum = price + pay;</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%d.%d.%d"</span>, sum / Galleon, sum % Galleon / Sickle, sum % Sickle);</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="不解"><a href="#不解" class="headerlink" title="不解"></a>不解</h1><blockquote><p>按理来说,这个代码跑出来的结果应该是符合要求的,也没有出现溢出情况。得分(18/20)</p></blockquote></the>]]></content>
<categories>
<category> 拼题A </category>
</categories>
<tags>
<tag> PTA </tag>
</tags>
</entry>
<entry>
<title>《通不过的样例》</title>
<link href="/2019/01/10/%E3%80%8A%E9%80%9A%E4%B8%8D%E8%BF%87%E7%9A%84%E6%A0%B7%E4%BE%8B%E3%80%8B/"/>
<url>/2019/01/10/%E3%80%8A%E9%80%9A%E4%B8%8D%E8%BF%87%E7%9A%84%E6%A0%B7%E4%BE%8B%E3%80%8B/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br>来自牛客网的一个题<a id="more"></a></excerpt></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>nowcoder有两盒(A、B)乒乓球,有红双喜的、有亚力亚的……现在他需要判别A盒是否包含了B盒中所有的种类,并且每种球的数量不少于B盒中的数量,该怎么办呢?</p><p><strong>输入描述:</strong><br>输入有多组数据。<br>每组数据包含两个字符串A、B,代表A盒与B盒中的乒乓球,每个乒乓球用一个大写字母表示,即相同类型的乒乓球为相同的大写字母。<br>字符串长度不大于10000。</p><p><strong>输出描述:</strong><br>每一组输入对应一行输出:如果B盒中所有球的类型在A中都有,并且每种球的数量都不大于A,则输出“Yes”;否则输出“No”。</p><p><strong>输入样例:</strong></p><pre>ABCDFYE CDEABCDGEAS CDECDE</pre><p><strong>输出样例:</strong></p><pre>YesNo</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/*</span></span><br><span class="line"><span class="comment"> 对这题的理解:</span></span><br><span class="line"><span class="comment"> 统计A,B2个字符串的相同元素个数,并且判断A中是否含有B所有的字符 && 对应数量上要>=B中字符的数量</span></span><br><span class="line"><span class="comment">*/</span> </span><br><span class="line"></span><br><span class="line"><span class="comment">// 每组数据包含两个字符串A、B,代表A盒与B盒中的乒乓球,每个乒乓球用一个大写字母表示,即相同类型的乒乓球为相同的大写字母。</span></span><br><span class="line"></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><iostream></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><cstdio></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><string></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">define</span> N 26 <span class="comment">// 乒乓球用大写字母表示,故26个空间即可</span></span></span><br><span class="line"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="built_in">std</span>;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span>{</span><br><span class="line"> <span class="built_in">string</span> A, B;</span><br><span class="line"> <span class="keyword">bool</span> flag = <span class="literal">true</span>;</span><br><span class="line"> <span class="keyword">while</span>(<span class="built_in">cin</span>>>A>>B){</span><br><span class="line"> <span class="keyword">int</span> AType[N] = {<span class="number">0</span>}, BType[N] = {<span class="number">0</span>};</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < A.length(); ++i){</span><br><span class="line"> ++AType[A[i] - <span class="number">0</span> - <span class="number">65</span>];</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < B.length(); ++i){</span><br><span class="line"> ++BType[B[i] - <span class="number">0</span> - <span class="number">65</span>];</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; i < N; ++i){</span><br><span class="line"> <span class="keyword">if</span>(AType[i] < BType[i]){</span><br><span class="line"> flag = <span class="literal">false</span>;</span><br><span class="line"> <span class="keyword">break</span>;</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">if</span>(!flag){</span><br><span class="line"> <span class="built_in">cout</span><<<span class="string">"No"</span><<<span class="built_in">endl</span>;</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">else</span>{</span><br><span class="line"> <span class="built_in">cout</span><<<span class="string">"Yes"</span><<<span class="built_in">endl</span>;</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="注"><a href="#注" class="headerlink" title="注"></a>注</h1><p><pre><br>ABCDEFGHIJKLMNOPQRSTUVWXYZ ZYXWVUTSRQPONMLKJIHGFEDCBA<br></pre><br>这个样例在本地电脑的dev-c++编译输出Yes,<br><img src="/images/localrun.png" alt="dev-c++编译"><br>以及<a href="https://www.dooccn.com/c/" target="_blank" rel="noopener">在线编译</a>也输出Yes。<br><img src="/images/onlinerun.png" alt="在线编译"><br>然而牛客网给的输出的是No。<br><img src="/images/niukerun.png" alt="牛客编译"></p></the>]]></content>
<categories>
<category> 牛客 </category>
</categories>
</entry>
<entry>
<title>《PTA——拼题A》之第1011题</title>
<link href="/2019/01/04/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1011%E9%A2%98/"/>
<url>/2019/01/04/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1011%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excpert in="" index="" |="" 首页摘要=""><br> 如题<a id="more"></a></excpert></p><the rest="" of="" content="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>给定区间[−2^31, 2^31] 内的 3 个整数 A、B 和 C,请判断 A+B 是否大于 C。</p><p><strong>输入格式:</strong>输入第 1 行给出正整数 T (≤10),是测试用例的个数。随后给出 T 组测试用例,每组占一行,顺序给出 A、B 和 C。整数间以空格分隔。</p><p><strong>输出格式:</strong>对每组测试用例,在一行中输出 Case #X: true 如果 A+B>C,否则输出 Case #X: false,其中 X 是测试用例的编号(从 1 开始)。</p><p><strong>输入样例:</strong></p><pre>41 2 32 3 42147483647 0 21474836460 -2147483648 -2147483647</pre><strong>输出样例:</strong><pre>Case #1: falseCase #2: trueCase #3: trueCase #4: false</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><cstdio></span></span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span>{</span><br><span class="line"> <span class="keyword">int</span> T , tcase = <span class="number">1</span>;</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%d"</span>, &T);</span><br><span class="line"> <span class="keyword">while</span>(T--){</span><br><span class="line"> <span class="keyword">long</span> <span class="keyword">long</span> a, b, c;</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%lld%lld%lld"</span>, &a, &b, &c);</span><br><span class="line"> <span class="keyword">if</span>(a + b > c){</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"Case #%d: true\n"</span>, tcase++);</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">else</span> {</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"Case #%d: false\n"</span>, tcase++);</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="错误分析"><a href="#错误分析" class="headerlink" title="错误分析"></a>错误分析</h1><h2 id="思路"><a href="#思路" class="headerlink" title="思路"></a>思路</h2><p>此题出现的错误为:<font color="red">数据范围和ld格式用的比较少</font></p><h2 id="新的知识"><a href="#新的知识" class="headerlink" title="新的知识"></a>新的知识</h2><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><cstdio></span></span></span><br></pre></td></tr></table></figure><blockquote><p>cstdio是将stdio.h的内容用C++头文件的形式表示出来。用c++编译器编译</p></blockquote></the>]]></content>
<categories>
<category> 拼题A </category>
</categories>
<tags>
<tag> PTA </tag>
</tags>
</entry>
<entry>
<title>《2019-01-03》新的一年继续</title>
<link href="/2019/01/03/%E3%80%8A2019-01-03%E3%80%8B%E6%96%B0%E7%9A%84%E4%B8%80%E5%B9%B4%E7%BB%A7%E7%BB%AD/"/>
<url>/2019/01/03/%E3%80%8A2019-01-03%E3%80%8B%E6%96%B0%E7%9A%84%E4%B8%80%E5%B9%B4%E7%BB%A7%E7%BB%AD/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><img src="/images/new_year_2019.png" width="30%"><br>2019考研已于2018年12月23日下午5点正式结束,考多少算多少。接下来规划一下短期计划。<br><a id="more"></a></excerpt></p><the rest="" of="" contents="" |="" 余下全文=""><h1 id="PAT甲级"><a href="#PAT甲级" class="headerlink" title="PAT甲级"></a>PAT甲级</h1><h1 id="北京工业大学复试"><a href="#北京工业大学复试" class="headerlink" title="北京工业大学复试"></a>北京工业大学复试</h1><h1 id="做一个全网解析VIP的网址"><a href="#做一个全网解析VIP的网址" class="headerlink" title="做一个全网解析VIP的网址"></a>做一个全网解析VIP的网址</h1><blockquote><p>于2019年1月4日 18点43分大部分完成,<a href="www.adwardmovie.top">点击进入网站</a></p></blockquote><h1 id="做一个小程序"><a href="#做一个小程序" class="headerlink" title="做一个小程序"></a>做一个小程序</h1><blockquote><p>看起来这么几个字而已,接下来要花很大的时间了==</p></blockquote></the>]]></content>
<tags>
<tag> 其他 </tag>
</tags>
</entry>
<entry>
<title>Yelee主题的打赏整合</title>
<link href="/2018/08/08/Yelee%E4%B8%BB%E9%A2%98%E7%9A%84%E6%89%93%E8%B5%8F%E6%95%B4%E5%90%88/"/>
<url>/2018/08/08/Yelee%E4%B8%BB%E9%A2%98%E7%9A%84%E6%89%93%E8%B5%8F%E6%95%B4%E5%90%88/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><img src="/images/dashang.png" alt="dashang"><br>Yelee主题是不自带打赏功能的,本文将给出Yelee主题接入打赏模块的操作<a id="more"></a></excerpt></p><the rest="" of="" contents="" |="" 余下全文=""><h1 id="编写打赏模块的代码"><a href="#编写打赏模块的代码" class="headerlink" title="编写打赏模块的代码"></a>编写打赏模块的代码</h1><p>在<code>themes/yelee/layout/_partial/</code>目录下新建<font color="red">donate.ejs</font>文件,其中内容如下:<br><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag"><<span class="name">div</span> <span class="attr">class</span> =<span class="string">"post-donate"</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">div</span> <span class="attr">id</span>=<span class="string">"donate_board"</span> <span class="attr">class</span>=<span class="string">"donate_bar center"</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">a</span> <span class="attr">id</span>=<span class="string">"btn_donate"</span> <span class="attr">class</span>=<span class="string">"btn_donate"</span> <span class="attr">href</span>=<span class="string">"javascript:;"</span> <span class="attr">title</span>=<span class="string">"打赏"</span>></span><span class="tag"></<span class="name">a</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">span</span> <span class="attr">class</span>=<span class="string">"donate_txt"</span>></span></span><br><span class="line"> ↑<span class="tag"><<span class="name">br</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">%=theme.donate_message%</span>></span></span><br><span class="line"> <span class="tag"></<span class="name">span</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">br</span>></span></span><br><span class="line"> <span class="tag"></<span class="name">div</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">div</span> <span class="attr">id</span>=<span class="string">"donate_guide"</span> <span class="attr">class</span>=<span class="string">"donate_bar center hidden"</span> ></span></span><br><span class="line"> <span class="comment"><!-- 支付宝打赏图案 --></span></span><br><span class="line"> <span class="tag"><<span class="name">img</span> <span class="attr">src</span>=<span class="string">"<%- theme.root_url %>/img/Alipay.jpg"</span> <span class="attr">alt</span>=<span class="string">"支付宝打赏"</span>></span></span><br><span class="line"> <span class="comment"><!-- 微信打赏图案 --></span></span><br><span class="line"> <span class="tag"><<span class="name">img</span> <span class="attr">src</span>=<span class="string">"<%- theme.root_url %>/img/weixin.jpg"</span> <span class="attr">alt</span>=<span class="string">"微信打赏"</span>></span></span><br><span class="line"> <span class="tag"></<span class="name">div</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">script</span> <span class="attr">type</span>=<span class="string">"text/javascript"</span>></span><span class="undefined"></span></span><br><span class="line"><span class="undefined"> document.getElementById('btn_donate').onclick = function(){</span></span><br><span class="line"><span class="undefined"> $('#donate_board').addClass('hidden');</span></span><br><span class="line"><span class="undefined"> $('#donate_guide').removeClass('hidden');</span></span><br><span class="line"><span class="undefined"> }</span></span><br><span class="line"><span class="undefined"> </span><span class="tag"></<span class="name">script</span>></span></span><br><span class="line"><span class="tag"></<span class="name">div</span>></span></span><br></pre></td></tr></table></figure></p><p><font color="red">注:</font>打赏的图案直接存在<code>themes/yelee/source/img/</code>里面即可,标题可以自行命名。</p><h1 id="设置打赏模块的样式"><a href="#设置打赏模块的样式" class="headerlink" title="设置打赏模块的样式"></a>设置打赏模块的样式</h1><p>在<code>themes/yelee/source/css/_partial/</code>目录下新建<font color="red">donate.styl</font>文件,其中内容如下:<br><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br></pre></td><td class="code"><pre><span class="line"><span class="selector-class">.donate_bar</span> {</span><br><span class="line"> <span class="attribute">text-align</span>: center;</span><br><span class="line"> <span class="attribute">margin-top</span>: <span class="number">5%</span></span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.donate_bar</span> <span class="selector-tag">a</span><span class="selector-class">.btn_donate</span> {</span><br><span class="line"> <span class="attribute">display</span>: inline-block;</span><br><span class="line"> <span class="attribute">width</span>: <span class="number">82px</span>;</span><br><span class="line"> <span class="attribute">height</span>: <span class="number">82px</span>;</span><br><span class="line"> <span class="attribute">margin-left</span>: auto;</span><br><span class="line"> <span class="attribute">margin-right</span>: auto;</span><br><span class="line"> <span class="attribute">background</span>: <span class="built_in">url</span>(http://img.t.sinajs.cn/t5/style/images/apps_PRF/e_media/btn_reward.gif)<span class="built_in">no-repeat</span>;</span><br><span class="line"> <span class="attribute">-webkit-transition</span>: background <span class="number">0s</span>;</span><br><span class="line"> <span class="attribute">-moz-transition</span>: background <span class="number">0s</span>;</span><br><span class="line"> <span class="attribute">-o-transition</span>: background <span class="number">0s</span>;</span><br><span class="line"> <span class="attribute">-ms-transition</span>: background <span class="number">0s</span>;</span><br><span class="line"> <span class="attribute">transition</span>: background <span class="number">0s</span></span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.donate_bar</span> <span class="selector-tag">a</span><span class="selector-class">.btn_donate</span><span class="selector-pseudo">:hover</span> {</span><br><span class="line"> <span class="attribute">background-position</span>: <span class="number">0</span> -<span class="number">82px</span></span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.donate_bar</span> <span class="selector-class">.donate_txt</span> {</span><br><span class="line"> <span class="attribute">display</span>: block;</span><br><span class="line"> <span class="attribute">color</span>: <span class="number">#9d9d9d</span>;</span><br><span class="line"> <span class="attribute">font</span>: <span class="number">14px</span>/<span class="number">2</span> <span class="string">"Microsoft Yahei"</span></span><br><span class="line">}</span><br><span class="line"><span class="selector-class">.donate_bar</span><span class="selector-class">.hidden</span>{</span><br><span class="line"> <span class="attribute">display</span>: none</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.post-donate</span>{</span><br><span class="line"> <span class="attribute">margin-top</span>: <span class="number">80px</span>;</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="selector-id">#donate_guide</span>{</span><br><span class="line"> <span class="attribute">height</span>: <span class="number">210px</span>;</span><br><span class="line"> <span class="attribute">width</span>: <span class="number">420px</span>;</span><br><span class="line"> <span class="attribute">margin</span>: <span class="number">0</span> auto;</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="selector-id">#donate_guide</span> <span class="selector-tag">img</span>{</span><br><span class="line"> <span class="attribute">height</span>: <span class="number">200px</span>;</span><br><span class="line"> <span class="attribute">height</span>: <span class="number">200px</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure></p><p>内容填写完成后,记得在<code>themes/yelee/source/css/style.styl</code>中前面部分添加<code>@import "_partial/donate"</code></p><h1 id="将打赏模块整合到文章中"><a href="#将打赏模块整合到文章中" class="headerlink" title="将打赏模块整合到文章中"></a>将打赏模块整合到文章中</h1><p>在<code>themes/yelee/layout/_partial/article.ejs</code>中的<code></article></code>标签后面添加如下内容:<br><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><% <span class="keyword">if</span> (page.prev || page.next){ %></span><br><span class="line"> <% <span class="keyword">if</span> (!index && theme.donate){ %></span><br><span class="line"> <%- partial(<span class="string">'donate'</span>) %></span><br><span class="line"> <% } %></span><br><span class="line"> <% } %></span><br></pre></td></tr></table></figure></p><p>即可,至此我们的Yelee模块算是整合完成了,但还需要在<font color="red">主题配置文件</font>中将其进行最后的开启操作。</p><h1 id="主题配置文件开启"><a href="#主题配置文件开启" class="headerlink" title="主题配置文件开启"></a>主题配置文件开启</h1><p>在<code>themes/yelee/_config.yml</code>文件中添加如下内容:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"># 是否开启打赏功能</span><br><span class="line">donate: true</span><br><span class="line"># 打赏文案</span><br><span class="line">donate_message: 此文对你有帮助?求支持!1分也是爱~ 谢谢!</span><br></pre></td></tr></table></figure></p><p>这样打赏功能就整合成功了。</p></the>]]></content>
<tags>
<tag> 其他 </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1009题</title>
<link href="/2018/08/05/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1009%E9%A2%98/"/>
<url>/2018/08/05/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1009%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br>如题<a id="more"></a></excerpt></p><the rest="" of="" contents="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。</p><p><strong>输入格式:</strong>测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。</p><p><strong>输出格式:</strong>每个测试用例的输出占一行,输出倒序后的句子。</p><p><strong>输入样例:</strong></p><pre>Hello World Here I Come</pre><strong>输出样例:</strong><pre>Come I Here World Hello</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><stdio.h></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><string.h></span></span></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span></span><br><span class="line"><span class="function"></span>{</span><br><span class="line"> <span class="comment">//读入数据</span></span><br><span class="line"> <span class="keyword">char</span> szData[<span class="number">100</span>];</span><br><span class="line"> fgets(szData,<span class="number">99</span>,<span class="built_in">stdin</span>);</span><br><span class="line"> <span class="comment">//定义数组长度及单词首尾变量</span></span><br><span class="line"> <span class="keyword">int</span> iLength=<span class="built_in">strlen</span>(szData)<span class="number">-1</span>;</span><br><span class="line"> <span class="keyword">int</span> iBegin=<span class="number">0</span>,iEnd=iLength<span class="number">-1</span>;</span><br><span class="line"> <span class="comment">//倒序遍历</span></span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i=iLength<span class="number">-1</span>;i><span class="number">-1</span>;i--)</span><br><span class="line"> {</span><br><span class="line"> <span class="keyword">if</span>(szData[i]==<span class="string">' '</span>)</span><br><span class="line"> {</span><br><span class="line"> <span class="comment">//单词开始为空格后一位</span></span><br><span class="line"> iBegin=i+<span class="number">1</span>;</span><br><span class="line"> <span class="comment">//循环输出该单词</span></span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> j=iBegin;j<=iEnd;j++)</span><br><span class="line"> {</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%c"</span>,szData[j]);</span><br><span class="line"> }</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">" "</span>);</span><br><span class="line"> <span class="comment">//单词末尾为空格前一位</span></span><br><span class="line"> iEnd=i<span class="number">-1</span>;</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="comment">//输出第一个单词</span></span><br><span class="line"> iBegin=<span class="number">0</span>;</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> j=iBegin;j<=iEnd;j++)</span><br><span class="line"> {</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%c"</span>,szData[j]);</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="错误分析"><a href="#错误分析" class="headerlink" title="错误分析"></a>错误分析</h1><h2 id="思路"><a href="#思路" class="headerlink" title="思路"></a>思路</h2><p>拿到此题后的思路是想着用栈的结构体来实现,可是到后来都没有实现成功。因此转移思想为<font color="red">从最后一个字符开始往前读取,如果为空格,则将空格后面所有的字符进行输出。然后更新指向的标记,直到读到第一个元素为止。</font></p><h2 id="新的知识"><a href="#新的知识" class="headerlink" title="新的知识"></a>新的知识</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">fgets(szData,<span class="number">99</span>,<span class="built_in">stdin</span>);</span><br></pre></td></tr></table></figure><p>fgets函数的头文件是<stdio.h>,原型如下:</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">char</span> *<span class="title">fgets</span><span class="params">(<span class="keyword">char</span> *s, <span class="keyword">int</span> size, FILE*stream)</span></span>;</span><br></pre></td></tr></table></figure><p>fgets从stream中读取最多size-1大小的内容到s指定的buffer中,当遇到换行符或EOF时读取结束。读取成功时,返回s地址;失败时返回null。需要注意的是,fgets会在所读取的内容后面添加’\0’,这样,fgets读取的内容中会包括行末尾的’\n’字符。如果要获取读取字符串的长度,可以调用strlen函数获得。</p></the>]]></content>
<categories>
<category> PTA </category>
</categories>
<tags>
<tag> 拼题A </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1008题</title>
<link href="/2018/08/04/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1008%E9%A2%98/"/>
<url>/2018/08/04/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1008%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br>如题<a id="more"></a></excerpt></p><the rest="" of="" contents="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>一个数组A中存有N(N&gt0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A~0~ A~1~……A~N-1~)变换为(A~N-M~ …… A~N-1~ A~0~ A~1~……A~N-M-1~)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?</p><p><strong>输入格式:</strong>每个输入包含一个测试用例,第1行输入N ( 1<=N<=100)、M(M>=0);第2行输入N个整数,之间用空格分隔。</p><p><strong>输出格式:</strong>在一行中输出循环右移M位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。</p><p><strong>输入样例:</strong></p><pre>6 21 2 3 4 5 6</pre><strong>输出样例:</strong><pre>5 6 1 2 3 4</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><stdio.h></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">define</span> MAXSIZE 101</span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">void</span> <span class="title">move</span><span class="params">(<span class="keyword">int</span> A[], <span class="keyword">int</span> N, <span class="keyword">int</span> M)</span></span>{</span><br><span class="line"> <span class="keyword">for</span>(; M < N - <span class="number">1</span>; ++M){</span><br><span class="line"> A[N-M] = A[N-M<span class="number">-1</span>];</span><br><span class="line"> }</span><br><span class="line"> A[<span class="number">1</span>] = A[<span class="number">0</span>];</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span>{</span><br><span class="line"> <span class="keyword">int</span> N, M, A[MAXSIZE]={<span class="number">0</span>}; <span class="comment">//A[0]用来存储需要移动的元素</span></span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%d %d"</span>, &N, &M);</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">1</span>; i <= N; ++i){</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%d"</span>, &A[i]);</span><br><span class="line"> }</span><br><span class="line"> M = M % N; <span class="comment">//极其重要</span></span><br><span class="line"> <span class="keyword">if</span>(N == M){</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = N; i >= <span class="number">1</span>; --i){</span><br><span class="line"> <span class="keyword">if</span>( i == <span class="number">1</span> )</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%d"</span>, A[i]);</span><br><span class="line"> <span class="keyword">else</span> <span class="built_in">printf</span>(<span class="string">"%d "</span>, A[i]);</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">else</span> {</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">1</span>; i <= M;++i){</span><br><span class="line"> A[<span class="number">0</span>] = A[N - i + <span class="number">1</span>];</span><br><span class="line"> A[N - i + <span class="number">1</span>] = A[N - M];</span><br><span class="line"> move(A, N, M);</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">1</span>; i <= N; ++i){</span><br><span class="line"> <span class="keyword">if</span>( i == N )</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%d"</span>, A[i]);</span><br><span class="line"> <span class="keyword">else</span> <span class="built_in">printf</span>(<span class="string">"%d "</span>, A[i]);</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="知识分析"><a href="#知识分析" class="headerlink" title="知识分析"></a>知识分析</h1><h2 id="思路"><a href="#思路" class="headerlink" title="思路"></a>思路</h2><p>拿到此题后的思路为,<font color="red">开辟一个数组大小为N+1,A[0]用来存储元素,下标1——N则为数组正常元素。要移动M个元素,先将最后一个值拿出来存储,然后数组其他的元素往后移动N-M个位置,最后将拿出来的元素放到A[0]即可。</font>具体思路如下:</p><ol><li>最后一个元素A[N]赋值给A[0];</li><li>令A[N - i + 1] = A[N - M];这样做的目的是将移动M个元素分解为移动1个元素。<font color="red">//晚点用好一点的术语描述</font>,1≤i≤M;</li><li>将A[1]到A[N-M]的值均往后移1位;移动完毕之后A[1] = A[0]</li><li>重复上述3个步骤,直至i == M即可。</li></ol><h2 id="出错分析"><a href="#出错分析" class="headerlink" title="出错分析"></a>出错分析</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">M = M % N; <span class="comment">//极其重要</span></span><br><span class="line"><span class="keyword">if</span>(N == M){</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = N; i >= <span class="number">1</span>; --i){</span><br><span class="line"> <span class="keyword">if</span>( i == <span class="number">1</span> )</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%d"</span>, A[i]);</span><br><span class="line"> <span class="keyword">else</span> <span class="built_in">printf</span>(<span class="string">"%d "</span>, A[i]);</span><br><span class="line"> }</span><br><span class="line">}</span><br></pre></td></tr></table></figure><p>提交完整的正确答案之前没有考虑极端情况,即<font color="red"></font></p><ol><li>M>N的时候,此时应该对N求模。</li><li>M==N的时候,直接倒序输出即可。<br></li></ol></the>]]></content>
<categories>
<category> PTA </category>
</categories>
<tags>
<tag> 拼题A </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1014题</title>
<link href="/2018/08/04/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1014%E9%A2%98/"/>
<url>/2018/08/04/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1014%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br>如题<a id="more"></a></excerpt></p><the rest="" of="" contents="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是第4个字母’D’,代表星期四;第2对相同的字符是’E’,那是第5个英文字母,代表一天里的第14个钟头(于是一天的0点到23点由数字0到9、以及大写字母A到N表示);后面两字符串第1对相同的英文字母’s’出现在第4个位置(从0开始计数)上,代表第4分钟。现给定两对字符串,请帮助福尔摩斯解码得到约会的时间。</p><p><strong>输入格式:</strong></p><p>输入在4行中分别给出4个非空、不包含空格、且长度不超过60的字符串。</p><p><strong>输出格式:</strong></p><p>在一行中输出约会的时间,格式为“DAY HH:MM”,其中“DAY”是某星期的3字符缩写,即MON表示星期一,TUE表示星期二,WED表示星期三,THU表示星期四,FRI表示星期五,SAT表示星期六,SUN表示星期日。题目输入保证每个测试存在唯一解。</p><p><strong>输入样例:</strong></p><pre>3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm</pre><strong>输出样例:</strong><pre>THU 14:04</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><stdio.h></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><ctype.h></span></span></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span></span><br><span class="line"><span class="function"></span>{</span><br><span class="line"> <span class="keyword">int</span> n,i,x=<span class="number">0</span>,flag1=<span class="number">0</span>,flag2=<span class="number">0</span>;</span><br><span class="line"> <span class="comment">//flag1为a,b字符串的第一个相等的标记。</span></span><br><span class="line"> <span class="comment">//flag2为a,b字符串的第二个相等的标记。</span></span><br><span class="line"> <span class="keyword">char</span> a[<span class="number">61</span>],b[<span class="number">61</span>],c[<span class="number">61</span>],d[<span class="number">61</span>];</span><br><span class="line"> gets(a);</span><br><span class="line"> gets(b);</span><br><span class="line"> gets(c);</span><br><span class="line"> gets(d);</span><br><span class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> i = <span class="number">0</span>; a[i] != <span class="string">'\0'</span>&& b[i] != <span class="string">'\0'</span>;i++) </span><br><span class="line"> { </span><br><span class="line"> <span class="keyword">if</span>(a[i] == b[i] && flag1==<span class="number">0</span> && a[i]>=<span class="string">'A'</span> && a[i]<=<span class="string">'G'</span>) </span><br><span class="line"> { </span><br><span class="line"> flag1 = <span class="number">1</span>; </span><br><span class="line"> flag2 = <span class="number">1</span>; </span><br><span class="line"> <span class="keyword">if</span>(a[i] == <span class="string">'A'</span>) </span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"MON "</span>); </span><br><span class="line"> <span class="keyword">if</span>(a[i] == <span class="string">'B'</span>) </span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"TUE "</span>); </span><br><span class="line"> <span class="keyword">if</span>(a[i] == <span class="string">'C'</span>) </span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"WED "</span>); </span><br><span class="line"> <span class="keyword">if</span>(a[i] == <span class="string">'D'</span>) </span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"THU "</span>); </span><br><span class="line"> <span class="keyword">if</span>(a[i] == <span class="string">'E'</span>) </span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"FRI "</span>); </span><br><span class="line"> <span class="keyword">if</span>(a[i] == <span class="string">'F'</span>) </span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"SAT "</span>); </span><br><span class="line"> <span class="keyword">if</span>(a[i] == <span class="string">'G'</span>) </span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"SUN "</span>); </span><br><span class="line"> <span class="keyword">continue</span>; </span><br><span class="line"> } </span><br><span class="line"> <span class="keyword">if</span>(a[i] == b[i] && flag2==<span class="number">1</span>) </span><br><span class="line"> { </span><br><span class="line"> <span class="keyword">if</span>(a[i]>=<span class="string">'0'</span> && a[i]<=<span class="string">'9'</span>) </span><br><span class="line"> { </span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%02d:"</span>,a[i]-<span class="string">'0'</span>); </span><br><span class="line"> <span class="keyword">break</span>; </span><br><span class="line"> } </span><br><span class="line"> <span class="keyword">if</span>(a[i]>=<span class="string">'A'</span>&& a[i]<=<span class="string">'N'</span>) </span><br><span class="line"> { </span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%02d:"</span>,a[i]- <span class="number">55</span>); </span><br><span class="line"> <span class="keyword">break</span>; </span><br><span class="line"> } </span><br><span class="line"> <span class="comment">//时间补位</span></span><br><span class="line"> } </span><br><span class="line"> } </span><br><span class="line"> <span class="keyword">for</span> (i=<span class="number">0</span>;c[i]!=<span class="string">'\0'</span> && d[i]!=<span class="string">'\0'</span>;i++)</span><br><span class="line"> {</span><br><span class="line"> <span class="keyword">if</span> (c[i]==d[i] && <span class="built_in">isalpha</span>(c[i]))</span><br><span class="line"> {</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%02d"</span>,i);</span><br><span class="line"> <span class="keyword">break</span>;</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="知识分析"><a href="#知识分析" class="headerlink" title="知识分析"></a>知识分析</h1><h2 id="知识一"><a href="#知识一" class="headerlink" title="知识一"></a>知识一</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><ctype.h></span></span></span><br></pre></td></tr></table></figure><p>介绍:</p><ol><li>字符测试函数<blockquote><p>函数原型均为int isxxxx(int)<br>参数为int, 任何实参均被提升成整型<br>只能正确处理处于[0, 127]之间的值</p></blockquote></li><li>字符映射函数<blockquote><p>函数原型为int toxxxx(int)<br>对参数进行检测, 若符合范围则转换, 否则不变<br>int tolower(int); ‘A’~’Z’ ==> ‘a’~’z’<br>int toupper(int); ‘a’~’z’ ==> ‘A’~’Z’</p></blockquote></li></ol><blockquote><p>来源:<a href="https://baike.baidu.com/item/ctype.h" target="_blank" rel="noopener">https://baike.baidu.com/item/ctype.h</a></p></blockquote><h2 id="知识二"><a href="#知识二" class="headerlink" title="知识二"></a>知识二</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">printf</span>(<span class="string">"%02d"</span>,i);</span><br></pre></td></tr></table></figure><font color="red">%2d是将数字按宽度为2,采用右对齐方式输出,若数据位数不到2位,则左边补空格。</font><br><font color="red">%02d,和%2d差不多,只不过左边补0。</font></the>]]></content>
<categories>
<category> PTA </category>
</categories>
<tags>
<tag> 拼题A </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之知识集锦</title>
<link href="/2018/08/01/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%9F%A5%E8%AF%86%E9%9B%86%E9%94%A6/"/>
<url>/2018/08/01/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%9F%A5%E8%AF%86%E9%9B%86%E9%94%A6/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><img src="/images/not-smile.png" alt="not-smile"><br>这里存放PTA中出现的由逻辑导致代码大范围出错的问题以及学到的一些新知识<a id="more"></a></excerpt></p><the rest="" of="" contents="" |="" 余下全文=""><h1 id="1048题"><a href="#1048题" class="headerlink" title="1048题"></a>1048题</h1><p>本题要求实现一种数字加密方法。首先固定一个加密用正整数A,对任一正整数B,将其每1位数字与A的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对13取余——这里用J代表10、Q代表11、K代表12;对偶数位,用B的数字减去A的数字,若结果为负数,则再加10。这里令个位为第1位。<br><strong>输入格式:</strong><br>输入在一行中依次给出A和B,均为不超过100位的正整数,其间以空格分隔。<br><strong>输出格式:</strong><br>在一行中输出加密后的结果。<br><strong>输入样例:</strong></p><pre>1234567 368782971</pre><strong>输出样例:</strong><pre>3695Q8118</pre><h2 id="分析"><a href="#分析" class="headerlink" title="分析"></a>分析</h2><p>由于在实际编码中只使用了2组数组,将结果保存在一个数组中。万万没想到,<font color="red">对数组同时进行存储和更新操作是不可行的。应新建数组空间对其进行存储。</font></p><h1 id="1064题"><a href="#1064题" class="headerlink" title="1064题"></a>1064题</h1><p>如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”。例如 123 和 51 就是朋友数,因为 1+2+3 = 5+1 = 6,而 6 就是它们的朋友证号。给定一些整数,要求你统计一下它们中有多少个不同的朋友证号。</p><p><strong>输入格式:</strong><br>输入第一行给出正整数 N。随后一行给出 N 个正整数,数字间以空格分隔。题目保证所有数字小于10的4次方。</p><p><strong>输出格式:</strong><br>首先第一行输出给定数字中不同的朋友证号的个数;随后一行按递增顺序输出这些朋友证号,数字间隔一个空格,且行末不得有多余空格。</p><p><strong>输入样例:</strong></p><pre>8123 899 51 998 27 33 36 12</pre><strong>输出样例:</strong><pre>43 6 9 26</pre><h2 id="分析-1"><a href="#分析-1" class="headerlink" title="分析"></a>分析</h2><p>就目前我所掌握的知识来说,<font color="red">在使用循环的输入过程中输入多个带空格的值存储在数组中特别棘手,</font>经查阅资料后发现,<font color="red">使用getchar()去判断输入中是否带有空格可以解除这个麻烦。</font>代码如下:<br><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">scanf</span>(<span class="string">"%d"</span>, &N);</span><br><span class="line"> <span class="keyword">for</span>(i = <span class="number">0</span>; i < N; ++i){</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%s"</span>, numArray);</span><br><span class="line"> sumcount = allSum(count, numArray);</span><br><span class="line"> <span class="keyword">if</span>(getchar() == <span class="string">' '</span>){</span><br><span class="line"> <span class="keyword">continue</span>;</span><br><span class="line"> }</span><br><span class="line"> }</span><br></pre></td></tr></table></figure></p><h1 id="1005题"><a href="#1005题" class="headerlink" title="1005题"></a>1005题</h1><p>卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。<br>当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对n=3进行验证的时候,我们需要计算3、5、8、4、2、1,则当我们对n=5、8、4、2进行验证的时候,就可以直接判定卡拉兹猜想的真伪,而不需要重复计算,因为这4个数已经在验证3的时候遇到过了,我们称5、8、4、2是被3“覆盖”的数。我们称一个数列中的某个数n为“关键数”,如果n不能被数列中的其他数字所覆盖。</p><p>现在给定一系列待验证的数字,我们只需要验证其中的几个关键数,就可以不必再复验证余下的数字。你的任务就是找出这些关键数字,并按从大到小的顺序输出它们。</p><p><strong>输入格式:</strong>每个测试输入包含1个测试用例,第1行给出一个正整数K(&lt100),第2行给出K个互不相同的待验证的正整数n(1&ltn<=100)的值,数字间用空格隔开。</p><p><strong>输出格式:</strong>每个测试用例的输出占一行,按从大到小的顺序输出关键数字。数字间用1个空格隔开,但一行中最后一个数字后没有空格。</p><p><strong>输入样例:</strong></p><pre>63 5 6 7 8 11</pre><strong>输出样例:</strong><pre>7 6</pre><h2 id="分析-2"><a href="#分析-2" class="headerlink" title="分析"></a>分析</h2><p>思路是开辟2个数组,一个存储数字下标默认设置为0(<font color="red">从1开始</font>),若为1则表示此数字不被覆盖,否则说明此数字被覆盖。之前使用递推导致出现调用空间栈太多,故<font color="red">转递归为迭代</font>。主要代码如下:<br><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">for</span>(i=<span class="number">0</span>;i<n;i++){</span><br><span class="line"> tag = position[i];</span><br><span class="line"> <span class="keyword">while</span>(tag!=<span class="number">0</span> && tag!=<span class="number">1</span>){</span><br><span class="line"> <span class="keyword">if</span>(tag%<span class="number">2</span>==<span class="number">0</span>)</span><br><span class="line"> tag = tag/<span class="number">2</span>;</span><br><span class="line"> <span class="keyword">else</span></span><br><span class="line"> tag = (<span class="number">3</span>*tag+<span class="number">1</span>)/<span class="number">2</span>;</span><br><span class="line"> <span class="keyword">if</span>(tag<=<span class="number">100</span>)</span><br><span class="line"> cover[tag]=<span class="number">0</span>;</span><br><span class="line"> }</span><br><span class="line">}</span><br></pre></td></tr></table></figure></p><h1 id="1010题"><a href="#1010题" class="headerlink" title="1010题"></a>1010题</h1><p>设计函数求一元多项式的导数。(注:x<sup>n</sup>,n为整数)的一阶导数为n*x<sup>n-1</sup>。)</p><p><strong>输入格式:</strong>以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。</p><p><strong>输出格式:</strong>以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是0,但是表示为“0 0”。</p><p><strong>输入样例:</strong></p><pre>3 4 -5 2 6 1 -2 0</pre><strong>输出样例:</strong><pre>12 3 -10 1 6 0</pre><h2 id="分析-3"><a href="#分析-3" class="headerlink" title="分析"></a>分析</h2><p>注意指数为0或者系数为0的情况,即<font color="red">zs*xs = 0</font>以及<font color="red">0多项式的情况</font>。主要代码如下:<br><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">while</span> (<span class="built_in">scanf</span>(<span class="string">"%d %d"</span>,&a,&b)!=EOF)</span><br><span class="line">{</span><br><span class="line"> <span class="keyword">if</span> (a * b!=<span class="number">0</span>){</span><br><span class="line"> <span class="keyword">if</span> (flag!=<span class="number">0</span>)</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">" "</span>);</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%d %d"</span>,a*b,b<span class="number">-1</span>);</span><br><span class="line"> flag++;</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">if</span> (flag==<span class="number">0</span>)</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"0 0"</span>);</span><br><span class="line">}</span><br></pre></td></tr></table></figure></p><font color="red">其中下面这段代码最值得推敲,</font><br><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">while</span> (<span class="built_in">scanf</span>(<span class="string">"%d %d"</span>,&a,&b)!=EOF)</span><br></pre></td></tr></table></figure><br><br>scanf函数返回的是输入的数据的个数,什么都不输入代表-1<br>在scanf(“%d %d”,&a,&b) != EOF 中如果输入两个数字那么scanf函数会返回一个2,如果输入结束,那么scanf函数返回-1。因为-1 == -1,所以循环终止。<br><br><br># <h1>1012题</h1><br>给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:<br><br>A1 = 能被5整除的数字中所有偶数的和;<br><br>A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4…;<br><br>A3 = 被5除后余2的数字的个数;<br><br>A4 = 被5除后余3的数字的平均数,精确到小数点后1位;<br><br>A5 = 被5除后余4的数字中最大数字。<br><br><strong>输入格式:</strong><br><br>每个输入包含1个测试用例。每个测试用例先给出一个不超过1000的正整数N,随后给出N个不超过1000的待分类的正整数。数字间以空格分隔。<br><br><strong>输出格式:</strong><br><br>对给定的N个正整数,按题目要求计算A1~A5并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。<br><br>若其中某一类数字不存在,则在相应位置输出“N”。<br><br><strong>输入样例1:</strong><br><pre><br>13 1 2 3 4 5 6 7 8 9 10 20 16 18</pre><br><strong>输出样例1:</strong><br><pre><br>30 11 2 9.7 9</pre><br><strong>输入样例2:</strong><br><pre><br>8 1 2 4 5 6 7 9 16</pre><br><strong>输出样例2:</strong><br><pre><br>N 11 2 N 9</pre><br><h2>分析</h2><br><font color="red">一个含有5个元素的数组足矣实现本题功能</font><h1 id="C-中的while"><a href="#C-中的while" class="headerlink" title="C++中的while(..)"></a>C++中的while(..)</h1><p>与前面的c语言不同<br><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><iostream></span></span></span><br><span class="line"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="built_in">std</span>;</span><br><span class="line">...</span><br><span class="line"><span class="comment">// numbers</span></span><br><span class="line"><span class="keyword">int</span> n;</span><br><span class="line"><span class="keyword">while</span> (<span class="built_in">cin</span> >> n)</span><br><span class="line">{</span><br><span class="line"> ...</span><br><span class="line">}</span><br><span class="line"><span class="comment">// lines</span></span><br><span class="line"><span class="built_in">string</span> line;</span><br><span class="line"><span class="keyword">while</span> (getline(<span class="built_in">cin</span>, line))</span><br><span class="line">{</span><br><span class="line"> ...</span><br><span class="line">}</span><br><span class="line"><span class="comment">// characters</span></span><br><span class="line"><span class="keyword">char</span> c;</span><br><span class="line"><span class="keyword">while</span> (<span class="built_in">cin</span>.get(c))</span><br><span class="line">{</span><br><span class="line"> ...</span><br><span class="line">}</span><br></pre></td></tr></table></figure></p></the>]]></content>
<categories>
<category> PTA </category>
</categories>
<tags>
<tag> 拼题A </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1081题</title>
<link href="/2018/08/01/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1081%E9%A2%98/"/>
<url>/2018/08/01/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E4%B9%8B%E7%AC%AC1081%E9%A2%98/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br>如题<a id="more"></a></excerpt></p><the rest="" of="" contents="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能。该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母、数字和小数点<code>.</code>,还必须既有字母也有数字。</p><p><strong>输入格式:</strong><br>输入第一行给出一个正整数 N(≤ 100),随后 N 行,每行给出一个用户设置的密码,为不超过 80 个字符的非空字符串,以回车结束。</p><p><strong>输出格式:</strong><br>对每个用户的密码,在一行中输出系统反馈信息,分以下5种:<br><br>如果密码合法,输出<code>Your password is wan mei.</code>;<br><br>如果密码太短,不论合法与否,都输出<code>Your password is tai duan le.</code>;<br><br>如果密码长度合法,但存在不合法字符,则输出<code>Your password is tai luan le.</code>;<br><br>如果密码长度合法,但只有字母没有数字,则输出<code>Your password needs shu zi.</code>;<br><br>如果密码长度合法,但只有数字没有字母,则输出<code>Your password needs zi mu.</code>。<br><br><strong>输入样例:</strong></p><pre>5123szheshi.wodepw1234.5678WanMei23333pass*word.6</pre><strong>输出样例:</strong><pre>Your password is tai duan le.Your password needs shu zi.Your password needs zi mu.Your password is wan mei.Your password is tai luan le.</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><stdio.h></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><string.h></span></span></span><br><span class="line"></span><br><span class="line"><span class="meta">#<span class="meta-keyword">define</span> MAXSIZE 81</span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">define</span> MAXLENGTH 100</span></span><br><span class="line"></span><br><span class="line"><span class="comment">/*</span></span><br><span class="line"><span class="comment">0 代表太短了</span></span><br><span class="line"><span class="comment">1 代表完美</span></span><br><span class="line"><span class="comment">-1 代表需要数字</span></span><br><span class="line"><span class="comment">-2 代表需要字母</span></span><br><span class="line"><span class="comment">-3 代表有不合法字符</span></span><br><span class="line"><span class="comment">*/</span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">checkType</span><span class="params">(<span class="keyword">char</span> password[MAXSIZE])</span></span>{</span><br><span class="line"> <span class="keyword">int</span> i = <span class="number">0</span>, len = <span class="built_in">strlen</span>(password), flag = <span class="number">0</span>;</span><br><span class="line"> <span class="keyword">int</span> numberCount = <span class="number">0</span>, charCount = <span class="number">0</span>, infCount = <span class="number">0</span>;</span><br><span class="line"> <span class="keyword">if</span>( len < <span class="number">6</span> ){</span><br><span class="line"> <span class="keyword">return</span> flag;</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">else</span>{</span><br><span class="line"> <span class="keyword">for</span>(i = <span class="number">0</span> ; password[i] != <span class="string">'\0'</span>; ++i){</span><br><span class="line"> <span class="keyword">if</span>(password[i] <= <span class="string">'9'</span> && password[i] >= <span class="string">'0'</span>)</span><br><span class="line"> ++numberCount;</span><br><span class="line"> <span class="keyword">else</span> <span class="keyword">if</span>( (password[i] <= <span class="string">'z'</span> && password[i] >= <span class="string">'a'</span>) || (password[i] <= <span class="string">'Z'</span> && password[i] >= <span class="string">'A'</span>) )</span><br><span class="line"> ++charCount;</span><br><span class="line"> <span class="keyword">else</span> <span class="keyword">if</span>( password[i] == <span class="string">'.'</span>)</span><br><span class="line"> ;</span><br><span class="line"> <span class="keyword">else</span></span><br><span class="line"> ++infCount;</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">if</span>( !numberCount )</span><br><span class="line"> flag = <span class="number">-1</span>;</span><br><span class="line"> <span class="keyword">else</span> <span class="keyword">if</span>( !charCount )</span><br><span class="line"> flag = <span class="number">-2</span>;</span><br><span class="line"> <span class="keyword">else</span> <span class="keyword">if</span>( infCount )</span><br><span class="line"> flag = <span class="number">-3</span>;</span><br><span class="line"> <span class="keyword">else</span> flag = <span class="number">1</span>;</span><br><span class="line"> <span class="keyword">return</span> flag;</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">void</span> <span class="title">printType</span><span class="params">(<span class="keyword">int</span> flag)</span></span>{</span><br><span class="line"> <span class="keyword">switch</span>(flag){</span><br><span class="line"> <span class="keyword">case</span> <span class="number">0</span>: <span class="built_in">printf</span>(<span class="string">"Your password is tai duan le.\n"</span>);<span class="keyword">break</span>;</span><br><span class="line"> <span class="keyword">case</span> <span class="number">-1</span>: <span class="built_in">printf</span>(<span class="string">"Your password needs shu zi.\n"</span>);<span class="keyword">break</span>;</span><br><span class="line"> <span class="keyword">case</span> <span class="number">-2</span>: <span class="built_in">printf</span>(<span class="string">"Your password needs zi mu.\n"</span>);<span class="keyword">break</span>;</span><br><span class="line"> <span class="keyword">case</span> <span class="number">-3</span>: <span class="built_in">printf</span>(<span class="string">"Your password is tai luan le.\n"</span>);<span class="keyword">break</span>;</span><br><span class="line"> <span class="keyword">default</span>: <span class="built_in">printf</span>(<span class="string">"Your password is wan mei.\n"</span>);</span><br><span class="line"> }</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span>{</span><br><span class="line"> <span class="keyword">int</span> n, i=<span class="number">0</span>;</span><br><span class="line"> <span class="keyword">char</span> password[MAXSIZE];</span><br><span class="line"> <span class="keyword">int</span> flag[MAXLENGTH] = { <span class="number">0</span> };</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%d"</span>, &n);</span><br><span class="line"> getchar();</span><br><span class="line"> <span class="keyword">for</span>(i = <span class="number">0</span>; i < n; ++i){</span><br><span class="line"> gets(password);</span><br><span class="line"> flag[i] = checkType(password);</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">for</span>(i = <span class="number">0</span>; i < n; ++i){</span><br><span class="line"> printType(flag[i]);</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="出错分析"><a href="#出错分析" class="headerlink" title="出错分析"></a>出错分析</h1><h2 id="问题一"><a href="#问题一" class="headerlink" title="问题一"></a>问题一</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">getchar();</span><br><span class="line">...</span><br><span class="line">gets(password);</span><br></pre></td></tr></table></figure><font color="red">此前没有加入getchar(),并且在循环里面用的是scanf(“%s”, password),会出现有一种为含有空格输入的错误。</font>经查阅资料和相关内容后发现,gets()不能单独使用,前面需要加getchar()来稀释掉<font color="red">空格</font>或者<font color="red">换行符</font></the>]]></content>
<categories>
<category> PTA </category>
</categories>
<tags>
<tag> 拼题A </tag>
</tags>
</entry>
<entry>
<title>《PTA——拼题A》之第1004题</title>
<link href="/2018/07/31/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E5%88%B71004%E9%A2%98%E6%9C%89%E6%84%9F/"/>
<url>/2018/07/31/%E3%80%8APTA%E2%80%94%E2%80%94%E6%8B%BC%E9%A2%98A%E3%80%8B%E5%88%B71004%E9%A2%98%E6%9C%89%E6%84%9F/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""></excerpt></p><p><image src="/images/mengxin.png" width="40%"><br> 想着在复习的时候也要开始抓算法的萌新<a id="more"></a></image></p><the rest="" of="" contents="" |="" 余下全文=""><h1 id="题目介绍"><a href="#题目介绍" class="headerlink" title="题目介绍"></a>题目介绍</h1><p>读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。</p><p><strong>输入格式:</strong>每个测试输入包含1个测试用例,格式为</p><pre> 第1行:正整数n 第2行:第1个学生的姓名 学号 成绩 第3行:第2个学生的姓名 学号 成绩 ... ... ... 第n+1行:第n个学生的姓名 学号 成绩</pre>其中姓名和学号均为不超过10个字符的字符串,成绩为0到100之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。<br><strong>输出格式:</strong>对每个测试用例输出2行,第1行是成绩最高学生的姓名和学号,第2行是成绩最低学生的姓名和学号,字符串间有1空格。<br><strong>输入样例:</strong><pre>3Joe Math990112 89Mike CS991301 100Mary EE990830 95</pre><strong>输出样例:</strong><pre>Mike CS991301Joe Math990112</pre><h1 id="源代码"><a href="#源代码" class="headerlink" title="源代码"></a>源代码</h1><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><stdio.h></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><string.h></span></span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span><span class="meta-string"><stdlib.h></span></span></span><br><span class="line"></span><br><span class="line"><span class="meta"># <span class="meta-keyword">define</span> MAXSIZE 11</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">typedef</span> <span class="class"><span class="keyword">struct</span> <span class="title">Student</span>{</span></span><br><span class="line"> <span class="keyword">char</span> name[MAXSIZE];</span><br><span class="line"> <span class="keyword">char</span> no[MAXSIZE];</span><br><span class="line"> <span class="keyword">int</span> grade;</span><br><span class="line">}Student;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">()</span></span>{</span><br><span class="line"> <span class="keyword">int</span> i, number, maxIndex=<span class="number">0</span>, minIndex=<span class="number">0</span>, maxGrade, minGrade; </span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%d"</span>, &number);</span><br><span class="line"> Student student[number];</span><br><span class="line"> <span class="keyword">for</span>(i = <span class="number">0</span>; i < number; ++i){</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">"%s %s %d"</span>, student[i].name,student[i].no,&student[i].grade);</span><br><span class="line"> }</span><br><span class="line"> maxGrade=minGrade=student[<span class="number">0</span>].grade;</span><br><span class="line"> <span class="keyword">for</span>(i = <span class="number">0</span>; i < number; ++i){</span><br><span class="line"> <span class="keyword">if</span>(maxGrade < student[i].grade){</span><br><span class="line"> maxGrade = student[i].grade;</span><br><span class="line"> maxIndex = i;</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">if</span>(minGrade > student[i].grade){</span><br><span class="line"> minGrade = student[i].grade;</span><br><span class="line"> minIndex = i;</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%s %s\n"</span>, student[maxIndex].name, student[maxIndex].no);</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">"%s %s\n"</span>, student[minIndex].name, student[minIndex].no);</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h1 id="出错分析"><a href="#出错分析" class="headerlink" title="出错分析"></a>出错分析</h1><h2 id="问题一"><a href="#问题一" class="headerlink" title="问题一"></a>问题一</h2><p><pre># define MAXSIZE 11</pre></p><font color="red">这一行之前我定义为10</font>,没有考虑到字符串要多1个用来存放’\0’(结束标识符)<br><br><h2>问题二</h2><br><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">typedef</span> <span class="class"><span class="keyword">struct</span> <span class="title">Student</span>{</span></span><br><span class="line"> <span class="keyword">char</span> name[MAXSIZE];</span><br><span class="line"> <span class="keyword">char</span> no[MAXSIZE];</span><br><span class="line"> <span class="keyword">int</span> grade;</span><br><span class="line">}Student;</span><br></pre></td></tr></table></figure><br><br><font color="red">之前没有用到typedef,导致声明结构体数组时出错</font>,这一方面主要是因为自己对于结构体定义和声明的知识点有所遗忘<br><br><h2>问题三</h2><br><pre>maxIndex=0, minIndex=0</pre><br><font color="red">定义时忘记赋初值了,导致出现了数组越界的错误</font><blockquote><p>当前排名:11491 245分</p></blockquote></the>]]></content>
<categories>
<category> PTA </category>
</categories>
<tags>
<tag> 拼题A </tag>
</tags>
</entry>
<entry>
<title>《福利》bilibili免流版</title>
<link href="/2018/07/28/%E3%80%8A%E7%A6%8F%E5%88%A9%E3%80%8Bbilibili%E5%85%8D%E6%B5%81%E7%89%88/"/>
<url>/2018/07/28/%E3%80%8A%E7%A6%8F%E5%88%A9%E3%80%8Bbilibili%E5%85%8D%E6%B5%81%E7%89%88/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><img src="/images/bilibili.png" width="30%"><a id="more"></a></excerpt></p><the rest="" of="" contents="" |="" 余下全文=""><p>话不多说,直接切入正题。本次带来安卓版的一个相对比较实用的APP——<font color="red">哔哩哔哩联通免流版</font></p><h1 id="使用方法"><a href="#使用方法" class="headerlink" title="使用方法"></a>使用方法</h1><ol><li><p>如果手机安装了bilibili客户端,建议先卸载。其余的安装流程肯定不用多说</p></li><li><p>直接打开已安装好的APP,进入一个想看的视频界面(<font color="red">此处以精灵宝可梦的一个视频为例</font>)<br><img src="/images/bilibili_01.png" alt="bilibili_01"></p></li><li><p>直接点播放即可</p></li></ol><p><img src="/images/bilibili_02.png" alt="bilibili_02"></p><h1 id="流量使用情况"><a href="#流量使用情况" class="headerlink" title="流量使用情况"></a>流量使用情况</h1><ol><li>本机流量监控<br><img src="/images/bilibili_local.png" alt="bilibili_local"><br><font color="red">注: 实际使用流量为当天使用流量-哔哩哔哩客户端所使用的流量</font><br></li><li>实际使用查询</li></ol><p><img src="/images/bilibili_use.png" alt="bilibili_use"></p><blockquote><p>特别注意:此客户端只能用联通的卡免流量</p></blockquote><h1 id="获取链接"><a href="#获取链接" class="headerlink" title="获取链接"></a>获取链接</h1><blockquote><p><a href="https://pan.baidu.com/s/1lWY3qN33vHUp5koI95UX7w" target="_blank" rel="noopener">https://pan.baidu.com/s/1lWY3qN33vHUp5koI95UX7w</a> 密码:p8gw</p></blockquote><h1 id="最后"><a href="#最后" class="headerlink" title="最后"></a>最后</h1><blockquote><p>如果本文章和此应用对你有所帮助的话,请留个言,谢谢。</p></blockquote></the>]]></content>
<tags>
<tag> 福利 </tag>
</tags>
</entry>
<entry>
<title>嘿,我们都在这里——一些小问题解决合辑</title>
<link href="/2018/07/14/%E5%98%BF%EF%BC%8C%E6%88%91%E4%BB%AC%E9%83%BD%E5%9C%A8%E8%BF%99%E9%87%8C%E2%80%94%E2%80%94%E4%B8%80%E4%BA%9B%E5%B0%8F%E9%97%AE%E9%A2%98%E8%A7%A3%E5%86%B3%E5%90%88%E8%BE%91/"/>
<url>/2018/07/14/%E5%98%BF%EF%BC%8C%E6%88%91%E4%BB%AC%E9%83%BD%E5%9C%A8%E8%BF%99%E9%87%8C%E2%80%94%E2%80%94%E4%B8%80%E4%BA%9B%E5%B0%8F%E9%97%AE%E9%A2%98%E8%A7%A3%E5%86%B3%E5%90%88%E8%BE%91/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><img src="/images/here.png" alt="I'm here"><br>本文将统计遇到的一些小问题<a id="more"></a></excerpt></p><the rest="" of="" contents="" |="" 余下全文=""><h1 id="Hexo-deploy相关"><a href="#Hexo-deploy相关" class="headerlink" title="Hexo-deploy相关"></a>Hexo-deploy相关</h1><p>问题:执行<code>hexo d</code>时会报<font color="red">HTTP request failed</font>的错误</p><p>解决方法:将Hexo主配置文件中最后的<code>https://github.com/YourUserName/YourUserName.github.io</code>改成<a href="mailto:`git@github.com" target="_blank" rel="noopener">`git@github.com</a>:YourUserName/YourUserName.github.io`即可</p><p>即在/home/wwwroot/_config.yml中将<code>repo: https:xxx</code>修改为<code>repo: git@xxx</code><br><img src="/images/pasted-22.png" alt="配置截图"></p><blockquote><p>参考文章:<a href="https://github.com/hexojs/hexo/issues/1135" target="_blank" rel="noopener">https://github.com/hexojs/hexo/issues/1135</a></p></blockquote><p><hr></p><h1 id="Pycharm-pip出错相关"><a href="#Pycharm-pip出错相关" class="headerlink" title="Pycharm pip出错相关"></a>Pycharm pip出错相关</h1><p>问题:不知道出于什么原因,我打开Pycharm的时候会出现<code>module 'pip' has no attribute 'main'</code>这个问题,经过搜索和实验,下面博主的方法能将这个错误进行修正</p><p>解决方法:</p><blockquote><p>参考文章:<a href="https://blog.csdn.net/yup1212/article/details/80047326" target="_blank" rel="noopener">https://blog.csdn.net/yup1212/article/details/80047326</a></p></blockquote><h1 id="文章的时间问题"><a href="#文章的时间问题" class="headerlink" title="文章的时间问题"></a>文章的时间问题</h1><p>问题:之前以为是因为主题问题,导致发布时间和显示时间相差12个小时,所以千方百计地想办法对主题里面的时间设置进行不断调整,结果没有一个成功的,短暂时间内放弃对时间的修复。幸得2018年7月13日闲下来发博文的时候,重拾此问题,并将修正对象转移至服务器上,这才有了时间修复成功的。</p><p>操作系统:<font color="red">Centos 6 x86_64 bbr </font>,US, California</p><p>解决方法:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br></pre></td><td class="code"><pre><span class="line">1. 编辑系统时区配置文件</span><br><span class="line">vi /etc/sysconfig/clock </span><br><span class="line"></span><br><span class="line">2. 在配置文件中,将ZONE改为Asia/Shanghai</span><br><span class="line">ZONE="Asia/Shanghai"</span><br><span class="line"></span><br><span class="line">3. 删除默认配置</span><br><span class="line">rm -rf /etc/localtime</span><br><span class="line"></span><br><span class="line">4. 重新指定配置</span><br><span class="line">ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime</span><br><span class="line"></span><br><span class="line">5. 同步系统时间(若系统中没有安装ntpdate,需要用yum进行安装)</span><br><span class="line">ntpdate -u pool.ntp.org</span><br><span class="line"></span><br><span class="line">6. 将硬件时间调整成与目前的系统时钟一致。</span><br><span class="line">hwclock --systohc</span><br><span class="line"></span><br><span class="line">7. 将硬件时间写入系统时间</span><br><span class="line">hwclock --hctosys</span><br><span class="line"></span><br><span class="line">8. 强制系统时间写入CMOS中防止重启失效</span><br><span class="line">hwclock -w</span><br><span class="line"></span><br><span class="line">9. 编辑计划任务表</span><br><span class="line">vi /etc/crontab</span><br><span class="line"></span><br><span class="line">10. 表中最后添加下面这行内容(每天5点半同步时间)</span><br><span class="line">30 5 * * * root /usr/sbin/ntpdate -u pool.ntp.org && /sbin/clock --systohc</span><br></pre></td></tr></table></figure></p></the>]]></content>
<tags>
<tag> 问题 </tag>
</tags>
</entry>
<entry>
<title>考研复习计划与进程</title>
<link href="/2018/07/04/%E8%80%83%E7%A0%94%E5%A4%8D%E4%B9%A0%E8%AE%A1%E5%88%92%E4%B8%8E%E8%BF%9B%E7%A8%8B/"/>
<url>/2018/07/04/%E8%80%83%E7%A0%94%E5%A4%8D%E4%B9%A0%E8%AE%A1%E5%88%92%E4%B8%8E%E8%BF%9B%E7%A8%8B/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><img src="/images/pasted-26.png" alt="头秃"><br>复习不努力,考砸徒伤悲。现在都已经7月份了,离考研的时间越来越短了…<br><a id="more"></a></excerpt></p><the rest="" of="" contents="" |="" 余下全文=""><h1 id="数学二(高质量刷题)"><a href="#数学二(高质量刷题)" class="headerlink" title="数学二(高质量刷题)"></a>数学二(高质量刷题)</h1><h2 id="高等数学"><a href="#高等数学" class="headerlink" title="高等数学"></a>高等数学</h2><h3 id="8月计划"><a href="#8月计划" class="headerlink" title="8月计划"></a>8月计划</h3><ol><li>在7月底完成18讲</li><li>8月完成强化</li><li>其余想到再补充</li></ol><h3 id="实际"><a href="#实际" class="headerlink" title="实际"></a>实际</h3><ol><li><font color="red">于2018年7月31日20点45分完成18讲</font></li><li><font color="red">于2018年8月29日09点24分完成强化</font></li></ol><h3 id="9月计划"><a href="#9月计划" class="headerlink" title="9月计划"></a>9月计划</h3><ol><li>在9月底之前,刷完一遍1000题</li><li>在9月底之前,刷完一遍真题大全解</li></ol><h3 id="实际-1"><a href="#实际-1" class="headerlink" title="实际"></a>实际</h3><h2 id="线性代数"><a href="#线性代数" class="headerlink" title="线性代数"></a>线性代数</h2><h3 id="计划"><a href="#计划" class="headerlink" title="计划"></a>计划</h3><ol><li>在7月底完成完成一轮复习</li><li>8月完成强化</li><li>其余想到再补充</li></ol><h3 id="实际-2"><a href="#实际-2" class="headerlink" title="实际"></a>实际</h3><ol><li><font color="red">于2018年7月13日21点30分完成一轮复习</font></li></ol><h1 id="英语二"><a href="#英语二" class="headerlink" title="英语二"></a>英语二</h1><h3 id="9月计划-1"><a href="#9月计划-1" class="headerlink" title="9月计划"></a>9月计划</h3><ol><li>每日单词必不可少,恋恋有词也抓起来</li><li>9月开始抓阅读</li><li>其余想到再补充</li></ol><h3 id="实际-3"><a href="#实际-3" class="headerlink" title="实际"></a>实际</h3><h1 id="政治"><a href="#政治" class="headerlink" title="政治"></a>政治</h1><h3 id="9月计划-2"><a href="#9月计划-2" class="headerlink" title="9月计划"></a>9月计划</h3><ol><li>完成马原</li><li>完成毛中特</li><li>完成近代史</li></ol><h3 id="实际-4"><a href="#实际-4" class="headerlink" title="实际"></a>实际</h3><h1 id="专业课"><a href="#专业课" class="headerlink" title="专业课"></a>专业课</h1><h3 id="9月计划-3"><a href="#9月计划-3" class="headerlink" title="9月计划"></a>9月计划</h3><ol><li>完成一遍专业课基础刷题</li><li>有空闲时间的话可以自己尝试着去leetcode刷题</li></ol><h3 id="实际-5"><a href="#实际-5" class="headerlink" title="实际"></a>实际</h3></the>]]></content>
<tags>
<tag> 考研 </tag>
</tags>
</entry>
<entry>
<title>毕业不说再见——继续努力</title>
<link href="/2018/06/29/%E6%AF%95%E4%B8%9A%E4%B8%8D%E8%AF%B4%E5%86%8D%E8%A7%81%E2%80%94%E2%80%94%E7%BB%A7%E7%BB%AD%E5%8A%AA%E5%8A%9B/"/>
<url>/2018/06/29/%E6%AF%95%E4%B8%9A%E4%B8%8D%E8%AF%B4%E5%86%8D%E8%A7%81%E2%80%94%E2%80%94%E7%BB%A7%E7%BB%AD%E5%8A%AA%E5%8A%9B/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><img src="/images/biye01.jpg" width="50%" height="50%"><br>非技术相关的一篇博文,单纯纪念一下大学四年生活<a id="more"></a></excerpt></p><the rest="" of="" contents="" |="" 余下全文=""><h1 id="并不优秀的我"><a href="#并不优秀的我" class="headerlink" title="并不优秀的我"></a>并不优秀的我</h1><p>  前三年,看着身边的人一个个为了自己的理想逐步使自己变得更好,而自己看起来却没有什么变化。这样的情况让我变得内心很焦灼,每天想着明天要怎么怎么做,实现某个计划,让自己变得更好。但事实是,自己的实践能力并没有想象中的那么好。<br><img src="/images/biye02.jpg" width="50%" height="50%"></p><h1 id="理想不实践"><a href="#理想不实践" class="headerlink" title="理想不实践"></a>理想不实践</h1><p>  曾经想过出国留学,为了准备考雅思,我认真学了几周的英语,后来觉得经济状况不好,便不再有这个念头。<br><br>  曾经想好好学习Java语言,然后自己做项目玩,后来看着厚厚的令自己头疼的Java参考书便打消了这个念头。<br><br>  曾经还想过自己做几个漂亮的网站,然后便一股脑地投入学习HTML5。<br><br>  ……<br><br>  事实上,到最后,我只学了点入门基础。现在看来,面对学习的困难,以前的我不假思索地向它们低头。<br><img src="http://ws2.sinaimg.cn/large/9150e4e5ly1fjrjfbii3bg206o06ot8x.gif" width="50%" height="50%"></p><h1 id="实践进行时"><a href="#实践进行时" class="headerlink" title="实践进行时"></a>实践进行时</h1><p>  大三升大四的期间,我去过几家公司面试。虽然最后给我的结果都不录用,但从中吸取到了很多经验。面对自身出现的各种问题,开始着手于想方设法地进行修正弥补不足。至此,我便开始认真动手实践,这是一个漫长而又收获满满的过程……<br><br>  秉承着想做网页的想法,在机缘巧合之下,于2017年12月我学习了Flask,开始了我自己动手的小项目。第一个项目是一个微电影管理系统,网页由其提供,而实现的功能逻辑则由自己编写。懵懵懂懂地将这个项目做完之后,我的内心得到了极大的满足感,比起以前被捧得有多厉害实际上毫无内容的我来说,这才是学习。<a href="https://github.com/ZengX2017/adward-movie" target="_blank" rel="noopener">微电影管理系统</a><br><img src="/images/biye03.jpg" width="50%" height="50%"><br>  做完之后,不久就开始了毕业设计的选题和开题答辩。得益于此项目帮我重新树立如何认真学习的信心,毕业设计我也用的Flask实现课题的内容。在制作过程中可谓是耗费了不少精力。</p><h1 id="执行力VS懒惰"><a href="#执行力VS懒惰" class="headerlink" title="执行力VS懒惰"></a>执行力VS懒惰</h1><p>  在设计毕业设计的过程中,可谓是呕心沥血(夸张了hhhhh)。从数据库的设计到页面的搭建再到功能的实现,全程下来,<font color="red">秃头指数</font>不知道上升了多少呢(劳资无所畏惧),还记得在放寒假前天天为设计数据库的事情忙得不可开交,毕竟数据库的重要性不言而喻。终于在回家前完成了基本框架……<br><br>  家里真的冷得要死,但我还是坚持下来,每天除了吃饭就呆在家里做毕业设计,几乎不出门。为了设计适配多端的网页,还特地花时间去学了Bootstrap,光是设计网页都花了我快一个星期的时间,设计完又改改完不满意又改。在坚持不懈的努力下,终于把基本模板搭建完成了。随后便开始了<font color="red">秃头之旅</font>。<br><img src="/images/biye00.png" alt="biye00"><br>  由上可见,我的执行力还是战胜了懒惰。不仅在规定的时间内完成了此毕业设计,还用买的阿里云服务器将其部署上线。(<font color="red">篇幅原因,此次设计不多说</font>)<a href="https://github.com/ZengX2017/Online-Registration" target="_blank" rel="noopener">软件专业资格考试系统</a></p><h1 id="实习之路"><a href="#实习之路" class="headerlink" title="实习之路"></a>实习之路</h1><p>  在2018年3月,偶然得到了在<font color="red">上海市公安部第三研究所</font>实习的机会。于4月——6月在此实习3个月,一开始去实习前充满了不安与焦灼,毕竟考虑到自身学历和能力问题能不能胜任这份实习工作。但到后来才发现,一份工作只要用心做,一定能做成功(hhhhh,没有什么要说的)</p><h1 id="未来的我"><a href="#未来的我" class="headerlink" title="未来的我"></a>未来的我</h1><p>  大学四年来,有了前三年的铺垫,大四才能有这么多收获。即使前三年的我不够努力,不够认真,不够聪明。但我相信,接下来的我会以大四这一年的付出为契机,不断前行,让自己变得更好。<br>  To Be Continued……</p><h1 id="致以努力之人"><a href="#致以努力之人" class="headerlink" title="致以努力之人"></a>致以努力之人</h1><p>大学所获荣誉如下:</p><ol><li>上海市优秀毕业生</li><li>上海市奖学金</li><li>国家励志奖学金</li><li>蓝桥杯上海赛区JAVA软件开发大学B组三等奖</li><li>上海电机学院优秀毕业生</li><li>上海电机学院2018届优异学士学位论文(TOP1%)奖</li><li>博学奖学金特等奖3次,一等奖3次,二等奖1次</li><li>三好学生3次</li><li>柘中奖学金3次</li><li>优秀志愿者</li><li>优秀团员</li><li>卓越奖学金比赛类奖学金</li></ol><p><font color="red">愿我继续以实践将2019年考研成功拿下,也愿我的小伙伴们前程似锦,感谢你们的陪伴</font></p><blockquote><p>2018年6月30日 12点13分</p></blockquote></the>]]></content>
</entry>
<entry>
<title>从入门到放弃之——Nginx学习笔记</title>
<link href="/2018/06/26/%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E6%94%BE%E5%BC%83%E4%B9%8B%E2%80%94%E2%80%94Nginx/"/>
<url>/2018/06/26/%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E6%94%BE%E5%BC%83%E4%B9%8B%E2%80%94%E2%80%94Nginx/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><img src="/images/从入门到放弃.png" alt="从入门到放弃"><br>在空闲时间总不能啥都不干吧!来,去敲敲Nginx的大门吧。<a id="more"></a></excerpt></p><the rest="" of="" contents="" |="" 余下全文=""><h1 id="云服务器"><a href="#云服务器" class="headerlink" title="云服务器"></a>云服务器</h1><p>要么自己在本机搭建一个CentOS的虚拟环境(<font color="red">趁还能学生价买,我选择买一个</font>),我的环境为CentOS7.3</p><h1 id="相关配置"><a href="#相关配置" class="headerlink" title="相关配置"></a>相关配置</h1><h2 id="安装gcc与pcre等依赖包"><a href="#安装gcc与pcre等依赖包" class="headerlink" title="安装gcc与pcre等依赖包"></a>安装gcc与pcre等依赖包</h2><pre><code>yum -y install gcc gcc-c++ auto pcre pcre-devel make automake</code></pre><h2 id="继续安装一些用得到的包"><a href="#继续安装一些用得到的包" class="headerlink" title="继续安装一些用得到的包"></a>继续安装一些用得到的包</h2><pre><code>yum -y install wget httpd-tools vim</code></pre><h2 id="用mkdir-文件夹名创建几个文件夹"><a href="#用mkdir-文件夹名创建几个文件夹" class="headerlink" title="用mkdir+文件夹名创建几个文件夹"></a>用mkdir+文件夹名创建几个文件夹</h2><p><img src="/images/pasted-24.png" alt="opt目录下的几个文件夹"></p><h1 id="Nginx优点"><a href="#Nginx优点" class="headerlink" title="Nginx优点"></a>Nginx优点</h1><ol><li>IO多路复用epoll(<font color="red">我也不懂,到时候去查查资料</font>)</li><li>轻量级(功能模块少、代码模块化)</li><li>CPU亲和</li><li>sendfile</li></ol><blockquote><p>以上操作时间为:2018年6月26日 22点57分</p></blockquote><h1 id="Nginx安装"><a href="#Nginx安装" class="headerlink" title="Nginx安装"></a>Nginx安装</h1><p>在<code>http://nginx.org/en/linux_packages.html#stablevim</code>中找到如下内容<br><img src="/images/pasted-25.png" alt="centos版本内容"><br>然后再执行<code>vim /etc/yum.repos.d/nginx.repo</code>,填充下列语句即可:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">[nginx]</span><br><span class="line">name=nginx repo</span><br><span class="line">baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/ </span><br><span class="line"># 注释:OS为centos,OSRELEASE为7</span><br><span class="line">gpgcheck=0</span><br><span class="line">enabled=1</span><br></pre></td></tr></table></figure></p><p>接着执行:<code>yum install nginx</code>,即Nginx安装成功。</p><h1 id="Nginx的目录"><a href="#Nginx的目录" class="headerlink" title="Nginx的目录"></a>Nginx的目录</h1><pre><code>rpm -ql nginx # 输出Nginx的配置目录</code></pre><p>执行上述命令后,会出现如下列表项:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br></pre></td><td class="code"><pre><span class="line">/etc/logrotate.d/nginx</span><br><span class="line">/etc/nginx</span><br><span class="line">/etc/nginx/conf.d</span><br><span class="line">/etc/nginx/conf.d/default.conf</span><br><span class="line">/etc/nginx/fastcgi_params</span><br><span class="line">/etc/nginx/koi-utf</span><br><span class="line">/etc/nginx/koi-win</span><br><span class="line">/etc/nginx/mime.types</span><br><span class="line">/etc/nginx/modules</span><br><span class="line">/etc/nginx/nginx.conf</span><br><span class="line">/etc/nginx/scgi_params</span><br><span class="line">/etc/nginx/uwsgi_params</span><br><span class="line">/etc/nginx/win-utf</span><br><span class="line">/etc/sysconfig/nginx</span><br><span class="line">/etc/sysconfig/nginx-debug</span><br><span class="line">/usr/lib/systemd/system/nginx-debug.service</span><br><span class="line">/usr/lib/systemd/system/nginx.service</span><br><span class="line">/usr/lib64/nginx</span><br><span class="line">/usr/lib64/nginx/modules</span><br><span class="line">/usr/libexec/initscripts/legacy-actions/nginx</span><br><span class="line">/usr/libexec/initscripts/legacy-actions/nginx/check-reload</span><br><span class="line">/usr/libexec/initscripts/legacy-actions/nginx/upgrade</span><br><span class="line">/usr/sbin/nginx</span><br><span class="line">/usr/sbin/nginx-debug</span><br><span class="line">/usr/share/doc/nginx-1.14.0</span><br><span class="line">/usr/share/doc/nginx-1.14.0/COPYRIGHT</span><br><span class="line">/usr/share/man/man8/nginx.8.gz</span><br><span class="line">/usr/share/nginx</span><br><span class="line">/usr/share/nginx/html</span><br><span class="line">/usr/share/nginx/html/50x.html</span><br><span class="line">/usr/share/nginx/html/index.html</span><br><span class="line">/var/cache/nginx</span><br><span class="line">/var/log/nginx</span><br></pre></td></tr></table></figure></p><h2 id="安装目录讲解"><a href="#安装目录讲解" class="headerlink" title="安装目录讲解"></a>安装目录讲解</h2><ol><li><p>/etc/logrotate.d/nginx   # Nginx日志轮转,用于logrotate服务的日志切割</p></li><li><p>/etc/nginx<br>/etc/nginx/nginx.conf<br> /etc/nginx/conf.d<br> /etc/nginx/conf.d/default.conf   # Nginx主配置文件</p></li><li><p>/etc/nginx/fastcgi_params<br> /etc/nginx/scgi_params<br> /etc/nginx/uwsgi_params   # cgi配置相关,fastcgi配置相关</p></li><li><p>/etc/nginx/koi-utf<br> /etc/nginx/koi-win<br>/etc/nginx/win-utf   # 编码转化映射转化文件(<font color="red">较少用</font>)</p></li><li><p>/etc/nginx/mime.types   # 设置http协议的ContentType与扩展名对应关系</p></li><li><p>/usr/lib/systemd/system/nginx-debug.service<br> /usr/lib/systemd/system/nginx.service<br> /etc/sysconfig/nginx<br> /etc/sysconfig/nginx-debug   # 用于配置出系统守护进程管理器管理方式</p></li><li><p>/usr/lib64/nginx/modules<br> /etc/nginx/modules   # Nginx模块目录</p></li><li><p>/usr/sbin/nginx<br> /usr/sbin/nginx-debug   # Nginx服务的启动管理的终端命令</p></li><li><p>/usr/share/doc/nginx-1.14.0<br> /usr/share/doc/nginx-1.14.0/COPYRIGHT<br> /usr/share/man/man8/nginx.8.gz   # Nginx的手册和帮助文件</p></li><li><p>/var/cache/nginx   # Nginx的缓存目录</p></li><li><p>/var/log/nginx   # Nginx的日志目录</p></li></ol><h2 id="安装编译参数"><a href="#安装编译参数" class="headerlink" title="安装编译参数"></a>安装编译参数</h2><pre><code>nginx -V # 查看Nginx的一些编译参数</code></pre><h1 id="Nginx的配置语法"><a href="#Nginx的配置语法" class="headerlink" title="Nginx的配置语法"></a>Nginx的配置语法</h1><ol><li>对nginx的nginx.conf文件进行分析<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">cd /etc/nginx</span><br><span class="line">vim nginx.conf</span><br></pre></td></tr></table></figure></li></ol><p>nginx.conf中的子配置文件<code>include /etc/nginx/conf.d/*.conf</code>;</p><ol start="2"><li><p>centos7 nginx启动、重启、停止等命令:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">systemctl start|stop|reload|restart nginx</span><br><span class="line">systemctl enable nginx # 即可实现开机启动。</span><br><span class="line">systemctl disable nginx# 取消开机启动。</span><br></pre></td></tr></table></figure></li><li><p>curl,它是一个广泛使用的用来上传和下载的命令行工具,可以做模拟采集数据。安装命令为:<code>yum install curl</code></p></li><li><p>请求限制(有ab的一个命令,如ab -n 20 -c 20 http:xxxxx)<br><img src="/images/nginx00.png" alt="nginx请求配置"></p></li><li><p>访问控制(access_module)</p></li></ol><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">location ~ ^/admin.html { # ~ 代表模式匹配</span><br><span class="line"> root /opt/app/code;</span><br><span class="line"> deny 222.128.189.17; # 限制这个ip访问</span><br><span class="line"> allow all; # 允许其余所有ip访问</span><br><span class="line"> index index.html index.htm;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><p>等等,不做多述,根据实践再进行添加。</p><h1 id="静态资源Web服务"><a href="#静态资源Web服务" class="headerlink" title="静态资源Web服务"></a>静态资源Web服务</h1><ol><li><p>http_gzip_static_module   预读gzip功能</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><span class="line">location ~ .*\.(jpg|gif|png)$ {</span><br><span class="line"> gzip on;</span><br><span class="line"> gzip_http_version 1.1;</span><br><span class="line"> gzip_comp_level 2;</span><br><span class="line"> gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;</span><br><span class="line"> root /opt/app/code/images;</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line">location ~ .*\.(txt|xml)$ {</span><br><span class="line"> gzip on;</span><br><span class="line"> gzip_http_version 1.1;</span><br><span class="line"> gzip_comp_level 1;</span><br><span class="line"> gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;</span><br><span class="line"> root /opt/app/code/doc;</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line">location ~ ^/download {</span><br><span class="line"> gzip_static on;</span><br><span class="line"> tcp_nopush on;</span><br><span class="line"> root /opt/app/code;</span><br><span class="line">}</span><br></pre></td></tr></table></figure></li><li><p>跨域访问</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">location ~ .*\.(htm|html)$ {</span><br><span class="line"> add_header Access-Control-Allow-Origin *; </span><br><span class="line"> add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;</span><br><span class="line"> #expires 24h;</span><br><span class="line"> root /opt/app/code;</span><br><span class="line"> }</span><br></pre></td></tr></table></figure></li><li><p><font color="red">防盗链</font></p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">location ~ .*\.(jpg|gif|png)$ {</span><br><span class="line"> ...</span><br><span class="line"> </span><br><span class="line"> valid_referers none blocked 116.62.103.228 jeson.imoocc.com ~wei\.png;</span><br><span class="line"> if ($invalid_referer) {</span><br><span class="line"> return 403;</span><br><span class="line"> }</span><br><span class="line"> root /opt/app/code/images;</span><br><span class="line"> }</span><br></pre></td></tr></table></figure></li></ol><p>可在location中添加</p><ol start="4"><li>正向代理(对象是客户端)和反向代理(对象是服务端)</li></ol></the>]]></content>
<categories>
<category> 学习笔记 </category>
</categories>
<tags>
<tag> Nginx </tag>
</tags>
</entry>
<entry>
<title>新成员你好——来必力</title>
<link href="/2018/06/19/%E4%BD%A0%E5%A5%BD%EF%BC%8C%E6%9D%A5%E5%BF%85%E5%8A%9B/"/>
<url>/2018/06/19/%E4%BD%A0%E5%A5%BD%EF%BC%8C%E6%9D%A5%E5%BF%85%E5%8A%9B/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><img src="/images/来必力.png" alt="来必力"><br>自<font color="red">Disqus</font>、<font color="red">多说</font>、<font color="red">有言</font>相继不能使用后,简单可用的评论系统寥寥无几,在此,使用<a href="http://www.laibili.com.cn/" target="_blank" rel="noopener">来必力</a>集成本站的评论系统。<font color="blue">使用主题:yelee</font><br><a id="more"></a></excerpt></p><the rest="" of="" contents="" |="" 余下全文=""><h1 id="注册账号获取uid"><a href="#注册账号获取uid" class="headerlink" title="注册账号获取uid"></a>注册账号获取uid</h1><p>打开来必力官网: <a href="https://livere.com" target="_blank" rel="noopener">https://livere.com</a> , 注册账号。成功之后,点击安装</p><p><img src="/images/laibili_1.png" alt="laibili_01"></p><p>此时,进入安装代码界面,记录好<font color="red">uid</font>(打马赛克部分)</p><p><img src="/images/laibili_02.png" alt="laibili_02"></p><h1 id="将来必力代码集成到主题中"><a href="#将来必力代码集成到主题中" class="headerlink" title="将来必力代码集成到主题中"></a>将来必力代码集成到主题中</h1><h2 id="主题站点添加uid"><a href="#主题站点添加uid" class="headerlink" title="主题站点添加uid"></a>主题站点添加uid</h2><p>打开theme/yelee/_config.yml,添加如下的配置信息:<br> <figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">livere:</span><br><span class="line"> on: true</span><br><span class="line"> livere_uid: uid</span><br></pre></td></tr></table></figure></p><p>如图:</p><p><img src="/images/laibili_03.png" alt="laibili_03"></p><h2 id="创建评论-ejs-文件"><a href="#创建评论-ejs-文件" class="headerlink" title="创建评论 ejs 文件"></a>创建评论 ejs 文件</h2><p>在<code>themes/yelee/layout/_partial/comments</code>文件夹创建<code>livere.ejs</code>文件,拷贝上图的代码。<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><span class="line"><section class="livere" id="comments"></span><br><span class="line"> <!-- 来必力City版安装代码 --></span><br><span class="line"> <div id="lv-container" data-id="city" data-uid="Your uid"></span><br><span class="line"> <script type="text/javascript"></span><br><span class="line"> (function(d, s) {</span><br><span class="line"> var j, e = d.getElementsByTagName(s)[0];</span><br><span class="line"></span><br><span class="line"> if (typeof LivereTower === 'function') { return; }</span><br><span class="line"></span><br><span class="line"> j = d.createElement(s);</span><br><span class="line"> j.src = 'https://cdn-city.livere.com/js/embed.dist.js';</span><br><span class="line"> j.async = true;</span><br><span class="line"></span><br><span class="line"> e.parentNode.insertBefore(j, e);</span><br><span class="line"> })(document, 'script');</span><br><span class="line"> </script></span><br><span class="line"> <noscript> 为正常使用来必力评论功能请激活JavaScript</noscript></span><br><span class="line"> </div></span><br><span class="line"> <!-- City版安装代码已完成 --></span><br><span class="line"></section></span><br></pre></td></tr></table></figure></p><h2 id="配置文章内的评论部分内容"><a href="#配置文章内的评论部分内容" class="headerlink" title="配置文章内的评论部分内容"></a>配置文章内的评论部分内容</h2><p>打开<code>themes/yelee/layout/_partial/article.ejs</code>,添加如下代码:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><% } else if (theme.livere.on) { %></span><br><span class="line"> <%- partial('comments/livere') %></span><br></pre></td></tr></table></figure></p><p>如图:<br><img src="/images/laibili_04.png" alt="laibili_04"></p><p>至此,来必力评论系统安装成功。欢迎使用此评论系统对我的文章进行指导建议,或者在留言板上进行留言。界面如下:</p><p><img src="/images/laibili_05.png" alt="laibili_05"></p><div style="text-align: center"><img src="/images/pasted-23.png" alt="稳"></div><blockquote><p>参考文章:<br><a href="https://www.jianshu.com/p/f5c184047e72" target="_blank" rel="noopener">https://www.jianshu.com/p/f5c184047e72</a></p></blockquote></the>]]></content>
<categories>
<category> 小技巧 </category>
</categories>
<tags>
<tag> 其他 </tag>
</tags>
</entry>
<entry>
<title>一些Tips</title>
<link href="/2018/06/18/%E4%B8%80%E4%BA%9BTips/"/>
<url>/2018/06/18/%E4%B8%80%E4%BA%9BTips/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><img src="/images/pasted-21.png" alt="原来如此"><br><a id="more"></a></excerpt></p><p><the rest="" of="" contents="" |="" 余下全文=""></the></p><h1 id="Hexo-deploy相关"><a href="#Hexo-deploy相关" class="headerlink" title="Hexo-deploy相关"></a>Hexo-deploy相关</h1><p>执行<code>hexo d</code>时会报<font color="red">HTTP request failed</font>的错误,<br>在/home/wwwroot/_config.yml中将<code>repo: https://github.com/ZengX2017/ZengX2017.github.io</code>修改为<code>repo: git@github.com:ZengX2017/ZengX2017.github.io</code> 即可。<br><img src="/images/pasted-22.png" alt="配置截图"></p><blockquote><p>参考文章:<a href="https://github.com/hexojs/hexo/issues/1135" target="_blank" rel="noopener">https://github.com/hexojs/hexo/issues/1135</a></p></blockquote><h1 id="Pycharm-pip出错相关"><a href="#Pycharm-pip出错相关" class="headerlink" title="Pycharm pip出错相关"></a>Pycharm pip出错相关</h1><blockquote><p><a href="https://blog.csdn.net/yup1212/article/details/80047326" target="_blank" rel="noopener">https://blog.csdn.net/yup1212/article/details/80047326</a></p></blockquote><h1 id="Linux-CentOS修改文件名"><a href="#Linux-CentOS修改文件名" class="headerlink" title="Linux/CentOS修改文件名"></a>Linux/CentOS修改文件名</h1><p><strong>移动文件:</strong>mv 文件名 移动目的地文件名</p><p><strong>重命名文件:</strong>mv 文件名 修改后的文件名</p><p>示例:mv oldfilename newfilename (oldfilename为旧文件名,newfilename为新文件名)</p>]]></content>
<categories>
<category> 小技巧 </category>
</categories>
<tags>
<tag> Tips </tag>
</tags>
</entry>
<entry>
<title>To do list</title>
<link href="/2018/06/18/To-do-list/"/>
<url>/2018/06/18/To-do-list/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 摘要首页=""><br><img src="/images/pasted-19.png" alt="心态崩了"><a id="more"></a></excerpt></p><p><the rest="" of="" contents="" |="" 余下全文=""></the></p><h1 id="文章的时间问题"><a href="#文章的时间问题" class="headerlink" title="文章的时间问题"></a>文章的时间问题</h1><blockquote><p>于2018年7月14日15点18分已修复</p></blockquote><ol><li><p>之前以为是因为主题问题,导致发布时间和显示时间相差12个小时,所以千方百计地想办法对主题里面的时间设置进行不断调整,结果没有一个成功的,短暂时间内放弃对时间的修复</p></li><li><p>幸得昨日闲下来发博文的时候,重拾此问题,并将修正对象转移至服务器上,这才有了时间修复成功的结果。</p></li></ol><h1 id="关于Flask那篇文章的崩溃问题"><a href="#关于Flask那篇文章的崩溃问题" class="headerlink" title="关于Flask那篇文章的崩溃问题"></a>关于Flask那篇文章的崩溃问题</h1>]]></content>
</entry>
<entry>
<title>VPS与Hexo不得不说的那些事之五——其他配置</title>
<link href="/2018/06/17/VPS%E4%B8%8EHexo%E4%B8%8D%E5%BE%97%E4%B8%8D%E8%AF%B4%E7%9A%84%E9%82%A3%E4%BA%9B%E4%BA%8B%E4%B9%8B%E4%BA%94%E2%80%94%E2%80%94%E5%85%B6%E4%BB%96%E9%85%8D%E7%BD%AE/"/>
<url>/2018/06/17/VPS%E4%B8%8EHexo%E4%B8%8D%E5%BE%97%E4%B8%8D%E8%AF%B4%E7%9A%84%E9%82%A3%E4%BA%9B%E4%BA%8B%E4%B9%8B%E4%BA%94%E2%80%94%E2%80%94%E5%85%B6%E4%BB%96%E9%85%8D%E7%BD%AE/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><img src="/images/pasted-17.png" alt="其他配置"><br>前四篇文章分别讲述了如何安装Git、Node.js、Nginx和Hexo,本章主要讲述一些其他配置<a id="more"></a></excerpt></p><the rest="" of="" contents="" |="" 余下全文=""><h1 id="百度站长验证"><a href="#百度站长验证" class="headerlink" title="百度站长验证"></a>百度站长验证</h1><blockquote><p>验证相关帮助<br><a href="https://ziyuan.baidu.com/college/courseinfo?id=267&page=1" target="_blank" rel="noopener">https://ziyuan.baidu.com/college/courseinfo?id=267&page=1</a></p></blockquote><p>此处采用的是CNAME验证</p><h1 id="Nginx后台启动"><a href="#Nginx后台启动" class="headerlink" title="Nginx后台启动"></a>Nginx后台启动</h1><p>主要修改箭头所指的2个地方,第一个指的是Nginx的安装目录,第二个指的是Nginx的配置目录<br><img src="/images/pasted-6.png" alt="upload successful"></p><h1 id="PM2使用相关"><a href="#PM2使用相关" class="headerlink" title="PM2使用相关"></a>PM2使用相关</h1><p>为了让Hexo能保持后台运行,使用PM2对其进行管理</p><h2 id="安装pm2"><a href="#安装pm2" class="headerlink" title="安装pm2"></a>安装pm2</h2><pre><code>npm install -g pm2</code></pre><h2 id="写一个执行脚本"><a href="#写一个执行脚本" class="headerlink" title="写一个执行脚本"></a>写一个执行脚本</h2><p>在博客根目录下面创建一个xxx(此处命名为:<font color="red">hexo_run</font>).js<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">//run</span><br><span class="line">const { exec } = require('child_process')</span><br><span class="line">exec('hexo server',(error, stdout, stderr) => {</span><br><span class="line"> if(error){</span><br><span class="line"> console.log('exec error: ${error}')</span><br><span class="line"> return</span><br><span class="line"> }</span><br><span class="line"> console.log('stdout: ${stdout}');</span><br><span class="line"> console.log('stderr: ${stderr}');</span><br><span class="line">})</span><br></pre></td></tr></table></figure></p><h2 id="在根目录下运行脚本"><a href="#在根目录下运行脚本" class="headerlink" title="在根目录下运行脚本"></a>在根目录下运行脚本</h2><p><code>pm2 start hexo_run.js</code></p><blockquote><p>参考文章</p><ol><li><a href="http://moxfive.xyz/yelee/5.Vendor/baidu-site.html" target="_blank" rel="noopener">http://moxfive.xyz/yelee/5.Vendor/baidu-site.html</a> 中的主题指导手册</li><li><a href="http://www.runoob.com/linux/nginx-install-setup.html" target="_blank" rel="noopener">http://www.runoob.com/linux/nginx-install-setup.html</a> 中的nginx相关</li><li><a href="https://www.cnblogs.com/whatmiss/p/7091220.html" target="_blank" rel="noopener">https://www.cnblogs.com/whatmiss/p/7091220.html</a> 中的第一部分代码</li><li><a href="https://blog.csdn.net/Tangcuyuha/article/details/80331169" target="_blank" rel="noopener">https://blog.csdn.net/Tangcuyuha/article/details/80331169</a> 中的PM2安装</li><li><a href="https://segmentfault.com/a/1190000002539204" target="_blank" rel="noopener">https://segmentfault.com/a/1190000002539204</a> 中的PM2使用介绍</li></ol></blockquote></the>]]></content>
<categories>
<category> Web </category>
</categories>
<tags>
<tag> PM2 </tag>
</tags>
</entry>
<entry>
<title>VPS与Hexo不得不说的那些事之四——安装Hexo</title>
<link href="/2018/06/17/%E5%AE%89%E8%A3%85Hexo/"/>
<url>/2018/06/17/%E5%AE%89%E8%A3%85Hexo/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><img src="/images/pasted-15.png" alt="Hexo"><br>本文主要讲述安装<strong>Hexo</strong><a id="more"></a></excerpt></p><the rest="" of="" contents="" |="" 余下全文=""><h1 id="安装"><a href="#安装" class="headerlink" title="安装"></a>安装</h1><p><code>npm install -g hexo --save</code></p><h1 id="初始化至目录"><a href="#初始化至目录" class="headerlink" title="初始化至目录"></a>初始化至目录</h1><p><code>mkdir /home/wwwroot && hexo init /home/wwwroot</code></p><p>其中/home/wwwroot/为个人喜好指定,不同的人初始化的目录不一样</p><h1 id="配置文件"><a href="#配置文件" class="headerlink" title="配置文件"></a>配置文件</h1><p><img src="/images/pasted-4.png" alt="upload successful"></p><p><img src="/images/pasted-5.png" alt="upload successful"></p><p>配置代码如下:<br><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br></pre></td><td class="code"><pre><span class="line">title: Panda没有黑眼圈</span><br><span class="line">subtitle:</span><br><span class="line">description: Panda没有黑眼圈</span><br><span class="line">author: Adward Zeng</span><br><span class="line">language: zh-Hans</span><br><span class="line">timezone:</span><br><span class="line"></span><br><span class="line"># URL</span><br><span class="line">## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'</span><br><span class="line">url: www.adwardx.top</span><br><span class="line">root: <span class="regexp">/</span></span><br><span class="line"><span class="regexp">permalink: :year/</span>:month/:day/:title/</span><br><span class="line">permalink_defaults:</span><br><span class="line"></span><br><span class="line"># Directory</span><br><span class="line">source_dir: source</span><br><span class="line">public_dir: public</span><br><span class="line">tag_dir: tags</span><br><span class="line">archive_dir: archives</span><br><span class="line">category_dir: categories</span><br><span class="line">code_dir: downloads/code</span><br><span class="line">i18n_dir: :lang</span><br><span class="line">skip_render:</span><br><span class="line"></span><br><span class="line"># Writing</span><br><span class="line">new_post_name: :title.md # File name of new posts</span><br><span class="line">default_layout: post</span><br><span class="line">titlecase: false # Transform title into titlecase</span><br><span class="line">external_link: true # Open external links in new tab</span><br><span class="line">filename_case: <span class="number">0</span></span><br><span class="line">render_drafts: <span class="literal">false</span></span><br><span class="line">post_asset_folder: <span class="literal">false</span></span><br><span class="line">relative_link: <span class="literal">false</span></span><br><span class="line">future: <span class="literal">true</span></span><br><span class="line">highlight:</span><br><span class="line"> enable: <span class="literal">true</span></span><br><span class="line"> line_number: <span class="literal">true</span></span><br><span class="line"> auto_detect: <span class="literal">false</span></span><br><span class="line"> tab_replace:</span><br><span class="line"></span><br><span class="line"># Home page setting</span><br><span class="line"># path: Root path for your blogs index page. (default = '')</span><br><span class="line"># per_page: Posts displayed per page. (0 = disable pagination)</span><br><span class="line"># order_by: Posts order. (Order by date descending by default)</span><br><span class="line">index_generator:</span><br><span class="line"> path: <span class="string">''</span></span><br><span class="line"> per_page: <span class="number">10</span></span><br><span class="line"> order_by: -date</span><br><span class="line"></span><br><span class="line"># Category & Tag</span><br><span class="line">default_category: uncategorized</span><br><span class="line">category_map:</span><br><span class="line">tag_map:</span><br><span class="line"></span><br><span class="line"># Date / Time format</span><br><span class="line">## Hexo uses Moment.js to parse and display date</span><br><span class="line">## You can customize the date format as defined in</span><br><span class="line">## http://momentjs.com/docs/#/displaying/format/</span><br><span class="line">date_format: YYYY-MM-DD</span><br><span class="line">time_format: HH:mm:ss</span><br><span class="line"></span><br><span class="line"># Pagination</span><br><span class="line">## Set per_page to 0 to disable pagination</span><br><span class="line">per_page: <span class="number">10</span></span><br><span class="line">pagination_dir: page</span><br><span class="line"></span><br><span class="line"># Extensions</span><br><span class="line">## Plugins: https://hexo.io/plugins/</span><br><span class="line">## Themes: https://hexo.io/themes/</span><br><span class="line">theme: yelee</span><br><span class="line"></span><br><span class="line"># 站点地图 hexo-generator-seo-friendly-sitemap</span><br><span class="line">sitemap:</span><br><span class="line"> path: sitemap.xml</span><br><span class="line"></span><br><span class="line"># 本地搜索 hexo-generator-search</span><br><span class="line">search:</span><br><span class="line"> path: search.xml</span><br><span class="line"> field: post</span><br><span class="line"></span><br><span class="line"># admin密码保护</span><br><span class="line">admin:</span><br><span class="line"> username: Adward_Z</span><br><span class="line"> password_hash: 你加密过的密码</span><br><span class="line"> secret: a secret something</span><br><span class="line"> deployCommand: <span class="string">'./hexo-deploy.sh'</span></span><br><span class="line"></span><br><span class="line"># Post wordcount display settings字数统计插件</span><br><span class="line"># Dependencies: https://github.com/willin/hexo-wordcount</span><br><span class="line"># 打开之后,会同时打开文章文字统计, 阅读时长和全站文字统计</span><br><span class="line">#wordcount:</span><br><span class="line"># enable: true</span><br><span class="line"></span><br><span class="line"># Deployment</span><br><span class="line">## Docs: https://hexo.io/docs/deployment.html</span><br><span class="line">deploy:</span><br><span class="line"> type: git</span><br><span class="line"> repo: git@github.com:ZengX2017/ZengX2017.github.io.git</span><br><span class="line"> branch: master</span><br></pre></td></tr></table></figure></p><h1 id="主题配置"><a href="#主题配置" class="headerlink" title="主题配置"></a>主题配置</h1><h2 id="主题下载"><a href="#主题下载" class="headerlink" title="主题下载"></a>主题下载</h2><p>在Hexo根目录(<font color="red">/home/wwwroot/</font>)下使用如下命令(以yelee主题为例)</p><p><code>git clone https://github.com/MOxFIVE/hexo-theme-yelee.git themes/yelee</code></p><h2 id="主题使用文档"><a href="#主题使用文档" class="headerlink" title="主题使用文档"></a>主题使用文档</h2><blockquote><p><a href="http://moxfive.xyz/yelee/1.Getting-Started/" target="_blank" rel="noopener">http://moxfive.xyz/yelee/1.Getting-Started/</a></p></blockquote><p><br></p><blockquote><p>参考文章:<br><a href="http://www.cnblogs.com/itxdm/p/hexo.html" target="_blank" rel="noopener">http://www.cnblogs.com/itxdm/p/hexo.html</a> 中的部署Hexo部分</p></blockquote></the>]]></content>
<categories>
<category> Web </category>
</categories>
<tags>
<tag> Hexo </tag>
</tags>
</entry>
<entry>
<title>VPS与Hexo不得不说的那些事之三——安装Nginx</title>
<link href="/2018/06/17/%E5%AE%89%E8%A3%85Nginx/"/>
<url>/2018/06/17/%E5%AE%89%E8%A3%85Nginx/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><img src="/images/pasted-16.png" alt="Nginx"><br>本文主要讲述安装<strong>Nginx</strong><a id="more"></a></excerpt></p><the rest="" of="" contents="" |="" 余下全文=""><h1 id="安装编译工具及库文件"><a href="#安装编译工具及库文件" class="headerlink" title="安装编译工具及库文件"></a>安装编译工具及库文件</h1><p> <code>yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel</code></p><h1 id="首先要安装-PCRE"><a href="#首先要安装-PCRE" class="headerlink" title="首先要安装 PCRE"></a>首先要安装 PCRE</h1><p> PCRE 作用是让 Nginx 支持 Rewrite 功能。</p><h2 id="下载-PCRE-安装包"><a href="#下载-PCRE-安装包" class="headerlink" title="下载 PCRE 安装包"></a>下载 PCRE 安装包</h2><blockquote><p>下载地址:<br><a href="https://sourceforge.net/projects/pcre/files/pcre/8.40/pcre-8.40.tar.gz" target="_blank" rel="noopener">https://sourceforge.net/projects/pcre/files/pcre/8.40/pcre-8.40.tar.gz</a></p></blockquote><p><code>wget https://sourceforge.net/projects/pcre/files/pcre/8.40/pcre-8.40.tar.gz</code><br>为了配合下面Nginx安装,建议在/usr/local/src/目录下下载。</p><h2 id="解压安装包"><a href="#解压安装包" class="headerlink" title="解压安装包"></a>解压安装包</h2><p><code>tar zxvf pcre-8.40.tar.gz</code></p><h2 id="进入安装包目录"><a href="#进入安装包目录" class="headerlink" title="进入安装包目录"></a>进入安装包目录</h2><p><code>cd pcre-8.40</code></p><h2 id="编译安装"><a href="#编译安装" class="headerlink" title="编译安装"></a>编译安装</h2><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">./configure</span><br><span class="line">make && make install</span><br></pre></td></tr></table></figure><h2 id="查看pcre版本"><a href="#查看pcre版本" class="headerlink" title="查看pcre版本"></a>查看pcre版本</h2><p><code>pcre-config --version</code><br><img src="/images/pasted-2.png" alt="upload successful"></p><h1 id="安装-Nginx"><a href="#安装-Nginx" class="headerlink" title="安装 Nginx"></a>安装 Nginx</h1><h2 id="下载-Nginx"><a href="#下载-Nginx" class="headerlink" title="下载 Nginx"></a>下载 Nginx</h2><blockquote><p>下载地址:<br><a href="http://nginx.org/download/nginx-1.14.0.tar.gz" target="_blank" rel="noopener">http://nginx.org/download/nginx-1.14.0.tar.gz</a></p></blockquote><p><code>wget http://nginx.org/download/nginx-1.14.0.tar.gz</code></p><h2 id="解压安装包-1"><a href="#解压安装包-1" class="headerlink" title="解压安装包"></a>解压安装包</h2><p><code>tar zxvf nginx-1.14.0.tar.gz</code></p><h2 id="进入安装包目录-1"><a href="#进入安装包目录-1" class="headerlink" title="进入安装包目录"></a>进入安装包目录</h2><p><code>cd nginx-1.14.0</code></p><h2 id="编译安装-1"><a href="#编译安装-1" class="headerlink" title="编译安装"></a>编译安装</h2><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.40</span><br><span class="line">make</span><br><span class="line">make install</span><br></pre></td></tr></table></figure><h2 id="查看Nginx版本"><a href="#查看Nginx版本" class="headerlink" title="查看Nginx版本"></a>查看Nginx版本</h2><p><code>/usr/local/webserver/nginx/sbin/nginx -v</code></p><p><img src="/images/pasted-3.png" alt="upload successful"></p><p>到此,Nginx安装完成。</p><p>nginx启动命令</p><pre>/usr/local/webserver/nginx/sbin/nginx</pre><blockquote><p>注:<br>netstat -ntpl 查看端口占用情况</p></blockquote><blockquote><p>参考文章:</p><ol><li><a href="http://www.runoob.com/linux/nginx-install-setup.html" target="_blank" rel="noopener">http://www.runoob.com/linux/nginx-install-setup.html</a></li></ol></blockquote></the>]]></content>
<categories>
<category> Web </category>
</categories>
<tags>
<tag> Nginx </tag>
</tags>
</entry>
<entry>
<title>VPS与Hexo不得不说的那些事之二——安装Node.js</title>
<link href="/2018/06/17/%E5%AE%89%E8%A3%85Node-js/"/>
<url>/2018/06/17/%E5%AE%89%E8%A3%85Node-js/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><img src="/images/pasted-14.png" alt="Node.js"><br><strong>Node.js</strong>的安装相对简单<a id="more"></a></excerpt></p><the rest="" of="" contents="" |="" 余下全文=""><h1 id="获取Node-js的源码"><a href="#获取Node-js的源码" class="headerlink" title="获取Node.js的源码"></a>获取Node.js的源码</h1><p> <br> <code>wget http://nodejs.org/dist/v9.3.0/node-v9.3.0.tar.gz</code></p><h1 id="解压"><a href="#解压" class="headerlink" title="解压"></a>解压</h1><p> <br> <code>tar zxvf node-v9.3.0.tar.gz</code></p><h1 id="开始安装"><a href="#开始安装" class="headerlink" title="开始安装"></a>开始安装</h1><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">cd node-v9.3.0</span><br><span class="line">./configure#如果gcc、make等依赖未安装会报错</span><br><span class="line">make install</span><br></pre></td></tr></table></figure><h1 id="安装完成之后验证版本"><a href="#安装完成之后验证版本" class="headerlink" title="安装完成之后验证版本"></a>安装完成之后验证版本</h1><p> <br> <code>node -v</code></p><blockquote><p>参考文章</p><ol><li><a href="https://voidalex.one/2018/02/19/%E4%B8%80%E7%A7%8D%E5%9C%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E9%83%A8%E7%BD%B2Hexo%E5%8D%9A%E5%AE%A2%E7%9A%84%E6%80%9D%E8%B7%AF/" target="_blank" rel="noopener">https://voidalex.one/2018/02/19/%E4%B8%80%E7%A7%8D%E5%9C%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E9%83%A8%E7%BD%B2Hexo%E5%8D%9A%E5%AE%A2%E7%9A%84%E6%80%9D%E8%B7%AF/</a> 中的安装Node.js</li></ol></blockquote></the>]]></content>
<categories>
<category> Web </category>
</categories>
<tags>
<tag> Node.js </tag>
</tags>
</entry>
<entry>
<title>VPS与Hexo不得不说的那些事之一——安装Git</title>
<link href="/2018/06/17/%E5%AE%89%E8%A3%85Git/"/>
<url>/2018/06/17/%E5%AE%89%E8%A3%85Git/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><img src="/images/pasted-13.png" alt="Git"><br>本文主要讲述在centos6下的<strong>Git</strong>基础安装与升级<a id="more"></a></excerpt></p><the rest="" of="" contents="" |="" 余下全文=""> <h1 id="Git基础安装"><a href="#Git基础安装" class="headerlink" title="Git基础安装"></a>Git基础安装</h1><p>运行<code>yum -y install git gcc gcc-c++ curl wget</code>,会安装好Git的基础版本,由于基础版本太低,故要对其进行升级。</p><h1 id="Git升级"><a href="#Git升级" class="headerlink" title="Git升级"></a>Git升级</h1><h2 id="下载编译工具"><a href="#下载编译工具" class="headerlink" title="下载编译工具"></a>下载编译工具</h2><pre><code>yum -y groupinstall "Development Tools"</code></pre><h2 id="下载依赖包"><a href="#下载依赖包" class="headerlink" title="下载依赖包"></a>下载依赖包</h2><pre><code>yum -y install zlib-devel perl-ExtUtils-MakeMaker asciidoc xmlto openssl-devel</code></pre><h2 id="下载git最新版本的源代码"><a href="#下载git最新版本的源代码" class="headerlink" title="下载git最新版本的源代码"></a>下载git最新版本的源代码</h2><pre><code>wget https://www.kernel.org/pub/software/scm/git/git-2.17.1.tar.gz</code></pre><p>注:登录<a href="https://github.com/git/git/releases" target="_blank" rel="noopener">https://github.com/git/git/releases</a> 查看git的最新版。不要下载带有-rc的,因为它代表了一个候选发布版本。目前最新版本是2.17.1,如果不是,只需替换掉上面命令的版本号即可。</p><h2 id="解压"><a href="#解压" class="headerlink" title="解压"></a>解压</h2><pre><code>tar -zxvf git-2.17.1.tar.gz</code></pre><h2 id="进入目录配置"><a href="#进入目录配置" class="headerlink" title="进入目录配置"></a>进入目录配置</h2><pre><code>cd git-2.17.1 ./configure --prefix=/usr/local/git</code></pre><h2 id="安装"><a href="#安装" class="headerlink" title="安装"></a>安装</h2><pre><code>make && make install</code></pre><h2 id="配置全局路径"><a href="#配置全局路径" class="headerlink" title="配置全局路径"></a>配置全局路径</h2><pre><code>vi /etc/profileexport PATH="/usr/local/git/bin:$PATH" // 将此行代码添加到最后一行 source /etc/profile // 执行此句则表示为应用全局路径</code></pre><p> <font color="red">说到配置全局路径,则为在/etc/profile中的最后添加代码:<br> <figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"> export PATH="/usr/local/node/bin:$PATH"</span><br><span class="line"> export PATH="/usr/local/git/bin:$PATH:/usr/libexec/git-core:$PATH"</span><br><span class="line"># export PATH="/usr/libexec/git-core:$PATH" // 注释掉不需要的</span><br></pre></td></tr></table></figure></font></p><p> 若少掉第二行中的:<strong><font color="blue">/usr/libexec/git-core:$PATH</font></strong>,则会出现<strong><font color="black"><code>fatal: Unable to find remote helper for 'https'</code></font></strong>的错误<br><br> <br></p><h2 id="查看Git版本"><a href="#查看Git版本" class="headerlink" title="查看Git版本"></a>查看Git版本</h2><pre><code>git --version</code></pre><p> 此时Git已更新至最新版本</p><h2 id="相关截图"><a href="#相关截图" class="headerlink" title="相关截图"></a>相关截图</h2><h3 id="etc-profile内容"><a href="#etc-profile内容" class="headerlink" title="/etc/profile内容"></a>/etc/profile内容</h3><p><img src="/images/pasted-1.png" alt="upload successful"></p><blockquote><p>参考文章:</p><ol><li><a href="http://www.cnblogs.com/itxdm/p/hexo.html" target="_blank" rel="noopener">http://www.cnblogs.com/itxdm/p/hexo.html</a> 中的Git基础安装</li><li><a href="http://www.chenzhan.me/2018/01/31/%E9%83%A8%E7%BD%B2Hexo%E5%88%B0CentOS%E6%9C%8D%E5%8A%A1%E5%99%A8/" target="_blank" rel="noopener">http://www.chenzhan.me/2018/01/31/%E9%83%A8%E7%BD%B2Hexo%E5%88%B0CentOS%E6%9C%8D%E5%8A%A1%E5%99%A8/</a> 中的升级Git</li><li><a href="https://blog.csdn.net/yanwuhuan/article/details/7412370" target="_blank" rel="noopener">https://blog.csdn.net/yanwuhuan/article/details/7412370</a> 中的解决办法</li><li><a href="https://www.cnblogs.com/amboyna/archive/2008/03/08/1096024.html" target="_blank" rel="noopener">https://www.cnblogs.com/amboyna/archive/2008/03/08/1096024.html</a> 中的:$PATH后的拼接格式</li></ol></blockquote></the>]]></content>
<categories>
<category> Web </category>
</categories>
<tags>
<tag> Git </tag>
</tags>
</entry>
<entry>
<title>VPS与Hexo不得不说的那些事</title>
<link href="/2018/06/16/%E6%90%AD%E5%BB%BAHexo/"/>
<url>/2018/06/16/%E6%90%AD%E5%BB%BAHexo/</url>
<content type="html"><![CDATA[<excerpt in="" index="" |="" 首页摘要=""><p><img src="/images/pasted-9.png" alt="卧槽!这么6"><br>本人搭建Hexo的前提是有一台VPS,一个域名,并且域名已解析。<a id="more"></a></p><the rest="" of="" contens="" |="" 余下全文=""><h1 id="工作环境"><a href="#工作环境" class="headerlink" title="工作环境"></a>工作环境</h1><p>准备工作:安装有<font color="red">centos6</font>的<font color="red">VPS</font>一台,域名一个(<font color="red">adawrdx.top</font>)</p><h1 id="对搭建Hexo所需依赖进行安装"><a href="#对搭建Hexo所需依赖进行安装" class="headerlink" title="对搭建Hexo所需依赖进行安装"></a>对搭建Hexo所需依赖进行安装</h1><h2 id="安装Git"><a href="#安装Git" class="headerlink" title="安装Git"></a>安装Git</h2><p>详细内容见此文</p><blockquote><p><a href="http://www.adwardx.top/2018/06/16/%E5%AE%89%E8%A3%85Git/">http://www.adwardx.top/2018/06/16/%E5%AE%89%E8%A3%85Git/</a></p></blockquote><h2 id="安装Node-js"><a href="#安装Node-js" class="headerlink" title="安装Node.js"></a>安装Node.js</h2><p>详细内容见此文</p><blockquote><p><a href="http://www.adwardx.top/2018/06/16/%E5%AE%89%E8%A3%85Node-js/">http://www.adwardx.top/2018/06/16/%E5%AE%89%E8%A3%85Node-js/</a></p></blockquote><h2 id="安装Nginx"><a href="#安装Nginx" class="headerlink" title="安装Nginx"></a>安装Nginx</h2><p>详细内容见此文</p><blockquote><p><a href="http://www.adwardx.top/2018/06/16/%E5%AE%89%E8%A3%85Nginx/">http://www.adwardx.top/2018/06/16/%E5%AE%89%E8%A3%85Nginx/</a></p></blockquote><h2 id="安装Hexo"><a href="#安装Hexo" class="headerlink" title="安装Hexo"></a>安装Hexo</h2><p>详细内容见此文</p><blockquote><p><a href="http://www.adwardx.top/2018/06/16/%E5%AE%89%E8%A3%85Nginx/">http://www.adwardx.top/2018/06/16/%E5%AE%89%E8%A3%85Nginx/</a></p></blockquote></the></excerpt>]]></content>
<categories>
<category> Web </category>
</categories>
<tags>
<tag> Nginx </tag>
<tag> Git </tag>
<tag> Hexo </tag>
<tag> Node.js </tag>
<tag> VPS </tag>
</tags>
</entry>
<entry>
<title>idea一些操作(个人记录)</title>
<link href="/2018/06/14/idea%E4%B8%80%E4%BA%9B%E6%93%8D%E4%BD%9C%EF%BC%88%E4%B8%AA%E4%BA%BA%E8%AE%B0%E5%BD%95%EF%BC%89/"/>
<url>/2018/06/14/idea%E4%B8%80%E4%BA%9B%E6%93%8D%E4%BD%9C%EF%BC%88%E4%B8%AA%E4%BA%BA%E8%AE%B0%E5%BD%95%EF%BC%89/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br>一些idea的使用<a id="more"></a></excerpt></p><p><the rest="" of="" contents="" |="" 余下全文=""><br><strong>一、tab的妙用</strong></the></p><blockquote><ol><li><code>div.main</code>接着按tab<br>会生成一个<code>class="main"</code>的div</li><li><code>div>span*n</code>接着按tab<br>会生成带有n个span标签的div<br><br><font size="5" color="red">注:此处将div换成其他标签都行,span也是</font></li></ol></blockquote>]]></content>
<categories>
<category> 小技巧 </category>
</categories>
<tags>
<tag> idea </tag>
</tags>
</entry>
<entry>
<title>Hello World</title>
<link href="/2018/06/14/hello-world/"/>
<url>/2018/06/14/hello-world/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><img src="/images/pasted-12.png" alt="Hello World"><br><a id="more"></a></excerpt></p><p><the rest="" of="" contents="" |="" 余下全文=""><br>Welcome to <a href="https://hexo.io/" target="_blank" rel="noopener">Hexo</a>! This is your very first post. Check <a href="https://hexo.io/docs/" target="_blank" rel="noopener">documentation</a> for more info. If you get any problems when using Hexo, you can find the answer in <a href="https://hexo.io/docs/troubleshooting.html" target="_blank" rel="noopener">troubleshooting</a> or you can ask me on <a href="https://github.com/hexojs/hexo/issues" target="_blank" rel="noopener">GitHub</a>.</the></p><h2 id="Quick-Start"><a href="#Quick-Start" class="headerlink" title="Quick Start"></a>Quick Start</h2><h3 id="Create-a-new-post"><a href="#Create-a-new-post" class="headerlink" title="Create a new post"></a>Create a new post</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo new <span class="string">"My New Post"</span></span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/writing.html" target="_blank" rel="noopener">Writing</a></p><h3 id="Run-server"><a href="#Run-server" class="headerlink" title="Run server"></a>Run server</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo server</span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/server.html" target="_blank" rel="noopener">Server</a></p><h3 id="Generate-static-files"><a href="#Generate-static-files" class="headerlink" title="Generate static files"></a>Generate static files</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo generate</span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/generating.html" target="_blank" rel="noopener">Generating</a></p><h3 id="Deploy-to-remote-sites"><a href="#Deploy-to-remote-sites" class="headerlink" title="Deploy to remote sites"></a>Deploy to remote sites</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo deploy</span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/deployment.html" target="_blank" rel="noopener">Deployment</a></p>]]></content>
</entry>
<entry>
<title>BootStrap,使用过程中的一些get点(个人向)</title>
<link href="/2018/03/05/BootStrap%EF%BC%8C%E4%BD%BF%E7%94%A8%E8%BF%87%E7%A8%8B%E4%B8%AD%E7%9A%84%E4%B8%80%E4%BA%9Bget%E7%82%B9%EF%BC%88%E4%B8%AA%E4%BA%BA%E5%90%91%EF%BC%89/"/>
<url>/2018/03/05/BootStrap%EF%BC%8C%E4%BD%BF%E7%94%A8%E8%BF%87%E7%A8%8B%E4%B8%AD%E7%9A%84%E4%B8%80%E4%BA%9Bget%E7%82%B9%EF%BC%88%E4%B8%AA%E4%BA%BA%E5%90%91%EF%BC%89/</url>
<content type="html"><![CDATA[<p><excerpt in="" index="" |="" 首页摘要=""><br><img src="/images/pasted-7.png" alt="想不到吧"></excerpt></p><p>本文内容从CSDN博客迁移过来,原博地址:<a href="https://blog.csdn.net/manmandong123/article/details/79199686。" target="_blank" rel="noopener">https://blog.csdn.net/manmandong123/article/details/79199686。</a><br>由于有些内容可能会看起来有点混乱,后期会整理<a id="more"></a></p><p><the rest="" of="" contents="" |="" 余下全文=""><br><strong>更新提醒</strong></the></p><blockquote><p><font color="red">从现在开始2018年3月3日会对更新时间和内容进行介绍</font></p><ol><li><font color="black">2018年3月5日 14点35分</font> ——-> 十、8小点(<font color="blue">timelinejs</font>)进行了添加(新增的插件) <a href="http://blog.csdn.net/manmandong123/article/details/79199686/#10.8" target="_blank" rel="noopener">点击跳转</a></li><li><font color="black">2018年3月5日 17点29分</font> ——-> 十、8小点(<font color="blue">timelinejs</font>)进行了删除</li><li><font color="black">2018年3月9日 18点12分</font> ——-> 十、8小点(<font color="blue">printThis</font>)进行了添加 <a href="http://blog.csdn.net/manmandong123/article/details/79199686/#10.8" target="_blank" rel="noopener">点击跳转</a></li></ol></blockquote><h1 id="导航栏窗口定制"><a href="#导航栏窗口定制" class="headerlink" title="导航栏窗口定制"></a>导航栏窗口定制</h1><blockquote><p><a href="https://stackoverflow.com/questions/18529274/change-navbar-color-in-twitter-bootstrap-3" target="_blank" rel="noopener">https://stackoverflow.com/questions/18529274/change-navbar-color-in-twitter-bootstrap-3</a><br>此回答下有导航栏窗口定制的网站</p><blockquote><p><a href="https://work.smarchal.com/twbscolor/css/e74c3cc0392becf0f1ffbbbc0" target="_blank" rel="noopener">https://work.smarchal.com/twbscolor/css/e74c3cc0392becf0f1ffbbbc0</a></p></blockquote></blockquote><h1 id="图标"><a href="#图标" class="headerlink" title="图标"></a>图标</h1><blockquote><p><a href="https://fontawesome.com/icons?d=gallery" target="_blank" rel="noopener">https://fontawesome.com/icons?d=gallery</a><br><a href="http://www.bootcdn.cn/" target="_blank" rel="noopener">http://www.bootcdn.cn/</a><br><a href="https://icons8.com/icon/set/weixin/all" target="_blank" rel="noopener">https://icons8.com/icon/set/weixin/all</a></p></blockquote><h1 id="标签页"><a href="#标签页" class="headerlink" title="标签页"></a>标签页</h1><blockquote><p><a href="http://blog.csdn.net/shiquanqq/article/details/48786701" target="_blank" rel="noopener">http://blog.csdn.net/shiquanqq/article/details/48786701</a></p></blockquote><h1 id="markdown"><a href="#markdown" class="headerlink" title="markdown"></a>markdown</h1><blockquote><p><strong>创建bootstrap-markdown.js</strong><br><br></p><blockquote><p> <a href="https://github.com/toopay/bootstrap-markdown" target="_blank" rel="noopener">https://github.com/toopay/bootstrap-markdown</a><br><a href="http://blog.csdn.net/hai4321/article/details/75204267" target="_blank" rel="noopener">http://blog.csdn.net/hai4321/article/details/75204267</a></p></blockquote><p><strong>使用文档</strong><br><a href="http://www.codingdrama.com/bootstrap-markdown/" target="_blank" rel="noopener">http://www.codingdrama.com/bootstrap-markdown/</a></p></blockquote><h1 id="主题"><a href="#主题" class="headerlink" title="主题"></a>主题</h1><blockquote><p><a href="https://bootswatch.com/3/" target="_blank" rel="noopener">https://bootswatch.com/3/</a></p></blockquote><h1 id="上传控件"><a href="#上传控件" class="headerlink" title="上传控件"></a>上传控件</h1><blockquote><p><a href="https://github.com/kartik-v/bootstrap-fileinput/wiki/12.-%E4%B8%80%E4%BA%9B%E6%A0%B7%E4%BE%8B%E4%BB%A3%E7%A0%81#%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95" target="_blank" rel="noopener">https://github.com/kartik-v/bootstrap-fileinput/wiki/12.-%E4%B8%80%E4%BA%9B%E6%A0%B7%E4%BE%8B%E4%BB%A3%E7%A0%81#%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95</a></p></blockquote><h1 id="CDN"><a href="#CDN" class="headerlink" title="CDN"></a>CDN</h1><blockquote><p><a href="http://www.bootcdn.cn/" target="_blank" rel="noopener">http://www.bootcdn.cn/</a></p></blockquote><h1 id="所用插件"><a href="#所用插件" class="headerlink" title="所用插件"></a>所用插件</h1><blockquote><p>1.datatables</p><blockquote><ul><li>github:<a href="https://github.com/ssy341/datatables-cn/issues/21" target="_blank" rel="noopener">https://github.com/ssy341/datatables-cn/issues/21</a></li><li>官网:<a href="http://datatables.club/example/" target="_blank" rel="noopener">http://datatables.club/example/</a></li><li>其他:<a href="http://www.cnblogs.com/hubing/p/4491308.html" target="_blank" rel="noopener">http://www.cnblogs.com/hubing/p/4491308.html</a></li><li>其他:<a href="http://www.cnblogs.com/zhoujie/p/js3.html" target="_blank" rel="noopener">http://www.cnblogs.com/zhoujie/p/js3.html</a></li></ul></blockquote><p>2.jquery-datatables-editable</p><blockquote><ul><li>官网:<a href="https://editor.datatables.net/examples/inline-editing/simple" target="_blank" rel="noopener">https://editor.datatables.net/examples/inline-editing/simple</a></li></ul></blockquote><p>3.sweet-alert</p><blockquote><ul><li>官网:<a href="https://lipis.github.io/bootstrap-sweetalert/" target="_blank" rel="noopener">https://lipis.github.io/bootstrap-sweetalert/</a><br>由于无法根据获取的id来删除内容,故打算制造删除的提示框的想法取消</li></ul></blockquote><p>4.bootstrap-fileinput</p><blockquote><ul><li>官网:<a href="https://github.com/kartik-v/bootstrap-fileinput" target="_blank" rel="noopener">https://github.com/kartik-v/bootstrap-fileinput</a></li><li>其他:<a href="http://www.os373.cn/article/81" target="_blank" rel="noopener">http://www.os373.cn/article/81</a></li><li>其他:<a href="http://blog.csdn.net/qq_28550739/article/details/53436080" target="_blank" rel="noopener">http://blog.csdn.net/qq_28550739/article/details/53436080</a></li><li>其他:<a href="http://blog.csdn.net/u012526194/article/details/69937741" target="_blank" rel="noopener">http://blog.csdn.net/u012526194/article/details/69937741</a></li></ul></blockquote><p>5.summernote</p><blockquote><ul><li>官网:<a href="https://summernote.org/" target="_blank" rel="noopener">https://summernote.org/</a></li><li>其他:<a href="http://blog.csdn.net/wang404838334/article/details/78449191(前端显示)" target="_blank" rel="noopener">http://blog.csdn.net/wang404838334/article/details/78449191(前端显示)</a><br><img src="http://img.blog.csdn.net/20180210140336930?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFubWFuZG9uZzEyMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70" alt="看这里"><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"> <div class="panel panel-default m-t-20"></span><br><span class="line"> <div class="panel-body"></span><br><span class="line"> {% for v in page_data %}</span><br><span class="line"> <div id="summer"> </div></span><br><span class="line"> <input type="hidden" value="{{ v.content }}" id="article_content"></span><br><span class="line"> {% endfor %}</span><br><span class="line"></div> <!-- panel-body --></span><br><span class="line"></div></span><br></pre></td></tr></table></figure></li></ul></blockquote></blockquote><pre><code>script部分:<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><script></span><br><span class="line"> jQuery(document).ready(function () {</span><br><span class="line"> var innerhtml = $("#article_content").val();</span><br><span class="line"> $("#summer").html(innerhtml);</span><br><span class="line"> });</span><br><span class="line"> </script></span><br></pre></td></tr></table></figure> 本部分代码为从数据库中将带有标签的内容正确读取</code></pre><blockquote><blockquote><p><img src="http://img.blog.csdn.net/20180210141043383?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFubWFuZG9uZzEyMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70" alt="看这里"></p></blockquote><p> 6 bootstrap-datepicker</p><blockquote><ul><li>github:<a href="http://bootstrap-datepicker.readthedocs.io/en/latest/markup.html" target="_blank" rel="noopener">http://bootstrap-datepicker.readthedocs.io/en/latest/markup.html</a></li></ul></blockquote><p> 7 bootstrap-datetimepicker</p><blockquote><ul><li>github:<a href="https://github.com/smalot/bootstrap-datetimepicker" target="_blank" rel="noopener">https://github.com/smalot/bootstrap-datetimepicker</a></li><li>其他:<a href="http://www.bootcss.com/p/bootstrap-datetimepicker/" target="_blank" rel="noopener">http://www.bootcss.com/p/bootstrap-datetimepicker/</a></li><li>其他:<a href="https://www.malot.fr/bootstrap-datetimepicker/demo.php" target="_blank" rel="noopener">https://www.malot.fr/bootstrap-datetimepicker/demo.php</a></li></ul></blockquote><p> 8 <span id="10.8"><font color="black">printThis</font></span></p><blockquote><ul><li>github:<a href="https://github.com/jasonday/printThis" target="_blank" rel="noopener">https://github.com/jasonday/printThis</a></li></ul></blockquote></blockquote><h1 id="级联菜单的问题"><a href="#级联菜单的问题" class="headerlink" title="级联菜单的问题"></a>级联菜单的问题</h1><blockquote><p><img src="http://img.blog.csdn.net/20180211181233311?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFubWFuZG9uZzEyMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70" alt="这里写图片描述"></p></blockquote><font color="red">解决了三层级联的问题,由于之前误以为wtf-form表单的下拉选择框支持级联,后来发现渲染前端标签的时候,数据无法及时获取。因此,在forms.py中将下拉框改成了stringfield,设置隐藏属性,用前端js的三层级联框将数据根据id赋值给form.xxx。以此解决了三层级联的数据问题</font><blockquote><p><br><br>部分代码如下:</p></blockquote><font color="blue">forms.py</font><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">province = StringField(</span><br><span class="line"> description="省",</span><br><span class="line"> render_kw={</span><br><span class="line"> "class": "form-control",</span><br><span class="line"> "id": "hidden-province",</span><br><span class="line"> "type": "hidden"</span><br><span class="line"> }</span><br><span class="line"> )</span><br></pre></td></tr></table></figure><p><font color="blue">xxx.html</font><br><img src="http://img.blog.csdn.net/20180211230230390?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFubWFuZG9uZzEyMw==/font/5a6L5L2T/fontsize/1000/fill/I0JBQkFCMA==/dissolve/70" alt="这里写图片描述"><br><img src="http://img.blog.csdn.net/20180211232218231?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFubWFuZG9uZzEyMw==/font/5a6L5L2T/fontsize/1200/fill/I0JBQkFCMA==/dissolve/70" alt="这里写图片描述"></p><p>用Jquery的val()方法给隐藏的province赋值。同时一定要注意在html后赋值。</p><h1 id="需要注意的点"><a href="#需要注意的点" class="headerlink" title="需要注意的点"></a>需要注意的点</h1><ol><li><font color="red">没弄懂scss之前,拒绝用带有scss的样式</font></li><li>min.css和.css还是有很区别的</li></ol><blockquote><p>参考网站:</p><ol><li><a href="http://www.cnblogs.com/zhangyongl/p/6912050.html" target="_blank" rel="noopener">http://www.cnblogs.com/zhangyongl/p/6912050.html</a></li><li><a href="http://blog.csdn.net/zhongqiushen/article/details/79163406" target="_blank" rel="noopener">http://blog.csdn.net/zhongqiushen/article/details/79163406</a></li></ol></blockquote>]]></content>
<categories>
<category> Web </category>
</categories>
<tags>
<tag> BootStrap </tag>
</tags>
</entry>
</search>