AtCoderTags_Helper

AtCoderTagsへのTag投票を、AtCoder問題ページからTagを選ぶだけで投票できるようにします。

  1. // ==UserScript==
  2. // @name AtCoderTags_Helper
  3. // @version 2.7
  4. // @author Null_Null
  5. // @match https://atcoder.jp/contests/*/tasks/*
  6. // @match https://*/tasks/*
  7. // @grant none
  8. // @namespace https://github.com/null-null-programming/AtCoderTags-Helper
  9. // @description AtCoderTagsへのTag投票を、AtCoder問題ページからTagを選ぶだけで投票できるようにします。
  10. // ==/UserScript==
  11.  
  12. $('#copyright').append(`
  13. <style>
  14. #atcoder-tags-helper > select {
  15. display: inline-block;
  16. vertical-align: top;
  17. width: 230px;
  18. margin: 0px 5px;
  19. }
  20. </style>
  21.  
  22. <div id="atcoder-tags-helper" class="form-inline" style="padding-top: 5rem">
  23. <select id="tag_parent" class="form-control" name="tag" size="18">
  24. <option data-subgroup="Easy" value="Easy">Easy</option>
  25. <option data-subgroup="Ad-Hoc" value="Ad-Hoc">Ad-Hoc</option>
  26. <option data-subgroup="Searching" value="Searching">Searching</option>
  27. <option data-subgroup="Greedy-Methods" value="Greedy-Methods">Greedy-Methods</option>
  28. <option data-subgroup="String" value="String">String</option>
  29. <option data-subgroup="Mathematics" value="Mathematics">Mathematics</option>
  30. <option data-subgroup="Technique" value="Technique">Technique</option>
  31. <option data-subgroup="Construct" value="Construct">Construct</option>
  32. <option data-subgroup="Graph" value="Graph">Graph</option>
  33. <option data-subgroup="Dynamic-Programming" value="Dynamic-Programming">Dynamic-Programming</option>
  34. <option data-subgroup="Data-Structure" value="Data-Structure">Data-Structure</option>
  35. <option data-subgroup="Game" value="Game">Game</option>
  36. <option data-subgroup="Flow-Algorithms" value="Flow-Algorithms">Flow-Algorithms</option>
  37. <option data-subgroup="Geometry" value="Geometry">Geometry</option>
  38. <option data-subgroup="Interactive" value="Interactive">Interactive</option>
  39. <option data-subgroup="April-Fool" value="April-Fool">April-Fool</option>
  40. <option data-subgroup="Marathon" value="Marathon">Marathon</option>
  41. <option data-subgroup="Other" value="Other">Other</option>
  42. </select>
  43.  
  44. <select id="tag_child" class="form-control" name="tag2" size="18">
  45. <option data-group="Searching" value="Brute-Force">全探索</option>
  46. <option data-group="Searching" value="Binary-Search">二分探索</option>
  47. <option data-group="Searching" value="Ternary-Search">三分探索</option>
  48. <option data-group="Searching" value="DFS">深さ優先探索</option>
  49. <option data-group="Searching" value="BFS">幅優先探索</option>
  50. <option data-group="Searching" value="Bit-Brute-Force">bit全探索</option>
  51. <option data-group="Searching" value="Heuristic">ヒューリスティック</option>
  52. <option data-group="Searching" value="Other">その他</option>
  53.  
  54. <option data-group="String" value="String-Operation">文字列処理</option>
  55. <option data-group="String" value="Rolling-Hash">ローリングハッシュ</option>
  56. <option data-group="String" value="Manacher">Manacher</option>
  57. <option data-group="String" value="Suffix-Array">Suffix-Array</option>
  58. <option data-group="String" value="Z-Algorithm">Z-Algorithm</option>
  59. <option data-group="String" value="Trie">Trie</option>
  60. <option data-group="String" value="Parsing">構文解析</option>
  61. <option data-group="String" value="Other">その他</option>
  62.  
  63. <option data-group="Mathematics" value="Number">整数</option>
  64. <option data-group="Mathematics" value="Combinatorics">組み合わせ</option>
  65. <option data-group="Mathematics" value="Enumerate">数え上げ</option>
  66. <option data-group="Mathematics" value="Probability">確率</option>
  67. <option data-group="Mathematics" value="Expected-Value">期待値</option>
  68. <option data-group="Mathematics" value="Matrix">行列</option>
  69. <option data-group="Mathematics" value="XOR">XOR</option>
  70. <option data-group="Mathematics" value="Other">その他</option>
  71.  
  72. <option data-group="Technique" value="Sort">ソート</option>
  73. <option data-group="Technique" value="Simulation">シミュレーション</option>
  74. <option data-group="Technique" value="Cumulative-Sum">累積和</option>
  75. <option data-group="Technique" value="imos">imos法</option>
  76. <option data-group="Technique" value="Two-Pointers">尺取り法</option>
  77. <option data-group="Technique" value="Recursion">再帰関数</option>
  78. <option data-group="Technique" value="Compress">座標圧縮</option>
  79. <option data-group="Technique" value="Split-And-List">半分全列挙</option>
  80. <option data-group="Technique" value="Square-Division">平方分割</option>
  81. <option data-group="Technique" value="Divide-And-Conquer">分割統治法</option>
  82. <option data-group="Technique" value="Doubling">ダブリング</option>
  83. <option data-group="Technique" value="Randomized-Algorithm">乱択アルゴリズム</option>
  84. <option data-group="Technique" value="Other">その他</option>
  85.  
  86. <option data-group="Graph" value="Shortest-Path">最短経路</option>
  87. <option data-group="Graph" value="Minimum-Spanning-Tree">最小全域木</option>
  88. <option data-group="Graph" value="LCA">最小共通祖先</option>
  89. <option data-group="Graph" value="Strongly-Connected-Components">強連結成分分解</option>
  90. <option data-group="Graph" value="Topological-Sort">トポロジカルソート</option>
  91. <option data-group="Graph" value="Euler-Tour">オイラーツアー</option>
  92. <option data-group="Graph" value="Euler-Path-and-Hamilton-Path">オイラーパス・ハミルトンパス</option>
  93. <option data-group="Graph" value="HL-Decomposition">HL分解</option>
  94. <option data-group="Graph" value="Centroid-Decomposition">重心分解</option>
  95. <option data-group="Graph" value="Check-Tree">木の同型判定</option>
  96. <option data-group="Graph" value="Kirchhoff">行列木定理</option>
  97. <option data-group="Graph" value="Two-Edge-Connected-Components">二重辺連結成分分解</option>
  98. <option data-group="Graph" value="Bi-Connected-Components">二重頂点連結成分分解</option>
  99. <option data-group="Graph" value="Cycle-Basis">サイクル基底</option>
  100. <option data-group="Graph" value="dfs-tree">dfs木</option>
  101. <option data-group="Graph" value="Erdesh">エルデシュガライの定理</option>
  102. <option data-group="Graph" value="Other">その他</option>
  103.  
  104. <option data-group="Dynamic-Programming" value="Simple-DP">基礎DP</option>
  105. <option data-group="Dynamic-Programming" value="Restore-DP">戻すDP</option>
  106. <option data-group="Dynamic-Programming" value="String-DP">文字列DP</option>
  107. <option data-group="Dynamic-Programming" value="Section-DP">区間DP</option>
  108. <option data-group="Dynamic-Programming" value="Digit-DP">桁DP</option>
  109. <option data-group="Dynamic-Programming" value="Tree-DP">木DP</option>
  110. <option data-group="Dynamic-Programming" value="Every-Direction-DP">全方位木DP</option>
  111. <option data-group="Dynamic-Programming" value="Bit-DP">bitDP</option>
  112. <option data-group="Dynamic-Programming" value="Probability-DP">確率DP</option>
  113. <option data-group="Dynamic-Programming" value="Expected-Value-DP">期待値DP</option>
  114. <option data-group="Dynamic-Programming" value="Insert-DP">挿入DP</option>
  115. <option data-group="Dynamic-Programming" value="Link-DP">連結DP</option>
  116. <option data-group="Dynamic-Programming" value="Inline-DP">インラインDP</option>
  117. <option data-group="Dynamic-Programming" value="Matrix-Power">行列累乗</option>
  118. <option data-group="Dynamic-Programming" value="CHT">Convex-Hull-Trick</option>
  119. <option data-group="Dynamic-Programming" value="Monge-DP">Monge-DP</option>
  120. <option data-group="Dynamic-Programming" value="Alien-DP">Alien-DP</option>
  121. <option data-group="Dynamic-Programming" value="Kitamasa">きたまさ法</option>
  122. <option data-group="Dynamic-Programming" value="Other">その他</option>
  123.  
  124. <option data-group="Data-Structure" value="stack">stack</option>
  125. <option data-group="Data-Structure" value="queue">queue</option>
  126. <option data-group="Data-Structure" value="set">set</option>
  127. <option data-group="Data-Structure" value="map">map</option>
  128. <option data-group="Data-Structure" value="deque">deque</option>
  129. <option data-group="Data-Structure" value="multiset">multiset</option>
  130. <option data-group="Data-Structure" value="priority_queue">priority_queue</option>
  131. <option data-group="Data-Structure" value="Union-Find-Tree">Union-Find-Tree</option>
  132. <option data-group="Data-Structure" value="BIT">Binary-Indexed-Tree</option>
  133. <option data-group="Data-Structure" value="Segment-Tree">Segment-Tree</option>
  134. <option data-group="Data-Structure" value="Lazy-Segment-Tree">Lazy-Segment-Tree</option>
  135. <option data-group="Data-Structure" value="Sparse-Table">Sparse-Table</option>
  136. <option data-group="Data-Structure" value="WaveletMatrix">WaveletMatrix</option>
  137. <option data-group="Data-Structure" value="Persistent-Data-Structures">永続データ構造</option>
  138. <option data-group="Data-Structure" value="Balanced-Tree">平衡二分探索木</option>
  139. <option data-group="Data-Structure" value="Other">その他</option>
  140.  
  141. <option data-group="Game" value="Nim">Nim</option>
  142. <option data-group="Game" value="Grundy">Grundy数</option>
  143. <option data-group="Game" value="Backtrack">後退解析</option>
  144. <option data-group="Game" value="Mini-Max">ミニマックス法</option>
  145. <option data-group="Game" value="unique">特殊な性質</option>
  146. <option data-group="Game" value="Other">その他</option>
  147.  
  148. <option data-group="Flow-Algorithms" value="Max-Flow">最大流問題</option>
  149. <option data-group="Flow-Algorithms" value="Min-Cost-Flow">最小費用流問題</option>
  150. <option data-group="Flow-Algorithms" value="Bipartite-Matching">二部マッチング</option>
  151. <option data-group="Flow-Algorithms" value="Min-Cut">最小カット</option>
  152. <option data-group="Flow-Algorithms" value="Burn">燃やす埋める</option>
  153. <option data-group="Flow-Algorithms" value="Other">その他</option>
  154.  
  155. <option data-group="Geometry" value="Convex-Hull">凸包</option>
  156. <option data-group="Geometry" value="Declination-Sorting">偏角ソート</option>
  157. <option data-group="Geometry" value="Voronoi-Diagram">ボロノイ図</option>
  158. <option data-group="Geometry" value="Three-D">三次元</option>
  159. <option data-group="Geometry" value="Other">その他</option>
  160. </select>
  161. <br>
  162. <br>
  163.  
  164. <input id="atcoder_tag_vote" type="submit" value="Submit" class="btn btn-primary">
  165. </div>
  166. `);
  167.  
  168. function getContestName() {
  169. const contestURL = location.href;
  170. const contestArray = contestURL.split('/');
  171. return contestArray[contestArray.length - 1];
  172. }
  173.  
  174. function enableNestedChoice(parentSelect, childSelect) {
  175. $(parentSelect).change(function () {
  176. var subgroup = $(this).find('option:selected').attr('data-subgroup');
  177.  
  178. $(childSelect).find("option").each(function (index, element) {
  179. var group = $(element).attr('data-group');
  180.  
  181. if (subgroup === group) {
  182. $(element).show();
  183. } else {
  184. $(element).hide();
  185. }
  186. });
  187.  
  188. $(childSelect).val('').change();
  189. });
  190. }
  191.  
  192. $('#atcoder_tag_vote').click(function () {
  193. const parent_tag = $('#tag_parent').val();
  194. const child_tag = $('#tag_child').val();
  195. const problem_id = getContestName();
  196.  
  197. const url = `https://atcoder-tags.herokuapp.com/vote_result?problem_id=${problem_id}&tag=${parent_tag}&tag2=${child_tag}`;
  198. window.open(url);
  199. });
  200.  
  201. enableNestedChoice('#tag_parent', '#tag_child');
  202.  
  203. $('#tag_parent').val('').change();
  204. $('#tag_child').val('').change();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址