diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/30.k\345\200\215\345\214\272\351\227\264/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/30.k\345\200\215\345\214\272\351\227\264/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..87cce4a83e3106af1efddbd309cc2cdb2e9919fd --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/30.k\345\200\215\345\214\272\351\227\264/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-13d46f0dd9654171b165f27130012263", + "keywords": [ + "è“æ¡¥æ¯", + "kå€åŒºé—´" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/30.k\345\200\215\345\214\272\351\227\264/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/30.k\345\200\215\345\214\272\351\227\264/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..7c93b5c0b194e0266f84a67346c14b9cf7e1ef4c --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/30.k\345\200\215\345\214\272\351\227\264/desc.md" @@ -0,0 +1,22 @@ +#### 问题æè¿° +给定一个长度为N的数列,$A_1, A_2, … A_N,$如果其ä¸ä¸€æ®µè¿žç»çš„ååºåˆ—$A_i, A_{i+1}, … A_j(i <= j)$之和是Kçš„å€æ•°ï¼Œæˆ‘们就称这个区间[i, j]是Kå€åŒºé—´ã€‚ + +ä½ èƒ½æ±‚å‡ºæ•°åˆ—ä¸æ€»å…±æœ‰å¤šå°‘个Kå€åŒºé—´å—? +#### è¾“å…¥æ ¼å¼ +第一行包å«ä¸¤ä¸ªæ•´æ•°Nå’ŒK。(1 <= N, K <= 100000) +以下Nè¡Œæ¯è¡ŒåŒ…å«ä¸€ä¸ªæ•´æ•°$A_i$。(1 <= $A_i$ <= 100000) +#### è¾“å‡ºæ ¼å¼ +输出一个整数,代表Kå€åŒºé—´çš„数目。 +#### æ ·ä¾‹è¾“å…¥ +``` +5 2 +1 +2 +3 +4 +5 +``` +#### æ ·ä¾‹è¾“å‡º +``` +6 +``` \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/30.k\345\200\215\345\214\272\351\227\264/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/30.k\345\200\215\345\214\272\351\227\264/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..ae7993ed51184eb62b5cd94224b2bd61055cb981 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/30.k\345\200\215\345\214\272\351\227\264/solution.cpp" @@ -0,0 +1,22 @@ +#include <bits/stdc++.h> +using namespace std; + +int main() +{ + long long n, k, ans = 0, son[100000], sum[100000], b[100000] = {0}; + cin >> n >> k; + for (int i = 0; i < n; i++) + { + cin >> son[i]; + if (i != 0) + sum[i] = (sum[i - 1] + son[i]) % k; + else + sum[i] = son[i] % k; + b[sum[i]]++; + ans += b[sum[i]] - 1; + if (sum[i] == 0) + ans++; + } + cout << ans; + return 0; +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/30.k\345\200\215\345\214\272\351\227\264/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/30.k\345\200\215\345\214\272\351\227\264/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/30.k\345\200\215\345\214\272\351\227\264/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/30.k\345\200\215\345\214\272\351\227\264/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..af410ad11f0079b66502fd3380310bf5968f05e5 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/30.k\345\200\215\345\214\272\351\227\264/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "d5ad2458a40a46daaf75bbb9291e6d4b" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/30.k\345\200\215\345\214\272\351\227\264/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/30.k\345\200\215\345\214\272\351\227\264/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..3d7b572ea9d7f5736c6802d62ed8c18fcf68b163 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/30.k\345\200\215\345\214\272\351\227\264/solution.md" @@ -0,0 +1,101 @@ +# kå€åŒºé—´ + + +**问题æè¿°** + +给定一个长度为N的数列,$A_1, A_2, … A_N,$如果其ä¸ä¸€æ®µè¿žç»çš„ååºåˆ—$A_i, A_{i+1}, … A_j(i <= j)$之和是Kçš„å€æ•°ï¼Œæˆ‘们就称这个区间[i, j]是Kå€åŒºé—´ã€‚ + +ä½ èƒ½æ±‚å‡ºæ•°åˆ—ä¸æ€»å…±æœ‰å¤šå°‘个Kå€åŒºé—´å—? + +**è¾“å…¥æ ¼å¼** + +第一行包å«ä¸¤ä¸ªæ•´æ•°Nå’ŒK。(1 <= N, K <= 100000) +以下Nè¡Œæ¯è¡ŒåŒ…å«ä¸€ä¸ªæ•´æ•°$A_i$。(1 <= $A_i$ <= 100000) + +**è¾“å‡ºæ ¼å¼** + +输出一个整数,代表Kå€åŒºé—´çš„数目。 + +**æ ·ä¾‹è¾“å…¥** + +``` +5 2 +1 +2 +3 +4 +5 +``` + +**æ ·ä¾‹è¾“å‡º** + +``` +6 +``` + +以下程åºå®žçŽ°äº†è¯¥åŠŸèƒ½ï¼Œè¯·ä½ 补全空白处代ç : + +```cpp +#include <bits/stdc++.h> +using namespace std; + +int main() +{ + long long n, k, ans = 0, son[100000], sum[100000], b[100000] = {0}; + cin >> n >> k; + for (int i = 0; i < n; i++) + { + cin >> son[i]; + if (i != 0) + __________________ + else + sum[i] = son[i] % k; + b[sum[i]]++; + ans += b[sum[i]] - 1; + if (sum[i] == 0) + ans++; + } + cout << ans; + return 0; +} +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +sum[i] = (sum[i - 1] + son[i]) % k; +``` + +## 选项 + +### A + +```cpp +sum[i] = (sum[i] + son[i]) % k; +``` + +### B + +```cpp +sum[i] = (sum[i - 1] + son[i]) % k - 1; +``` + +### C + +```cpp +sum[i] = (sum[i - 1] + son[i - 1]) % k; +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/31.\347\272\270\347\211\214\344\270\211\350\247\222\345\275\242/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/31.\347\272\270\347\211\214\344\270\211\350\247\222\345\275\242/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..62949bd0273ad963cf8413e4974d6e807a4eaaf9 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/31.\347\272\270\347\211\214\344\270\211\350\247\222\345\275\242/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-aa21244fb1374002acf29ed59bee7978", + "keywords": [ + "è“æ¡¥æ¯", + "纸牌三角形" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/31.\347\272\270\347\211\214\344\270\211\350\247\222\345\275\242/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/31.\347\272\270\347\211\214\344\270\211\350\247\222\345\275\242/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..09de5a1abca1b8152c5045207a4de5d5078a5e12 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/31.\347\272\270\347\211\214\344\270\211\350\247\222\345\275\242/desc.md" @@ -0,0 +1,12 @@ +A,2,3,4,5,6,7,8,9 å…±9å¼ çº¸ç‰ŒæŽ’æˆä¸€ä¸ªæ£ä¸‰è§’形(A按1计算)。è¦æ±‚æ¯ä¸ªè¾¹çš„和相ç‰ã€‚ +下é¢å°±æ˜¯ä¸€ç§æŽ’法 +``` + A + 9 6 + 4 8 +3 7 5 2 +``` + +è¿™æ ·çš„æŽ’æ³•å¯èƒ½ä¼šæœ‰å¾ˆå¤šã€‚ + +如果考虑旋转ã€é•œåƒåŽç›¸åŒçš„ç®—åŒä¸€ç§ï¼Œä¸€å…±æœ‰å¤šå°‘ç§ä¸åŒçš„排法呢? \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/31.\347\272\270\347\211\214\344\270\211\350\247\222\345\275\242/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/31.\347\272\270\347\211\214\344\270\211\350\247\222\345\275\242/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..ed9e4cc3b7db0fb94792374ea4ea922ac82a5b9c --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/31.\347\272\270\347\211\214\344\270\211\350\247\222\345\275\242/solution.cpp" @@ -0,0 +1,20 @@ +#include <bits/stdc++.h> +#define ll long long +using namespace std; +int main() +{ + int a[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; + int res = 0; + do + { + int x1 = a[0] + a[1] + a[2] + a[3]; + int x2 = a[3] + a[4] + a[5] + a[6]; + int x3 = a[6] + a[7] + a[8] + a[0]; + if (x1 == x2 && x2 == x3) + { + res++; + } + } while (next_permutation(a, a + 9)); //全排列 + cout << res / 3 / 2 << endl; //翻转除以3,镜åƒé™¤ä»¥2 + return 0; +} diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/31.\347\272\270\347\211\214\344\270\211\350\247\222\345\275\242/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/31.\347\272\270\347\211\214\344\270\211\350\247\222\345\275\242/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/31.\347\272\270\347\211\214\344\270\211\350\247\222\345\275\242/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/31.\347\272\270\347\211\214\344\270\211\350\247\222\345\275\242/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..619a897fa6e57f2523d622187efadd00594415d0 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/31.\347\272\270\347\211\214\344\270\211\350\247\222\345\275\242/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "d0cf3c7a3d9d4f5183383e01522aaba3" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/31.\347\272\270\347\211\214\344\270\211\350\247\222\345\275\242/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/31.\347\272\270\347\211\214\344\270\211\350\247\222\345\275\242/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..da0c6a872421bbc71ba37ba39fd00234ca06a578 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/31.\347\272\270\347\211\214\344\270\211\350\247\222\345\275\242/solution.md" @@ -0,0 +1,54 @@ +# 纸牌三角形 + +A,2,3,4,5,6,7,8,9 å…±9å¼ çº¸ç‰ŒæŽ’æˆä¸€ä¸ªæ£ä¸‰è§’形(A按1计算)。è¦æ±‚æ¯ä¸ªè¾¹çš„和相ç‰ã€‚ +下é¢å°±æ˜¯ä¸€ç§æŽ’法 +``` + A + 9 6 + 4 8 +3 7 5 2 +``` + +è¿™æ ·çš„æŽ’æ³•å¯èƒ½ä¼šæœ‰å¾ˆå¤šã€‚ + +如果考虑旋转ã€é•œåƒåŽç›¸åŒçš„ç®—åŒä¸€ç§ï¼Œä¸€å…±æœ‰å¤šå°‘ç§ä¸åŒçš„排法呢? + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +144 +``` + +## 选项 + +### A + +```cpp +124 +``` + +### B + +```cpp +128 +``` + +### C + +```cpp +132 +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/32.\344\272\244\346\215\242\347\223\266\345\255\220/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/32.\344\272\244\346\215\242\347\223\266\345\255\220/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..08e262d7f20e5b95516d43daf13c7349a3eeb7c8 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/32.\344\272\244\346\215\242\347\223\266\345\255\220/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-6e714b19660c43b6a68d1b01070c3273", + "keywords": [ + "è“æ¡¥æ¯", + "交æ¢ç“¶å" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/32.\344\272\244\346\215\242\347\223\266\345\255\220/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/32.\344\272\244\346\215\242\347\223\266\345\255\220/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..df30251633bc8ba23be9592150c2500a2de4f41b --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/32.\344\272\244\346\215\242\347\223\266\345\255\220/desc.md" @@ -0,0 +1,34 @@ +有N个瓶åï¼Œç¼–å· 1 ~ N,放在架å上。 +比如有5个瓶å: +2 1 3 5 4 +è¦æ±‚æ¯æ¬¡æ‹¿èµ·2个瓶å,交æ¢å®ƒä»¬çš„ä½ç½®ã€‚ +ç»è¿‡è‹¥å¹²æ¬¡åŽï¼Œä½¿å¾—瓶åçš„åºå·ä¸ºï¼š +1 2 3 4 5 +对于这么简å•çš„情况,显然,至少需è¦äº¤æ¢2次就å¯ä»¥å¤ä½ã€‚ +如果瓶åæ›´å¤šå‘¢ï¼Ÿä½ å¯ä»¥é€šè¿‡ç¼–程æ¥è§£å†³ã€‚ + +è¾“å…¥æ ¼å¼ä¸ºä¸¤è¡Œï¼š +第一行: 一个æ£æ•´æ•°N(N<10000), 表示瓶åçš„æ•°ç›® +第二行:N个æ£æ•´æ•°ï¼Œç”¨ç©ºæ ¼åˆ†å¼€ï¼Œè¡¨ç¤ºç“¶åç›®å‰çš„排列情况。 + +输出数æ®ä¸ºä¸€è¡Œä¸€ä¸ªæ£æ•´æ•°ï¼Œè¡¨ç¤ºè‡³å°‘交æ¢å¤šå°‘次,æ‰èƒ½å®ŒæˆæŽ’åºã€‚ + +例如,输入: +``` +5 +3 1 2 5 4 +``` +程åºåº”该输出: +``` +3 +``` +å†ä¾‹å¦‚,输入: +``` +5 +5 4 3 2 1 +``` +程åºåº”该输出: +``` +2 +``` + diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/32.\344\272\244\346\215\242\347\223\266\345\255\220/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/32.\344\272\244\346\215\242\347\223\266\345\255\220/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..8445ec733d804e1118cf98b5a39a7844c391c07a --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/32.\344\272\244\346\215\242\347\223\266\345\255\220/solution.cpp" @@ -0,0 +1,27 @@ +#include <iostream> +#include <cstdio> + +using namespace std; + +const int N = 1e4 + 10; +bool st[N]; +int a[N], n, k; + +int main() +{ + cin >> n; + for (int i = 1; i <= n; i++) + cin >> a[i]; //瓶ååˆå§‹åºå· + + for (int i = 1; i <= n; i++) //从æ¯ä¸ªæ£ç¡®åºå·å‡ºå‘ + if (!st[i]) //如果没有走过 + { + k++; //环数é‡åŠ 一 + for (int j = i; !st[j]; j = a[j]) //走完这个环 æ¯æ¬¡å˜æ›´æŒ‡å‘a[j] å³ç“¶ååˆå§‹åºå·çš„第j个 + st[j] = true; + } + + cout << n - k; //环最简情况为自指 则最多有n个环 当å‰æœ‰k个环 从K达到n则需è¦n-k次 + + return 0; +} diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/32.\344\272\244\346\215\242\347\223\266\345\255\220/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/32.\344\272\244\346\215\242\347\223\266\345\255\220/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/32.\344\272\244\346\215\242\347\223\266\345\255\220/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/32.\344\272\244\346\215\242\347\223\266\345\255\220/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..e556bb133df5cf350f18ae35a0867ff09929974a --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/32.\344\272\244\346\215\242\347\223\266\345\255\220/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "eb1d232696874fe88ac354c1fd9af35f" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/32.\344\272\244\346\215\242\347\223\266\345\255\220/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/32.\344\272\244\346\215\242\347\223\266\345\255\220/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..f10e75f399dfd444dd7e9fe7a290c807592a55c4 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/32.\344\272\244\346\215\242\347\223\266\345\255\220/solution.md" @@ -0,0 +1,188 @@ +# 交æ¢ç“¶å + +有N个瓶åï¼Œç¼–å· 1 ~ N,放在架å上。 +比如有5个瓶å: +2 1 3 5 4 +è¦æ±‚æ¯æ¬¡æ‹¿èµ·2个瓶å,交æ¢å®ƒä»¬çš„ä½ç½®ã€‚ +ç»è¿‡è‹¥å¹²æ¬¡åŽï¼Œä½¿å¾—瓶åçš„åºå·ä¸ºï¼š +1 2 3 4 5 +对于这么简å•çš„情况,显然,至少需è¦äº¤æ¢2次就å¯ä»¥å¤ä½ã€‚ +如果瓶åæ›´å¤šå‘¢ï¼Ÿä½ å¯ä»¥é€šè¿‡ç¼–程æ¥è§£å†³ã€‚ + +è¾“å…¥æ ¼å¼ä¸ºä¸¤è¡Œï¼š +第一行: 一个æ£æ•´æ•°N(N<10000), 表示瓶åçš„æ•°ç›® +第二行:N个æ£æ•´æ•°ï¼Œç”¨ç©ºæ ¼åˆ†å¼€ï¼Œè¡¨ç¤ºç“¶åç›®å‰çš„排列情况。 + +输出数æ®ä¸ºä¸€è¡Œä¸€ä¸ªæ£æ•´æ•°ï¼Œè¡¨ç¤ºè‡³å°‘交æ¢å¤šå°‘次,æ‰èƒ½å®ŒæˆæŽ’åºã€‚ + +例如,输入: +``` +5 +3 1 2 5 4 +``` +程åºåº”该输出: +``` +3 +``` +å†ä¾‹å¦‚,输入: +``` +5 +5 4 3 2 1 +``` +程åºåº”该输出: +``` +2 +``` + +以下<span style="color:red">错误</span>的一项是? + + +## aop + +### before + +```cpp +#include <bits/stdc++.h> +using namespace std; +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +int search(int i); +int n; +int a[10000] = {0}; +int main(void) +{ + int index, count, i; + index = count = 0; + scanf("%d", &n); + for (i = 0; i < n; i++) + { + scanf("%d", &a[i]); + } + + for (i = 0; i < n; i++) + { + int j = search(i); + if (a[index] != a[j]) + { + int t = a[index]; + a[index] = a[j]; + a[j] = t; + count++; + index++; + } + } + + printf("%d", count); + return 0; +} + +int search(int i) +{ + int index, j, k, min; + min = 99999; + for (j = i; j < n; j++) + { + if (min > a[j]) + { + min = a[j]; + index = j; + } + } + return index; +} +``` + +## 选项 + +### A + +```cpp +int main() +{ + int n, a[10005]; + cin >> n; + for (int i = 1; i <= n; i++) + cin >> a[i]; + int num = 0; + for (int i = 1; i <= n; i++) + { + while (a[i] != i) + { + swap(a[i], a[a[i]]); + num++; + } + } + cout << num << endl; + return 0; +} +``` + +### B + +```cpp +int main() +{ + int n; + cin >> n; + int a[n + 5]; + for (int i = 0; i < n; i++) + cin >> a[i]; + int min; + int num = 0; + for (int i = 0; i < n; i++) + { + min = i; + for (int j = i + 1; j < n; j++) + { + if (a[min] > a[j]) + min = j; + } + if (min != i) + { + num++; + swap(a[i], a[min]); + } + } + cout << num << endl; + return 0; +} +``` + +### C + +```cpp +int main() +{ + int n; + int num = 0; + scanf("%d", &n); + int a[n + 5]; + for (int i = 0; i < n; i++) + { + scanf("%d", &a[i]); + } + for (int i = 1; i < n; i++) + { + if (a[i - 1] > a[i]) + { + swap(a[i - 1], a[i]); + num++; + } + } + if (num == n - 1) + { + num = n / 2; + } + cout << num << endl; + return 0; +} +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/33.\346\216\222\345\256\203\345\271\263\346\226\271\346\225\260/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/33.\346\216\222\345\256\203\345\271\263\346\226\271\346\225\260/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..d4aa7c56dbd8d2fb80857f221888feca7234171e --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/33.\346\216\222\345\256\203\345\271\263\346\226\271\346\225\260/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-ef16a8876b2446c0981c5b9cf28f278d", + "keywords": [ + "è“æ¡¥æ¯", + "排它平方数" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/33.\346\216\222\345\256\203\345\271\263\346\226\271\346\225\260/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/33.\346\216\222\345\256\203\345\271\263\346\226\271\346\225\260/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..0095416e121a3d8eb476679444cc218639821fc6 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/33.\346\216\222\345\256\203\345\271\263\346\226\271\346\225\260/desc.md" @@ -0,0 +1,7 @@ +203879 * 203879 = 41566646641 +这有什么神奇呢?仔细观察,203879 是个6ä½æ•°ï¼Œå¹¶ä¸”它的æ¯ä¸ªæ•°ä½ä¸Šçš„æ•°å—都是ä¸åŒçš„,并且它平方åŽçš„所有数ä½ä¸Šéƒ½ä¸å‡ºçŽ°ç»„æˆå®ƒè‡ªèº«çš„æ•°å—。 +å…·æœ‰è¿™æ ·ç‰¹ç‚¹çš„6ä½æ•°è¿˜æœ‰ä¸€ä¸ªï¼Œè¯·ä½ æ‰¾å‡ºå®ƒï¼ +å†å½’纳一下ç›é€‰è¦æ±‚: +1. 6ä½æ£æ•´æ•° +2. æ¯ä¸ªæ•°ä½ä¸Šçš„æ•°å—ä¸åŒ +3. 其平方数的æ¯ä¸ªæ•°ä½ä¸å«åŽŸæ•°å—的任何组æˆæ•°ä½ diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/33.\346\216\222\345\256\203\345\271\263\346\226\271\346\225\260/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/33.\346\216\222\345\256\203\345\271\263\346\226\271\346\225\260/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..9f21136dd3fde1ca674b6f6256226db7ae4c4a9e --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/33.\346\216\222\345\256\203\345\271\263\346\226\271\346\225\260/solution.cpp" @@ -0,0 +1,41 @@ +#include <bits/stdc++.h> +using namespace std; +int main() +{ + + for (long long i = 100000; i < 1000000; i++) + { + //iè¦ç”¨longlong,ä¸ç„¶ç›¸ä¹˜ä¼šæº¢å‡º + set<int> s1, s2; + int t1 = i; + while (t1) + { + s1.insert(t1 % 10); + t1 /= 10; + } + long long t2 = i * i; + if (s1.size() == 6) + { + while (t2) + { + s2.insert(t2 % 10); + t2 /= 10; + } + bool flag = 1; + for (auto it : s1) + { + if (s2.find(it) != s2.end()) + { + flag = 0; + break; + } + } + if (flag == 1) + cout << i << ' ' << i * i << endl; + } + s1.clear(); + s2.clear(); + } + + return 0; +} diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/33.\346\216\222\345\256\203\345\271\263\346\226\271\346\225\260/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/33.\346\216\222\345\256\203\345\271\263\346\226\271\346\225\260/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/33.\346\216\222\345\256\203\345\271\263\346\226\271\346\225\260/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/33.\346\216\222\345\256\203\345\271\263\346\226\271\346\225\260/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..7c91971af642045e4c2f3db5f2c84f9af15cda2c --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/33.\346\216\222\345\256\203\345\271\263\346\226\271\346\225\260/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "75807f45a1224b23adabd23547defe58" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/33.\346\216\222\345\256\203\345\271\263\346\226\271\346\225\260/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/33.\346\216\222\345\256\203\345\271\263\346\226\271\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..50f909f812f7356f1c6f191d7c9d999eb4c1ade4 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/33.\346\216\222\345\256\203\345\271\263\346\226\271\346\225\260/solution.md" @@ -0,0 +1,50 @@ +# 排它平方数 + +203879 * 203879 = 41566646641 +这有什么神奇呢?仔细观察,203879 是个6ä½æ•°ï¼Œå¹¶ä¸”它的æ¯ä¸ªæ•°ä½ä¸Šçš„æ•°å—都是ä¸åŒçš„,并且它平方åŽçš„所有数ä½ä¸Šéƒ½ä¸å‡ºçŽ°ç»„æˆå®ƒè‡ªèº«çš„æ•°å—。 +å…·æœ‰è¿™æ ·ç‰¹ç‚¹çš„6ä½æ•°è¿˜æœ‰ä¸€ä¸ªï¼Œè¯·ä½ æ‰¾å‡ºå®ƒï¼ +å†å½’纳一下ç›é€‰è¦æ±‚: +1. 6ä½æ£æ•´æ•° +2. æ¯ä¸ªæ•°ä½ä¸Šçš„æ•°å—ä¸åŒ +3. 其平方数的æ¯ä¸ªæ•°ä½ä¸å«åŽŸæ•°å—的任何组æˆæ•°ä½ + + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +639172 +``` + +## 选项 + +### A + +```cpp +629173 +``` + +### B + +```cpp +691372 +``` + +### C + +```cpp +627193 +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/34.REPEAT \347\250\213\345\272\217/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/34.REPEAT \347\250\213\345\272\217/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..471a6e0e1a8f029bcb7c426530f0eb3bd1f01fd0 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/34.REPEAT \347\250\213\345\272\217/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-31b85d9ebb8d4d249586825531c04643", + "keywords": [ + "è“æ¡¥æ¯", + "REPEAT 程åº" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/34.REPEAT \347\250\213\345\272\217/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/34.REPEAT \347\250\213\345\272\217/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..0fd1f1059cd18f5a6d09dd6be738005c538f73f0 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/34.REPEAT \347\250\213\345\272\217/desc.md" @@ -0,0 +1,1020 @@ +附件 prog.txt ä¸æ˜¯ä¸€ä¸ªç”¨æŸç§è¯è¨€å†™çš„程åºã€‚附件在本文的末尾。 + +å…¶ä¸ REPEAT k 表示一个次数为 k 的循环。循环控制的范围由缩进表达,从次行开始连ç»çš„缩进比该行多的(å‰é¢çš„空白更长的)为循环包å«çš„内容。 + + + +该片段ä¸ä»Ž A = A + 4 所在的行到 A = A + 8 所在的行都在第一行的循环两次ä¸ã€‚ + +REPEAT 6: 所在的行到 A = A + 7 所在的行都在 REPEAT 5: 循环ä¸ã€‚ + +A = A + 5 实际总共的循环次数是 2 × 5 × 6 = 60 次。 + +请问该程åºæ‰§è¡Œå®Œæ¯•ä¹‹åŽï¼ŒA 的值是多少? + + + +题目给出的 prog.txt 文件: +``` +A = 0 +REPEAT 2: + A = A + 4 + REPEAT 5: + REPEAT 6: + A = A + 5 + A = A + 7 + REPEAT 6: + A = A + 7 + REPEAT 4: + A = A + 2 + A = A + 7 + A = A + 2 + REPEAT 7: + REPEAT 4: + A = A + 8 + A = A + 7 + A = A + 4 + A = A + 5 + A = A + 8 + REPEAT 8: + A = A + 5 + REPEAT 1: + A = A + 2 + REPEAT 7: + A = A + 5 + A = A + 5 + REPEAT 2: + REPEAT 3: + A = A + 1 + A = A + 1 + REPEAT 5: + A = A + 1 + REPEAT 9: + REPEAT 6: + A = A + 5 + A = A + 1 + REPEAT 6: + A = A + 2 + A = A + 8 + A = A + 3 + REPEAT 2: + A = A + 5 + REPEAT 3: + A = A + 9 + REPEAT 1: + A = A + 4 + REPEAT 2: + A = A + 9 + REPEAT 1: + A = A + 6 + A = A + 6 + A = A + 4 + REPEAT 3: + A = A + 7 + A = A + 1 + REPEAT 2: + A = A + 3 + REPEAT 5: + A = A + 2 + A = A + 5 + A = A + 2 + A = A + 4 + A = A + 3 +REPEAT 4: + A = A + 4 + A = A + 3 + A = A + 7 + REPEAT 5: + REPEAT 4: + A = A + 5 + A = A + 7 + REPEAT 5: + A = A + 3 + REPEAT 3: + A = A + 3 + A = A + 1 + A = A + 8 + A = A + 2 + REPEAT 9: + A = A + 5 + REPEAT 1: + A = A + 5 + A = A + 2 + A = A + 8 +A = A + 6 +REPEAT 3: + REPEAT 4: + A = A + 9 + REPEAT 5: + A = A + 2 + A = A + 1 + REPEAT 9: + A = A + 9 + A = A + 2 + REPEAT 1: + A = A + 6 + A = A + 8 + REPEAT 2: + A = A + 9 + A = A + 4 + A = A + 7 + REPEAT 2: + REPEAT 7: + A = A + 3 + A = A + 5 + REPEAT 3: + A = A + 5 + A = A + 3 + A = A + 6 + A = A + 4 + REPEAT 9: + A = A + 2 + A = A + 8 + A = A + 2 + A = A + 3 + REPEAT 2: + REPEAT 8: + A = A + 5 + A = A + 1 + A = A + 6 + A = A + 1 + A = A + 2 + REPEAT 6: + REPEAT 1: + A = A + 3 + REPEAT 1: + A = A + 2 + REPEAT 4: + A = A + 7 + A = A + 1 + A = A + 8 + REPEAT 6: + A = A + 5 + REPEAT 6: + A = A + 3 + REPEAT 2: + A = A + 2 + A = A + 9 + A = A + 7 + REPEAT 9: + A = A + 8 + REPEAT 9: + A = A + 8 + A = A + 9 + A = A + 3 + A = A + 2 + REPEAT 6: + A = A + 3 + REPEAT 9: + A = A + 1 + A = A + 9 + A = A + 5 + REPEAT 2: + A = A + 4 + A = A + 9 + A = A + 8 + REPEAT 5: + A = A + 6 + A = A + 9 + A = A + 1 + REPEAT 1: + A = A + 4 + A = A + 2 + REPEAT 9: + REPEAT 3: + A = A + 4 + REPEAT 7: + A = A + 8 + A = A + 3 + REPEAT 5: + A = A + 9 + REPEAT 8: + A = A + 9 + A = A + 8 + REPEAT 4: + A = A + 7 + A = A + 7 + A = A + 3 +A = A + 5 +REPEAT 6: + A = A + 7 +REPEAT 7: + A = A + 2 + A = A + 2 +A = A + 1 +REPEAT 8: + REPEAT 1: + REPEAT 4: + A = A + 6 + A = A + 6 + A = A + 2 + REPEAT 5: + A = A + 4 + A = A + 8 + A = A + 4 + REPEAT 1: + A = A + 5 + REPEAT 7: + A = A + 8 + REPEAT 6: + A = A + 4 + A = A + 4 + A = A + 8 + REPEAT 4: + A = A + 2 + REPEAT 2: + A = A + 4 + REPEAT 2: + A = A + 3 + REPEAT 1: + A = A + 2 + A = A + 8 + REPEAT 2: + A = A + 7 + REPEAT 8: + A = A + 6 + A = A + 1 + A = A + 7 + REPEAT 8: + A = A + 2 + REPEAT 8: + REPEAT 6: + A = A + 1 + A = A + 6 + REPEAT 2: + A = A + 4 + A = A + 1 + A = A + 7 + A = A + 4 +REPEAT 4: + REPEAT 9: + A = A + 2 + REPEAT 1: + A = A + 2 + A = A + 5 +REPEAT 8: + REPEAT 6: + A = A + 3 + REPEAT 4: + A = A + 1 + A = A + 6 + A = A + 1 + REPEAT 7: + A = A + 7 + REPEAT 7: + A = A + 3 + A = A + 9 + A = A + 1 + A = A + 9 + REPEAT 3: + A = A + 5 + A = A + 5 + A = A + 6 + A = A + 2 + REPEAT 1: + A = A + 4 + REPEAT 2: + A = A + 7 + REPEAT 1: + A = A + 7 + REPEAT 4: + A = A + 7 + A = A + 2 + REPEAT 5: + A = A + 9 + A = A + 1 + A = A + 9 + A = A + 5 + A = A + 9 + REPEAT 5: + A = A + 5 + REPEAT 1: + A = A + 6 + REPEAT 2: + A = A + 3 + A = A + 2 + A = A + 6 + A = A + 8 + A = A + 8 + A = A + 7 + A = A + 5 + A = A + 5 +REPEAT 2: + A = A + 1 + A = A + 7 +A = A + 3 +REPEAT 2: + A = A + 7 +A = A + 1 +A = A + 4 +REPEAT 1: + REPEAT 7: + REPEAT 2: + A = A + 3 + A = A + 5 + A = A + 2 + A = A + 6 + A = A + 1 +A = A + 2 +A = A + 4 +A = A + 9 +REPEAT 1: + A = A + 8 +REPEAT 8: + REPEAT 4: + REPEAT 8: + A = A + 4 + REPEAT 3: + A = A + 1 + A = A + 8 + REPEAT 7: + A = A + 8 + REPEAT 7: + A = A + 7 + A = A + 7 + REPEAT 7: + A = A + 6 + REPEAT 5: + A = A + 9 + A = A + 3 + REPEAT 4: + A = A + 5 + A = A + 5 + A = A + 4 + REPEAT 9: + REPEAT 3: + A = A + 4 + A = A + 3 + A = A + 6 + REPEAT 1: + A = A + 3 + A = A + 3 + A = A + 6 + REPEAT 6: + A = A + 7 + A = A + 7 + A = A + 5 + A = A + 5 + A = A + 1 + A = A + 2 + A = A + 6 + A = A + 6 + REPEAT 9: + A = A + 6 + REPEAT 1: + REPEAT 2: + A = A + 4 + A = A + 7 + REPEAT 3: + A = A + 6 + REPEAT 5: + A = A + 3 + A = A + 6 + REPEAT 9: + A = A + 3 + A = A + 6 + REPEAT 5: + A = A + 8 + A = A + 8 + REPEAT 3: + A = A + 7 + A = A + 9 + A = A + 8 + A = A + 3 + A = A + 3 + A = A + 9 +REPEAT 6: + A = A + 9 +A = A + 1 +REPEAT 4: + REPEAT 1: + A = A + 7 + REPEAT 9: + A = A + 2 + A = A + 9 + A = A + 1 +A = A + 2 +A = A + 8 +A = A + 7 +A = A + 9 +A = A + 6 +REPEAT 4: + REPEAT 2: + A = A + 3 + REPEAT 3: + A = A + 4 + A = A + 4 +REPEAT 6: + A = A + 6 +A = A + 1 +A = A + 5 +A = A + 8 +REPEAT 2: + A = A + 6 + REPEAT 1: + REPEAT 2: + A = A + 2 + REPEAT 3: + A = A + 1 + REPEAT 1: + A = A + 8 + A = A + 7 + A = A + 4 + A = A + 2 + A = A + 8 + A = A + 4 + REPEAT 5: + REPEAT 6: + A = A + 8 + REPEAT 9: + A = A + 5 + A = A + 5 + REPEAT 5: + A = A + 5 + REPEAT 3: + REPEAT 5: + A = A + 4 + REPEAT 4: + A = A + 6 + A = A + 3 + REPEAT 7: + A = A + 3 + A = A + 3 + A = A + 1 + A = A + 7 + A = A + 7 + A = A + 6 + A = A + 5 + A = A + 5 + A = A + 6 + REPEAT 1: + A = A + 9 + A = A + 3 + REPEAT 1: + REPEAT 1: + A = A + 1 + REPEAT 8: + A = A + 5 + REPEAT 8: + A = A + 6 + REPEAT 4: + A = A + 9 + A = A + 4 + REPEAT 2: + A = A + 3 + A = A + 7 + REPEAT 5: + A = A + 7 + A = A + 5 + A = A + 8 + A = A + 7 + A = A + 8 + A = A + 5 + REPEAT 2: + A = A + 5 + A = A + 7 + A = A + 8 +A = A + 5 +A = A + 9 +REPEAT 2: + REPEAT 6: + A = A + 9 + A = A + 1 + A = A + 8 + A = A + 7 + A = A + 1 + A = A + 5 + REPEAT 3: + A = A + 3 + A = A + 9 + A = A + 7 + REPEAT 3: + A = A + 9 + A = A + 1 + REPEAT 6: + A = A + 1 + REPEAT 9: + REPEAT 7: + A = A + 3 + REPEAT 5: + A = A + 5 + A = A + 8 + A = A + 8 + A = A + 1 + A = A + 2 + REPEAT 4: + A = A + 6 + REPEAT 3: + A = A + 3 + A = A + 7 + REPEAT 8: + REPEAT 1: + A = A + 7 + A = A + 8 + A = A + 3 + A = A + 1 +A = A + 2 +A = A + 4 +A = A + 7 +REPEAT 1: + REPEAT 1: + REPEAT 1: + A = A + 4 + A = A + 6 + REPEAT 1: + A = A + 3 + A = A + 9 + A = A + 6 + REPEAT 9: + A = A + 1 + A = A + 6 + REPEAT 5: + A = A + 3 + A = A + 9 + A = A + 5 + A = A + 5 + A = A + 7 + A = A + 2 + REPEAT 2: + A = A + 7 + A = A + 7 + REPEAT 7: + REPEAT 4: + A = A + 6 + A = A + 8 + REPEAT 6: + A = A + 6 + REPEAT 2: + A = A + 1 + A = A + 7 + A = A + 6 + A = A + 7 + REPEAT 4: + REPEAT 7: + A = A + 1 + REPEAT 2: + A = A + 2 + A = A + 5 + A = A + 8 + A = A + 2 +A = A + 1 +A = A + 4 +REPEAT 8: + A = A + 5 +A = A + 6 +REPEAT 7: + REPEAT 6: + REPEAT 9: + A = A + 7 + A = A + 8 + REPEAT 4: + A = A + 6 + A = A + 4 + A = A + 3 + A = A + 6 + REPEAT 9: + A = A + 3 + REPEAT 9: + A = A + 2 + A = A + 7 + A = A + 5 + A = A + 2 +REPEAT 7: + REPEAT 8: + REPEAT 6: + A = A + 4 + A = A + 9 + A = A + 5 + A = A + 3 + A = A + 9 + REPEAT 4: + REPEAT 1: + A = A + 6 + A = A + 8 + REPEAT 1: + A = A + 6 + A = A + 4 + A = A + 6 + REPEAT 3: + A = A + 7 + REPEAT 3: + A = A + 4 + A = A + 4 + A = A + 2 + A = A + 3 + A = A + 7 + REPEAT 5: + A = A + 6 + A = A + 5 + REPEAT 1: + REPEAT 8: + A = A + 5 + REPEAT 3: + A = A + 6 + REPEAT 9: + A = A + 4 + A = A + 3 + REPEAT 6: + REPEAT 2: + A = A + 1 + A = A + 5 + A = A + 2 +A = A + 2 +A = A + 7 +REPEAT 4: + A = A + 7 +A = A + 9 +A = A + 2 +REPEAT 8: + A = A + 9 + REPEAT 9: + REPEAT 2: + A = A + 3 + A = A + 2 + A = A + 1 + A = A + 5 + REPEAT 9: + A = A + 1 + A = A + 3 + A = A + 9 + REPEAT 7: + A = A + 2 + REPEAT 5: + A = A + 9 + A = A + 3 + REPEAT 2: + A = A + 4 + REPEAT 8: + A = A + 9 + REPEAT 5: + A = A + 5 + A = A + 4 + A = A + 2 + A = A + 4 + REPEAT 6: + A = A + 2 + REPEAT 5: + A = A + 7 + A = A + 7 + A = A + 8 + A = A + 3 + REPEAT 8: + A = A + 2 + A = A + 5 + REPEAT 1: + A = A + 8 + A = A + 5 + A = A + 1 + A = A + 1 + A = A + 5 + REPEAT 2: + A = A + 6 + REPEAT 6: + A = A + 9 + A = A + 2 + A = A + 5 + REPEAT 4: + A = A + 7 + A = A + 1 + REPEAT 6: + A = A + 8 + A = A + 4 + REPEAT 3: + REPEAT 2: + A = A + 1 + A = A + 5 + REPEAT 2: + A = A + 7 + REPEAT 9: + A = A + 6 + A = A + 8 + A = A + 9 + A = A + 5 + REPEAT 9: + REPEAT 3: + A = A + 7 + A = A + 7 + A = A + 9 + A = A + 7 + REPEAT 5: + A = A + 7 + A = A + 2 + A = A + 1 + A = A + 8 + A = A + 3 + A = A + 5 +A = A + 1 +REPEAT 8: + A = A + 4 +A = A + 2 +A = A + 2 +A = A + 8 +REPEAT 4: + REPEAT 4: + A = A + 8 + REPEAT 7: + A = A + 5 + A = A + 2 + REPEAT 2: + A = A + 6 + REPEAT 4: + A = A + 8 + A = A + 6 + A = A + 1 + A = A + 3 +A = A + 2 +A = A + 7 +A = A + 4 +REPEAT 8: + A = A + 2 + A = A + 4 +REPEAT 5: + REPEAT 3: + REPEAT 6: + A = A + 8 + A = A + 1 + A = A + 6 + A = A + 5 + A = A + 9 +REPEAT 8: + A = A + 7 +REPEAT 6: + A = A + 4 +A = A + 5 +REPEAT 3: + A = A + 1 + REPEAT 1: + REPEAT 5: + A = A + 6 + A = A + 2 + REPEAT 9: + REPEAT 5: + A = A + 9 + A = A + 3 + REPEAT 9: + A = A + 9 + A = A + 8 + REPEAT 8: + REPEAT 5: + A = A + 9 + A = A + 4 + REPEAT 9: + A = A + 3 + A = A + 4 + A = A + 5 +REPEAT 9: + REPEAT 7: + A = A + 5 + REPEAT 3: + A = A + 7 + REPEAT 9: + REPEAT 6: + A = A + 4 + A = A + 6 + REPEAT 5: + REPEAT 6: + A = A + 5 + A = A + 3 + A = A + 3 + A = A + 3 + A = A + 5 + REPEAT 7: + A = A + 5 + REPEAT 2: + A = A + 5 + A = A + 6 + REPEAT 2: + A = A + 2 + A = A + 5 + A = A + 3 +A = A + 5 +A = A + 5 +REPEAT 4: + A = A + 2 + A = A + 1 + REPEAT 9: + A = A + 9 + A = A + 5 + A = A + 6 + A = A + 2 + A = A + 2 + A = A + 5 + REPEAT 9: + A = A + 5 + A = A + 4 + REPEAT 4: + REPEAT 4: + A = A + 1 + A = A + 2 + REPEAT 6: + A = A + 9 + A = A + 3 + REPEAT 2: + A = A + 5 + A = A + 1 + A = A + 1 + A = A + 3 + A = A + 8 + REPEAT 7: + A = A + 4 + REPEAT 6: + A = A + 9 + REPEAT 5: + A = A + 9 + A = A + 8 + A = A + 3 + A = A + 9 + A = A + 4 + A = A + 6 +REPEAT 7: + A = A + 9 +REPEAT 9: + A = A + 4 + A = A + 9 + A = A + 1 + A = A + 3 + REPEAT 5: + REPEAT 1: + A = A + 4 + A = A + 4 + REPEAT 8: + A = A + 9 + A = A + 6 + A = A + 2 + REPEAT 3: + A = A + 4 + A = A + 4 + REPEAT 3: + A = A + 5 + A = A + 2 + A = A + 8 + A = A + 3 + A = A + 6 + A = A + 4 + A = A + 9 + A = A + 1 + A = A + 9 + A = A + 5 + A = A + 3 + REPEAT 3: + A = A + 2 + A = A + 5 + A = A + 8 + A = A + 2 + A = A + 5 + REPEAT 8: + REPEAT 2: + A = A + 6 + A = A + 7 + A = A + 6 + A = A + 9 + A = A + 2 +REPEAT 2: + A = A + 3 + REPEAT 8: + A = A + 7 + A = A + 2 + A = A + 1 + A = A + 4 + A = A + 1 + A = A + 5 + A = A + 2 + A = A + 1 + REPEAT 1: + A = A + 1 + REPEAT 6: + A = A + 4 + A = A + 3 + A = A + 3 + REPEAT 5: + A = A + 3 + REPEAT 6: + REPEAT 1: + A = A + 5 + A = A + 7 + A = A + 7 + A = A + 7 + REPEAT 5: + A = A + 9 + A = A + 7 + REPEAT 5: + A = A + 9 + A = A + 1 + A = A + 9 + A = A + 8 + REPEAT 1: + A = A + 2 + REPEAT 5: + A = A + 8 + REPEAT 3: + A = A + 2 + A = A + 9 + A = A + 6 + A = A + 3 + REPEAT 5: + REPEAT 6: + A = A + 5 + A = A + 5 + REPEAT 4: + A = A + 5 + A = A + 4 + REPEAT 8: + A = A + 9 + A = A + 1 + REPEAT 8: + A = A + 8 + A = A + 1 + A = A + 4 + REPEAT 6: + A = A + 6 + REPEAT 2: + A = A + 3 + A = A + 9 + A = A + 6 + A = A + 9 + REPEAT 1: + A = A + 4 + REPEAT 3: + A = A + 3 + A = A + 4 + A = A + 2 + A = A + 8 + REPEAT 2: + A = A + 4 + A = A + 1 + REPEAT 9: + A = A + 2 + A = A + 9 + A = A + 7 +REPEAT 7: + REPEAT 7: + REPEAT 5: + A = A + 7 + REPEAT 5: + A = A + 1 + A = A + 1 + REPEAT 5: + A = A + 6 + REPEAT 1: + A = A + 4 + REPEAT 9: + A = A + 4 + A = A + 1 + REPEAT 6: + A = A + 8 + A = A + 5 + REPEAT 1: + A = A + 4 + REPEAT 5: + A = A + 8 + A = A + 7 + A = A + 2 + REPEAT 3: + A = A + 3 + REPEAT 8: + REPEAT 8: + A = A + 4 + A = A + 7 + REPEAT 5: + A = A + 1 + REPEAT 8: + A = A + 7 + A = A + 8 + A = A + 4 + A = A + 7 + A = A + 6 + A = A + 9 + A = A + 5 +REPEAT 3: + A = A + 5 + REPEAT 9: + A = A + 1 + A = A + 7 +REPEAT 1: + A = A + 8 +A = A + 4 +REPEAT 8: + REPEAT 7: + A = A + 2 + REPEAT 4: + A = A + 6 + A = A + 6 + REPEAT 1: + A = A + 7 + A = A + 1 +REPEAT 9: + REPEAT 5: + A = A + 6 + A = A + 5 + REPEAT 7: + A = A + 3 + A = A + 6 + A = A + 8 + REPEAT 2: + A = A + 7 + A = A + 1 + A = A + 9 + REPEAT 3: + REPEAT 3: + A = A + 5 +``` \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/34.REPEAT \347\250\213\345\272\217/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/34.REPEAT \347\250\213\345\272\217/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..73900e9d91eda9f48543235adf3852e226923a1b --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/34.REPEAT \347\250\213\345\272\217/solution.cpp" @@ -0,0 +1,56 @@ +#include <bits/stdc++.h> +using namespace std; +const int N = 1e3 + 10; +char mp[N][N]; +int s[N], t[N], top; +int main() +{ + FILE *fp; + fp = fopen("prog.txt", "r"); ///文件读æ“作 + char ch; + int tot = 0; + int i = 0; + while ((ch = fgetc(fp)) != EOF) ///一个å—符一个å—符的读入 + { + + if (ch == '\n') + { + mp[tot][i] = '\0'; + tot++; + i = 0; + continue; + } + mp[tot][i++] = ch; + } + /* + for(int i=0;i<tot;i++) + printf("%s\n",mp[i]);*/ + ///å°†txtä¸çš„æ•°æ®å·²ç»å…¨éƒ¨ä¿å˜åœ¨äº†mpæ•°ç»„ä¸ + top = 0; + int p, w = 1, sum = 0; + s[top] = -1, t[top] = -1; ///防æ¢æ ˆç©ºçš„æ—¶å€™è¿›è¡Œå‡ºæ ˆæ“作 + for (int i = 0; i < tot; i++) + { + int len = strlen(mp[i]); + p = 0; + while (mp[i][p] == ' ') ///统计缩进 + p++; + while (s[top] >= p) ///开始新的循环,上一层的循环ä¸åŒ…括 + w /= t[top--]; + if (mp[i][len - 1] == ':') ///当å‰æ˜¯å¾ªçŽ¯è¯å¥ + { + int num = mp[i][len - 2] - '0'; + top++; + w *= num; ///ç´¯è®¡å¾ªçŽ¯äº†å‡ æ¬¡ + s[top] = p, t[top] = num; ///第top层循环è¯å¥çš„缩进é‡å’Œå¾ªçŽ¯æ¬¡æ•° + } + else + { + int num = mp[i][len - 1] - '0'; + sum += w * num; + } + } + printf("%d\n", sum); + + return 0; +} diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/34.REPEAT \347\250\213\345\272\217/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/34.REPEAT \347\250\213\345\272\217/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/34.REPEAT \347\250\213\345\272\217/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/34.REPEAT \347\250\213\345\272\217/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..0e01f4bcd3fe0509a5d1c60a213b1de095863623 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/34.REPEAT \347\250\213\345\272\217/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "38a8afcec1fc4054b7f35f8577fb6724" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/34.REPEAT \347\250\213\345\272\217/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/34.REPEAT \347\250\213\345\272\217/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..9bb2d9a183e5554ff2b5bc146aca281d01b5ba37 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/34.REPEAT \347\250\213\345\272\217/solution.md" @@ -0,0 +1,1062 @@ +# REPEAT ç¨‹åº + +附件 prog.txt ä¸æ˜¯ä¸€ä¸ªç”¨æŸç§è¯è¨€å†™çš„程åºã€‚附件在本文的末尾。 + +å…¶ä¸ REPEAT k 表示一个次数为 k 的循环。循环控制的范围由缩进表达,从次行开始连ç»çš„缩进比该行多的(å‰é¢çš„空白更长的)为循环包å«çš„内容。 + + + +该片段ä¸ä»Ž A = A + 4 所在的行到 A = A + 8 所在的行都在第一行的循环两次ä¸ã€‚ + +REPEAT 6: 所在的行到 A = A + 7 所在的行都在 REPEAT 5: 循环ä¸ã€‚ + +A = A + 5 实际总共的循环次数是 2 × 5 × 6 = 60 次。 + +请问该程åºæ‰§è¡Œå®Œæ¯•ä¹‹åŽï¼ŒA 的值是多少? + + + +题目给出的 prog.txt 文件: +``` +A = 0 +REPEAT 2: + A = A + 4 + REPEAT 5: + REPEAT 6: + A = A + 5 + A = A + 7 + REPEAT 6: + A = A + 7 + REPEAT 4: + A = A + 2 + A = A + 7 + A = A + 2 + REPEAT 7: + REPEAT 4: + A = A + 8 + A = A + 7 + A = A + 4 + A = A + 5 + A = A + 8 + REPEAT 8: + A = A + 5 + REPEAT 1: + A = A + 2 + REPEAT 7: + A = A + 5 + A = A + 5 + REPEAT 2: + REPEAT 3: + A = A + 1 + A = A + 1 + REPEAT 5: + A = A + 1 + REPEAT 9: + REPEAT 6: + A = A + 5 + A = A + 1 + REPEAT 6: + A = A + 2 + A = A + 8 + A = A + 3 + REPEAT 2: + A = A + 5 + REPEAT 3: + A = A + 9 + REPEAT 1: + A = A + 4 + REPEAT 2: + A = A + 9 + REPEAT 1: + A = A + 6 + A = A + 6 + A = A + 4 + REPEAT 3: + A = A + 7 + A = A + 1 + REPEAT 2: + A = A + 3 + REPEAT 5: + A = A + 2 + A = A + 5 + A = A + 2 + A = A + 4 + A = A + 3 +REPEAT 4: + A = A + 4 + A = A + 3 + A = A + 7 + REPEAT 5: + REPEAT 4: + A = A + 5 + A = A + 7 + REPEAT 5: + A = A + 3 + REPEAT 3: + A = A + 3 + A = A + 1 + A = A + 8 + A = A + 2 + REPEAT 9: + A = A + 5 + REPEAT 1: + A = A + 5 + A = A + 2 + A = A + 8 +A = A + 6 +REPEAT 3: + REPEAT 4: + A = A + 9 + REPEAT 5: + A = A + 2 + A = A + 1 + REPEAT 9: + A = A + 9 + A = A + 2 + REPEAT 1: + A = A + 6 + A = A + 8 + REPEAT 2: + A = A + 9 + A = A + 4 + A = A + 7 + REPEAT 2: + REPEAT 7: + A = A + 3 + A = A + 5 + REPEAT 3: + A = A + 5 + A = A + 3 + A = A + 6 + A = A + 4 + REPEAT 9: + A = A + 2 + A = A + 8 + A = A + 2 + A = A + 3 + REPEAT 2: + REPEAT 8: + A = A + 5 + A = A + 1 + A = A + 6 + A = A + 1 + A = A + 2 + REPEAT 6: + REPEAT 1: + A = A + 3 + REPEAT 1: + A = A + 2 + REPEAT 4: + A = A + 7 + A = A + 1 + A = A + 8 + REPEAT 6: + A = A + 5 + REPEAT 6: + A = A + 3 + REPEAT 2: + A = A + 2 + A = A + 9 + A = A + 7 + REPEAT 9: + A = A + 8 + REPEAT 9: + A = A + 8 + A = A + 9 + A = A + 3 + A = A + 2 + REPEAT 6: + A = A + 3 + REPEAT 9: + A = A + 1 + A = A + 9 + A = A + 5 + REPEAT 2: + A = A + 4 + A = A + 9 + A = A + 8 + REPEAT 5: + A = A + 6 + A = A + 9 + A = A + 1 + REPEAT 1: + A = A + 4 + A = A + 2 + REPEAT 9: + REPEAT 3: + A = A + 4 + REPEAT 7: + A = A + 8 + A = A + 3 + REPEAT 5: + A = A + 9 + REPEAT 8: + A = A + 9 + A = A + 8 + REPEAT 4: + A = A + 7 + A = A + 7 + A = A + 3 +A = A + 5 +REPEAT 6: + A = A + 7 +REPEAT 7: + A = A + 2 + A = A + 2 +A = A + 1 +REPEAT 8: + REPEAT 1: + REPEAT 4: + A = A + 6 + A = A + 6 + A = A + 2 + REPEAT 5: + A = A + 4 + A = A + 8 + A = A + 4 + REPEAT 1: + A = A + 5 + REPEAT 7: + A = A + 8 + REPEAT 6: + A = A + 4 + A = A + 4 + A = A + 8 + REPEAT 4: + A = A + 2 + REPEAT 2: + A = A + 4 + REPEAT 2: + A = A + 3 + REPEAT 1: + A = A + 2 + A = A + 8 + REPEAT 2: + A = A + 7 + REPEAT 8: + A = A + 6 + A = A + 1 + A = A + 7 + REPEAT 8: + A = A + 2 + REPEAT 8: + REPEAT 6: + A = A + 1 + A = A + 6 + REPEAT 2: + A = A + 4 + A = A + 1 + A = A + 7 + A = A + 4 +REPEAT 4: + REPEAT 9: + A = A + 2 + REPEAT 1: + A = A + 2 + A = A + 5 +REPEAT 8: + REPEAT 6: + A = A + 3 + REPEAT 4: + A = A + 1 + A = A + 6 + A = A + 1 + REPEAT 7: + A = A + 7 + REPEAT 7: + A = A + 3 + A = A + 9 + A = A + 1 + A = A + 9 + REPEAT 3: + A = A + 5 + A = A + 5 + A = A + 6 + A = A + 2 + REPEAT 1: + A = A + 4 + REPEAT 2: + A = A + 7 + REPEAT 1: + A = A + 7 + REPEAT 4: + A = A + 7 + A = A + 2 + REPEAT 5: + A = A + 9 + A = A + 1 + A = A + 9 + A = A + 5 + A = A + 9 + REPEAT 5: + A = A + 5 + REPEAT 1: + A = A + 6 + REPEAT 2: + A = A + 3 + A = A + 2 + A = A + 6 + A = A + 8 + A = A + 8 + A = A + 7 + A = A + 5 + A = A + 5 +REPEAT 2: + A = A + 1 + A = A + 7 +A = A + 3 +REPEAT 2: + A = A + 7 +A = A + 1 +A = A + 4 +REPEAT 1: + REPEAT 7: + REPEAT 2: + A = A + 3 + A = A + 5 + A = A + 2 + A = A + 6 + A = A + 1 +A = A + 2 +A = A + 4 +A = A + 9 +REPEAT 1: + A = A + 8 +REPEAT 8: + REPEAT 4: + REPEAT 8: + A = A + 4 + REPEAT 3: + A = A + 1 + A = A + 8 + REPEAT 7: + A = A + 8 + REPEAT 7: + A = A + 7 + A = A + 7 + REPEAT 7: + A = A + 6 + REPEAT 5: + A = A + 9 + A = A + 3 + REPEAT 4: + A = A + 5 + A = A + 5 + A = A + 4 + REPEAT 9: + REPEAT 3: + A = A + 4 + A = A + 3 + A = A + 6 + REPEAT 1: + A = A + 3 + A = A + 3 + A = A + 6 + REPEAT 6: + A = A + 7 + A = A + 7 + A = A + 5 + A = A + 5 + A = A + 1 + A = A + 2 + A = A + 6 + A = A + 6 + REPEAT 9: + A = A + 6 + REPEAT 1: + REPEAT 2: + A = A + 4 + A = A + 7 + REPEAT 3: + A = A + 6 + REPEAT 5: + A = A + 3 + A = A + 6 + REPEAT 9: + A = A + 3 + A = A + 6 + REPEAT 5: + A = A + 8 + A = A + 8 + REPEAT 3: + A = A + 7 + A = A + 9 + A = A + 8 + A = A + 3 + A = A + 3 + A = A + 9 +REPEAT 6: + A = A + 9 +A = A + 1 +REPEAT 4: + REPEAT 1: + A = A + 7 + REPEAT 9: + A = A + 2 + A = A + 9 + A = A + 1 +A = A + 2 +A = A + 8 +A = A + 7 +A = A + 9 +A = A + 6 +REPEAT 4: + REPEAT 2: + A = A + 3 + REPEAT 3: + A = A + 4 + A = A + 4 +REPEAT 6: + A = A + 6 +A = A + 1 +A = A + 5 +A = A + 8 +REPEAT 2: + A = A + 6 + REPEAT 1: + REPEAT 2: + A = A + 2 + REPEAT 3: + A = A + 1 + REPEAT 1: + A = A + 8 + A = A + 7 + A = A + 4 + A = A + 2 + A = A + 8 + A = A + 4 + REPEAT 5: + REPEAT 6: + A = A + 8 + REPEAT 9: + A = A + 5 + A = A + 5 + REPEAT 5: + A = A + 5 + REPEAT 3: + REPEAT 5: + A = A + 4 + REPEAT 4: + A = A + 6 + A = A + 3 + REPEAT 7: + A = A + 3 + A = A + 3 + A = A + 1 + A = A + 7 + A = A + 7 + A = A + 6 + A = A + 5 + A = A + 5 + A = A + 6 + REPEAT 1: + A = A + 9 + A = A + 3 + REPEAT 1: + REPEAT 1: + A = A + 1 + REPEAT 8: + A = A + 5 + REPEAT 8: + A = A + 6 + REPEAT 4: + A = A + 9 + A = A + 4 + REPEAT 2: + A = A + 3 + A = A + 7 + REPEAT 5: + A = A + 7 + A = A + 5 + A = A + 8 + A = A + 7 + A = A + 8 + A = A + 5 + REPEAT 2: + A = A + 5 + A = A + 7 + A = A + 8 +A = A + 5 +A = A + 9 +REPEAT 2: + REPEAT 6: + A = A + 9 + A = A + 1 + A = A + 8 + A = A + 7 + A = A + 1 + A = A + 5 + REPEAT 3: + A = A + 3 + A = A + 9 + A = A + 7 + REPEAT 3: + A = A + 9 + A = A + 1 + REPEAT 6: + A = A + 1 + REPEAT 9: + REPEAT 7: + A = A + 3 + REPEAT 5: + A = A + 5 + A = A + 8 + A = A + 8 + A = A + 1 + A = A + 2 + REPEAT 4: + A = A + 6 + REPEAT 3: + A = A + 3 + A = A + 7 + REPEAT 8: + REPEAT 1: + A = A + 7 + A = A + 8 + A = A + 3 + A = A + 1 +A = A + 2 +A = A + 4 +A = A + 7 +REPEAT 1: + REPEAT 1: + REPEAT 1: + A = A + 4 + A = A + 6 + REPEAT 1: + A = A + 3 + A = A + 9 + A = A + 6 + REPEAT 9: + A = A + 1 + A = A + 6 + REPEAT 5: + A = A + 3 + A = A + 9 + A = A + 5 + A = A + 5 + A = A + 7 + A = A + 2 + REPEAT 2: + A = A + 7 + A = A + 7 + REPEAT 7: + REPEAT 4: + A = A + 6 + A = A + 8 + REPEAT 6: + A = A + 6 + REPEAT 2: + A = A + 1 + A = A + 7 + A = A + 6 + A = A + 7 + REPEAT 4: + REPEAT 7: + A = A + 1 + REPEAT 2: + A = A + 2 + A = A + 5 + A = A + 8 + A = A + 2 +A = A + 1 +A = A + 4 +REPEAT 8: + A = A + 5 +A = A + 6 +REPEAT 7: + REPEAT 6: + REPEAT 9: + A = A + 7 + A = A + 8 + REPEAT 4: + A = A + 6 + A = A + 4 + A = A + 3 + A = A + 6 + REPEAT 9: + A = A + 3 + REPEAT 9: + A = A + 2 + A = A + 7 + A = A + 5 + A = A + 2 +REPEAT 7: + REPEAT 8: + REPEAT 6: + A = A + 4 + A = A + 9 + A = A + 5 + A = A + 3 + A = A + 9 + REPEAT 4: + REPEAT 1: + A = A + 6 + A = A + 8 + REPEAT 1: + A = A + 6 + A = A + 4 + A = A + 6 + REPEAT 3: + A = A + 7 + REPEAT 3: + A = A + 4 + A = A + 4 + A = A + 2 + A = A + 3 + A = A + 7 + REPEAT 5: + A = A + 6 + A = A + 5 + REPEAT 1: + REPEAT 8: + A = A + 5 + REPEAT 3: + A = A + 6 + REPEAT 9: + A = A + 4 + A = A + 3 + REPEAT 6: + REPEAT 2: + A = A + 1 + A = A + 5 + A = A + 2 +A = A + 2 +A = A + 7 +REPEAT 4: + A = A + 7 +A = A + 9 +A = A + 2 +REPEAT 8: + A = A + 9 + REPEAT 9: + REPEAT 2: + A = A + 3 + A = A + 2 + A = A + 1 + A = A + 5 + REPEAT 9: + A = A + 1 + A = A + 3 + A = A + 9 + REPEAT 7: + A = A + 2 + REPEAT 5: + A = A + 9 + A = A + 3 + REPEAT 2: + A = A + 4 + REPEAT 8: + A = A + 9 + REPEAT 5: + A = A + 5 + A = A + 4 + A = A + 2 + A = A + 4 + REPEAT 6: + A = A + 2 + REPEAT 5: + A = A + 7 + A = A + 7 + A = A + 8 + A = A + 3 + REPEAT 8: + A = A + 2 + A = A + 5 + REPEAT 1: + A = A + 8 + A = A + 5 + A = A + 1 + A = A + 1 + A = A + 5 + REPEAT 2: + A = A + 6 + REPEAT 6: + A = A + 9 + A = A + 2 + A = A + 5 + REPEAT 4: + A = A + 7 + A = A + 1 + REPEAT 6: + A = A + 8 + A = A + 4 + REPEAT 3: + REPEAT 2: + A = A + 1 + A = A + 5 + REPEAT 2: + A = A + 7 + REPEAT 9: + A = A + 6 + A = A + 8 + A = A + 9 + A = A + 5 + REPEAT 9: + REPEAT 3: + A = A + 7 + A = A + 7 + A = A + 9 + A = A + 7 + REPEAT 5: + A = A + 7 + A = A + 2 + A = A + 1 + A = A + 8 + A = A + 3 + A = A + 5 +A = A + 1 +REPEAT 8: + A = A + 4 +A = A + 2 +A = A + 2 +A = A + 8 +REPEAT 4: + REPEAT 4: + A = A + 8 + REPEAT 7: + A = A + 5 + A = A + 2 + REPEAT 2: + A = A + 6 + REPEAT 4: + A = A + 8 + A = A + 6 + A = A + 1 + A = A + 3 +A = A + 2 +A = A + 7 +A = A + 4 +REPEAT 8: + A = A + 2 + A = A + 4 +REPEAT 5: + REPEAT 3: + REPEAT 6: + A = A + 8 + A = A + 1 + A = A + 6 + A = A + 5 + A = A + 9 +REPEAT 8: + A = A + 7 +REPEAT 6: + A = A + 4 +A = A + 5 +REPEAT 3: + A = A + 1 + REPEAT 1: + REPEAT 5: + A = A + 6 + A = A + 2 + REPEAT 9: + REPEAT 5: + A = A + 9 + A = A + 3 + REPEAT 9: + A = A + 9 + A = A + 8 + REPEAT 8: + REPEAT 5: + A = A + 9 + A = A + 4 + REPEAT 9: + A = A + 3 + A = A + 4 + A = A + 5 +REPEAT 9: + REPEAT 7: + A = A + 5 + REPEAT 3: + A = A + 7 + REPEAT 9: + REPEAT 6: + A = A + 4 + A = A + 6 + REPEAT 5: + REPEAT 6: + A = A + 5 + A = A + 3 + A = A + 3 + A = A + 3 + A = A + 5 + REPEAT 7: + A = A + 5 + REPEAT 2: + A = A + 5 + A = A + 6 + REPEAT 2: + A = A + 2 + A = A + 5 + A = A + 3 +A = A + 5 +A = A + 5 +REPEAT 4: + A = A + 2 + A = A + 1 + REPEAT 9: + A = A + 9 + A = A + 5 + A = A + 6 + A = A + 2 + A = A + 2 + A = A + 5 + REPEAT 9: + A = A + 5 + A = A + 4 + REPEAT 4: + REPEAT 4: + A = A + 1 + A = A + 2 + REPEAT 6: + A = A + 9 + A = A + 3 + REPEAT 2: + A = A + 5 + A = A + 1 + A = A + 1 + A = A + 3 + A = A + 8 + REPEAT 7: + A = A + 4 + REPEAT 6: + A = A + 9 + REPEAT 5: + A = A + 9 + A = A + 8 + A = A + 3 + A = A + 9 + A = A + 4 + A = A + 6 +REPEAT 7: + A = A + 9 +REPEAT 9: + A = A + 4 + A = A + 9 + A = A + 1 + A = A + 3 + REPEAT 5: + REPEAT 1: + A = A + 4 + A = A + 4 + REPEAT 8: + A = A + 9 + A = A + 6 + A = A + 2 + REPEAT 3: + A = A + 4 + A = A + 4 + REPEAT 3: + A = A + 5 + A = A + 2 + A = A + 8 + A = A + 3 + A = A + 6 + A = A + 4 + A = A + 9 + A = A + 1 + A = A + 9 + A = A + 5 + A = A + 3 + REPEAT 3: + A = A + 2 + A = A + 5 + A = A + 8 + A = A + 2 + A = A + 5 + REPEAT 8: + REPEAT 2: + A = A + 6 + A = A + 7 + A = A + 6 + A = A + 9 + A = A + 2 +REPEAT 2: + A = A + 3 + REPEAT 8: + A = A + 7 + A = A + 2 + A = A + 1 + A = A + 4 + A = A + 1 + A = A + 5 + A = A + 2 + A = A + 1 + REPEAT 1: + A = A + 1 + REPEAT 6: + A = A + 4 + A = A + 3 + A = A + 3 + REPEAT 5: + A = A + 3 + REPEAT 6: + REPEAT 1: + A = A + 5 + A = A + 7 + A = A + 7 + A = A + 7 + REPEAT 5: + A = A + 9 + A = A + 7 + REPEAT 5: + A = A + 9 + A = A + 1 + A = A + 9 + A = A + 8 + REPEAT 1: + A = A + 2 + REPEAT 5: + A = A + 8 + REPEAT 3: + A = A + 2 + A = A + 9 + A = A + 6 + A = A + 3 + REPEAT 5: + REPEAT 6: + A = A + 5 + A = A + 5 + REPEAT 4: + A = A + 5 + A = A + 4 + REPEAT 8: + A = A + 9 + A = A + 1 + REPEAT 8: + A = A + 8 + A = A + 1 + A = A + 4 + REPEAT 6: + A = A + 6 + REPEAT 2: + A = A + 3 + A = A + 9 + A = A + 6 + A = A + 9 + REPEAT 1: + A = A + 4 + REPEAT 3: + A = A + 3 + A = A + 4 + A = A + 2 + A = A + 8 + REPEAT 2: + A = A + 4 + A = A + 1 + REPEAT 9: + A = A + 2 + A = A + 9 + A = A + 7 +REPEAT 7: + REPEAT 7: + REPEAT 5: + A = A + 7 + REPEAT 5: + A = A + 1 + A = A + 1 + REPEAT 5: + A = A + 6 + REPEAT 1: + A = A + 4 + REPEAT 9: + A = A + 4 + A = A + 1 + REPEAT 6: + A = A + 8 + A = A + 5 + REPEAT 1: + A = A + 4 + REPEAT 5: + A = A + 8 + A = A + 7 + A = A + 2 + REPEAT 3: + A = A + 3 + REPEAT 8: + REPEAT 8: + A = A + 4 + A = A + 7 + REPEAT 5: + A = A + 1 + REPEAT 8: + A = A + 7 + A = A + 8 + A = A + 4 + A = A + 7 + A = A + 6 + A = A + 9 + A = A + 5 +REPEAT 3: + A = A + 5 + REPEAT 9: + A = A + 1 + A = A + 7 +REPEAT 1: + A = A + 8 +A = A + 4 +REPEAT 8: + REPEAT 7: + A = A + 2 + REPEAT 4: + A = A + 6 + A = A + 6 + REPEAT 1: + A = A + 7 + A = A + 1 +REPEAT 9: + REPEAT 5: + A = A + 6 + A = A + 5 + REPEAT 7: + A = A + 3 + A = A + 6 + A = A + 8 + REPEAT 2: + A = A + 7 + A = A + 1 + A = A + 9 + REPEAT 3: + REPEAT 3: + A = A + 5 +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +403 +``` + +## 选项 + +### A + +```cpp +400 +``` + +### B + +```cpp +401 +``` + +### C + +```cpp +402 +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/35.\347\205\244\347\220\203\346\225\260\347\233\256/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/35.\347\205\244\347\220\203\346\225\260\347\233\256/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..21bd0593419bd6c3578d220373fb3d56fa93c5f4 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/35.\347\205\244\347\220\203\346\225\260\347\233\256/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-1a8f872bd3c841808a2bdd47008051f7", + "keywords": [ + "è“æ¡¥æ¯", + "ç…¤çƒæ•°ç›®" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/35.\347\205\244\347\220\203\346\225\260\347\233\256/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/35.\347\205\244\347\220\203\346\225\260\347\233\256/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..776547068d1a9f3839b37ea864b383c7ad987c52 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/35.\347\205\244\347\220\203\346\225\260\347\233\256/desc.md" @@ -0,0 +1,7 @@ +æœ‰ä¸€å †ç…¤çƒï¼Œå †æˆä¸‰è§’棱锥形。具体: +第一层放1个, +第二层3个(排列æˆä¸‰è§’形), +第三层6个(排列æˆä¸‰è§’形), +第四层10个(排列æˆä¸‰è§’形), +.... +如果一共有100层,共有多少个煤çƒï¼Ÿ \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/35.\347\205\244\347\220\203\346\225\260\347\233\256/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/35.\347\205\244\347\220\203\346\225\260\347\233\256/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..e5a726d2129a2358d871f77719dca420a03a4182 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/35.\347\205\244\347\220\203\346\225\260\347\233\256/solution.cpp" @@ -0,0 +1,17 @@ +#include <stdio.h> +#include <string.h> +#include <algorithm> +using namespace std; +int main() +{ + int i, j; + long long int sum = 0; + for (i = 1; i <= 100; i++) + { + int num = 0; + for (j = 1; j <= i; j++) + num += j; + sum += num; + } + printf("%lld\n", sum); +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/35.\347\205\244\347\220\203\346\225\260\347\233\256/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/35.\347\205\244\347\220\203\346\225\260\347\233\256/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/35.\347\205\244\347\220\203\346\225\260\347\233\256/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/35.\347\205\244\347\220\203\346\225\260\347\233\256/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..97f72de87ed6efe230fc9bd3927cd3cebd8e3811 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/35.\347\205\244\347\220\203\346\225\260\347\233\256/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "3fca71a7f8294b87bf1af7214c6fc064" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/35.\347\205\244\347\220\203\346\225\260\347\233\256/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/35.\347\205\244\347\220\203\346\225\260\347\233\256/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..51691bcf8f97aaf46d9065ec5288d3f6ef7d4dc1 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/35.\347\205\244\347\220\203\346\225\260\347\233\256/solution.md" @@ -0,0 +1,49 @@ +# ç…¤çƒæ•°ç›® + +æœ‰ä¸€å †ç…¤çƒï¼Œå †æˆä¸‰è§’棱锥形。具体: +第一层放1个, +第二层3个(排列æˆä¸‰è§’形), +第三层6个(排列æˆä¸‰è§’形), +第四层10个(排列æˆä¸‰è§’形), +.... +如果一共有100层,共有多少个煤çƒï¼Ÿ + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +171700 +``` + +## 选项 + +### A + +```cpp +166650 +``` + +### B + +```cpp +176851 +``` + +### C + +```cpp +182104 +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/36.\351\227\250\347\211\214\345\210\266\344\275\234/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/36.\351\227\250\347\211\214\345\210\266\344\275\234/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..c17a8293d101e6baa83f878beacaee07cf7c03a2 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/36.\351\227\250\347\211\214\345\210\266\344\275\234/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-b7a24f3dc0894922b58174677d4a1e4a", + "keywords": [ + "è“æ¡¥æ¯", + "门牌制作" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/36.\351\227\250\347\211\214\345\210\266\344\275\234/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/36.\351\227\250\347\211\214\345\210\266\344\275\234/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..203fdd49196dfa7a37b2f5395b70f90eb628195d --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/36.\351\227\250\347\211\214\345\210\266\344\275\234/desc.md" @@ -0,0 +1,4 @@ +å°è“è¦ä¸ºä¸€æ¡è¡—çš„ä½æˆ·åˆ¶ä½œé—¨ç‰Œå·ã€‚ +è¿™æ¡è¡—一共有 2020 ä½ä½æˆ·ï¼Œé—¨ç‰Œå·ä»Ž 1 到 2020 ç¼–å·ã€‚ +å°è“制作门牌的方法是先制作 0 到 9 è¿™å‡ ä¸ªæ•°å—å—符,最åŽæ ¹æ®éœ€è¦å°†å—符粘贴到门牌上,例如门牌 1017 需è¦ä¾æ¬¡ç²˜è´´å—符 1ã€0ã€1ã€7,å³éœ€è¦ 1 个å—符 0,2 个å—符 1,1 个å—符 7。 +请问è¦åˆ¶ä½œæ‰€æœ‰çš„ 1 到 2020 å·é—¨ç‰Œï¼Œæ€»å…±éœ€è¦å¤šå°‘个å—符 2? diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/36.\351\227\250\347\211\214\345\210\266\344\275\234/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/36.\351\227\250\347\211\214\345\210\266\344\275\234/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..1e8513c823a70cdb186af1b0b980847c0b347a47 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/36.\351\227\250\347\211\214\345\210\266\344\275\234/solution.cpp" @@ -0,0 +1,24 @@ +#include <iostream> +using namespace std; + +int ans; +int cal(int n) +{ + int sum = 0; + while (n) + { + if (n % 10 == 2) + sum++; + n /= 10; + } + return sum; +} +int main() +{ + for (int i = 1; i <= 2020; i++) + { + ans += cal(i); + } + cout << ans << endl; + return 0; +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/36.\351\227\250\347\211\214\345\210\266\344\275\234/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/36.\351\227\250\347\211\214\345\210\266\344\275\234/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/36.\351\227\250\347\211\214\345\210\266\344\275\234/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/36.\351\227\250\347\211\214\345\210\266\344\275\234/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..d4c8402144d21357c70d4c104fada84ebacd3b6d --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/36.\351\227\250\347\211\214\345\210\266\344\275\234/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "94978df2ba4c4b21a6c8666be6e7c735" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/36.\351\227\250\347\211\214\345\210\266\344\275\234/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/36.\351\227\250\347\211\214\345\210\266\344\275\234/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..288118e0ccf79fe431c77fa85810b93534de4b7f --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/36.\351\227\250\347\211\214\345\210\266\344\275\234/solution.md" @@ -0,0 +1,47 @@ +# 门牌制作 + +å°è“è¦ä¸ºä¸€æ¡è¡—çš„ä½æˆ·åˆ¶ä½œé—¨ç‰Œå·ã€‚ +è¿™æ¡è¡—一共有 2020 ä½ä½æˆ·ï¼Œé—¨ç‰Œå·ä»Ž 1 到 2020 ç¼–å·ã€‚ +å°è“制作门牌的方法是先制作 0 到 9 è¿™å‡ ä¸ªæ•°å—å—符,最åŽæ ¹æ®éœ€è¦å°†å—符粘贴到门牌上,例如门牌 1017 需è¦ä¾æ¬¡ç²˜è´´å—符 1ã€0ã€1ã€7,å³éœ€è¦ 1 个å—符 0,2 个å—符 1,1 个å—符 7。 +请问è¦åˆ¶ä½œæ‰€æœ‰çš„ 1 到 2020 å·é—¨ç‰Œï¼Œæ€»å…±éœ€è¦å¤šå°‘个å—符 2? + + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +624 +``` + +## 选项 + +### A + +```cpp +626 +``` + +### B + +```cpp +622 +``` + +### C + +```cpp +628 +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/37.\345\271\263\351\235\242\345\210\207\345\210\206/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/37.\345\271\263\351\235\242\345\210\207\345\210\206/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..5392783a5f5e6ecfd090041f40ba6d789898be11 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/37.\345\271\263\351\235\242\345\210\207\345\210\206/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-03f5a1063e9948dab7d89631695b4323", + "keywords": [ + "è“æ¡¥æ¯", + "å¹³é¢åˆ‡åˆ†" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/37.\345\271\263\351\235\242\345\210\207\345\210\206/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/37.\345\271\263\351\235\242\345\210\207\345\210\206/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..795634640ec6d2846c3f00b90208f6921118567d --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/37.\345\271\263\351\235\242\345\210\207\345\210\206/desc.md" @@ -0,0 +1,24 @@ +#### 问题æè¿° +å¹³é¢ä¸Šæœ‰ Næ¡ç›´çº¿ï¼Œå…¶ä¸ç¬¬ iæ¡ç›´çº¿æ˜¯$ y = A_i*x + B_i$。 + +请计算这些直线将平é¢åˆ†æˆäº†å‡ 个部分。 + +#### è¾“å…¥æ ¼å¼ +第一行包å«ä¸€ä¸ªæ•´æ•°N。 + +以下N行,æ¯è¡ŒåŒ…å«ä¸¤ä¸ªæ•´æ•° $A_i, B_i$。 + +#### è¾“å‡ºæ ¼å¼ +一个整数代表ç”案。 + +#### æ ·ä¾‹è¾“å…¥ +``` +3 +1 1 +2 2 +3 3 +``` +#### æ ·ä¾‹è¾“å‡º +``` +6 +``` \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/37.\345\271\263\351\235\242\345\210\207\345\210\206/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/37.\345\271\263\351\235\242\345\210\207\345\210\206/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..b682f789e58eb17d8f6e37808b83d5be908e04c8 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/37.\345\271\263\351\235\242\345\210\207\345\210\206/solution.cpp" @@ -0,0 +1,40 @@ +#include <bits/stdc++.h> +using namespace std; + +long double s[1010][2]; //å˜å‚¨ç›´çº¿çš„A,B +long long ans; +bool st[1010]; //false表示ä¸æ˜¯é‡è¾¹ +pair<long double, long double> p; + +int main() +{ + int n; + cin >> n; + for (int i = 0; i < n; i++) + { + cin >> s[i][0] >> s[i][1]; + set<pair<long double, long double>> points; + for (int j = 0; j < i; j++) + { + if (st[j]) + continue; //直线是é‡è¾¹ï¼Œè·³è¿‡ + if (s[i][0] == s[j][0]) + { //两æ¡ç›´çº¿æ–œçŽ‡ç›¸ç‰æ—¶ï¼Œåˆ¤æ–是平行还是é‡åˆ + if (s[i][1] == s[j][1]) + { + st[i] = true; //å¾…æ·»åŠ ç›´çº¿æ˜¯é‡è¾¹ï¼Œé€€å‡ºå¾ªçŽ¯ + break; + } + else + continue; //直线平行,ä¸éœ€è¦è®¡ç®—交点 + } + p.first = (s[j][1] - s[i][1]) / (s[i][0] - s[j][0]); //交点的xåæ ‡ + p.second = s[i][0] * p.first + s[i][1]; //交点的yåæ ‡ + points.insert(p); + } + if (!st[i]) + ans += points.size() + 1; //若当å‰ç›´çº¿ä¸æ˜¯é‡è¾¹ï¼Œæ›´æ–°ç”案 + } + cout << ans + 1; + return 0; +} diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/37.\345\271\263\351\235\242\345\210\207\345\210\206/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/37.\345\271\263\351\235\242\345\210\207\345\210\206/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/37.\345\271\263\351\235\242\345\210\207\345\210\206/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/37.\345\271\263\351\235\242\345\210\207\345\210\206/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..93d29f85f5a12cc1f047e72cb57653e05b08b9da --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/37.\345\271\263\351\235\242\345\210\207\345\210\206/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "e572003202d0462fa95f635381897624" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/37.\345\271\263\351\235\242\345\210\207\345\210\206/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/37.\345\271\263\351\235\242\345\210\207\345\210\206/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..b572b894eb500fb1f827ca6cec80c78ad98a69f5 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/37.\345\271\263\351\235\242\345\210\207\345\210\206/solution.md" @@ -0,0 +1,121 @@ +# å¹³é¢åˆ‡åˆ† + + +**问题æè¿°** + +å¹³é¢ä¸Šæœ‰ Næ¡ç›´çº¿ï¼Œå…¶ä¸ç¬¬ iæ¡ç›´çº¿æ˜¯$ y = A_i*x + B_i$。 + +请计算这些直线将平é¢åˆ†æˆäº†å‡ 个部分。 + + +**è¾“å…¥æ ¼å¼** + +第一行包å«ä¸€ä¸ªæ•´æ•°N。 + +以下N行,æ¯è¡ŒåŒ…å«ä¸¤ä¸ªæ•´æ•° $A_i, B_i$。 + + +**è¾“å‡ºæ ¼å¼** + +一个整数代表ç”案。 + + +**æ ·ä¾‹è¾“å…¥** + +``` +3 +1 1 +2 2 +3 3 +``` + +**æ ·ä¾‹è¾“å‡º** + +``` +6 +``` + +以下程åºå®žçŽ°äº†è¿™ä¸€åŠŸèƒ½ï¼Œè¯·ä½ 补全空白处的内容: + +```cpp +#include <bits/stdc++.h> +using namespace std; + +long double s[1010][2]; +long long ans; +bool st[1010]; +pair<long double, long double> p; + +int main() +{ + int n; + cin >> n; + for (int i = 0; i < n; i++) + { + cin >> s[i][0] >> s[i][1]; + set<pair<long double, long double>> points; + for (int j = 0; j < i; j++) + { + if (st[j]) + continue; + if (s[i][0] == s[j][0]) + { + if (s[i][1] == s[j][1]) + { + st[i] = true; + break; + } + else + continue; + } + __________________ + p.second = s[i][0] * p.first + s[i][1]; + points.insert(p); + } + if (!st[i]) + ans += points.size() + 1; + } + cout << ans + 1; + return 0; +} +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +p.first = (s[j][1] - s[i][1]) / (s[i][0] - s[j][0]); +``` + +## 选项 + +### A + +```cpp +p.first = (s[j][1] - s[i][1]) / (s[i][1] - s[j][1]); +``` + +### B + +```cpp +p.first = (s[j][0] - s[i][0]) / (s[i][0] - s[j][0]); +``` + +### C + +```cpp +p.first = (s[j][0] - s[i][0]) / (s[i][1] - s[j][1]); +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/38.\346\266\210\351\231\244\345\260\276\344\270\200/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/38.\346\266\210\351\231\244\345\260\276\344\270\200/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..b4bad99c564614f22aace550e67687850325d3f2 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/38.\346\266\210\351\231\244\345\260\276\344\270\200/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-a897b32f6a7244088c8d4a3383ef1902", + "keywords": [ + "è“æ¡¥æ¯", + "消除尾一" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/38.\346\266\210\351\231\244\345\260\276\344\270\200/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/38.\346\266\210\351\231\244\345\260\276\344\270\200/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..143a9ba2217e0e7097556d8e4ad3366f153b983a --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/38.\346\266\210\351\231\244\345\260\276\344\270\200/desc.md" @@ -0,0 +1,18 @@ +下é¢çš„代ç 把一个整数的二进制表示的最å³è¾¹çš„è¿žç»çš„1全部å˜æˆ0 +如果最åŽä¸€ä½æ˜¯0,则原数å—ä¿æŒä¸å˜ã€‚ +#### 输入: +``` +00000000000000000000000001100111 +``` +#### 输出: +``` +00000000000000000000000001100000 +``` +#### 输入: +``` +00000000000000000000000000001100 +``` +#### 输出: +``` +00000000000000000000000000001100 +``` \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/38.\346\266\210\351\231\244\345\260\276\344\270\200/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/38.\346\266\210\351\231\244\345\260\276\344\270\200/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..06e728c9b8d33c0ebbc50b6c0f3a2c7504726faa --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/38.\346\266\210\351\231\244\345\260\276\344\270\200/solution.cpp" @@ -0,0 +1,22 @@ +#include <stdio.h> + +void f(int x) +{ + int i; + for (i = 0; i < 32; i++) + printf("%d", (x >> (31 - i)) & 1); + printf(" "); + + x = x & (x + 1); + + for (i = 0; i < 32; i++) + printf("%d", (x >> (31 - i)) & 1); + printf("\n"); +} + +int main() +{ + f(103); + f(12); + return 0; +} diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/38.\346\266\210\351\231\244\345\260\276\344\270\200/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/38.\346\266\210\351\231\244\345\260\276\344\270\200/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/38.\346\266\210\351\231\244\345\260\276\344\270\200/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/38.\346\266\210\351\231\244\345\260\276\344\270\200/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..74abe5e53530ba851b3f1fa9880df3032947acf6 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/38.\346\266\210\351\231\244\345\260\276\344\270\200/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "c2a45eb8e39b4be681fc3d28c1f9bacd" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/38.\346\266\210\351\231\244\345\260\276\344\270\200/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/38.\346\266\210\351\231\244\345\260\276\344\270\200/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..ae398616edec7df161335b18e2733348d0e022a2 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/38.\346\266\210\351\231\244\345\260\276\344\270\200/solution.md" @@ -0,0 +1,93 @@ +# 消除尾一 + +下é¢çš„代ç 把一个整数的二进制表示的最å³è¾¹çš„è¿žç»çš„1全部å˜æˆ0 +如果最åŽä¸€ä½æ˜¯0,则原数å—ä¿æŒä¸å˜ã€‚ + +**输入:** + +``` +00000000000000000000000001100111 +``` + +**输出:** + +``` +00000000000000000000000001100000 +``` + +**输入:** + +``` +00000000000000000000000000001100 +``` + +**输出:** + +``` +00000000000000000000000000001100 +``` + +è¯·ä½ å¡«è¡¥ç©ºç™½å¤„çš„å†…å®¹ï¼š + +```cpp +#include <stdio.h> + +void f(int x) +{ + int i; + for (i = 0; i < 32; i++) + printf("%d", (x >> (31 - i)) & 1); + printf(" "); + __________________ + for (i = 0; i < 32; i++) + printf("%d", (x >> (31 - i)) & 1); + printf("\n"); +} + +int main() +{ + f(103); + f(12); + return 0; +} +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +x = x & (x + 1); +``` + +## 选项 + +### A + +```cpp +x = x & (x - 1); +``` + +### B + +```cpp +x = x && (x - 1); +``` + +### C + +```cpp +x = x && (x + 1); +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/39.\345\233\233\345\271\263\346\226\271\345\222\214/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/39.\345\233\233\345\271\263\346\226\271\345\222\214/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..de191ba9ffe0c413a84c31316c8e0df496d73de3 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/39.\345\233\233\345\271\263\346\226\271\345\222\214/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-8e17d142f5aa4b57a697571be7b2fd94", + "keywords": [ + "è“æ¡¥æ¯", + "四平方和" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/39.\345\233\233\345\271\263\346\226\271\345\222\214/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/39.\345\233\233\345\271\263\346\226\271\345\222\214/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..64059958f03323c9876faae0371c1c6052b83493 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/39.\345\233\233\345\271\263\346\226\271\345\222\214/desc.md" @@ -0,0 +1,45 @@ +四平方和定ç†ï¼Œåˆç§°ä¸ºæ‹‰æ ¼æœ—日定ç†ï¼š + +æ¯ä¸ªæ£æ•´æ•°éƒ½å¯ä»¥è¡¨ç¤ºä¸ºè‡³å¤š4个æ£æ•´æ•°çš„平方和。 +如果把0包括进去,就æ£å¥½å¯ä»¥è¡¨ç¤ºä¸º4个数的平方和。 + +比如: +``` +5 = 0^ 2 + 0^ 2 + 1^ 2 + 2^2 +7 = 1^ 2 + 1^ 2 + 1^ 2 + 2^2 +(^符å·è¡¨ç¤ºä¹˜æ–¹çš„æ„æ€ï¼‰ +``` +对于一个给定的æ£æ•´æ•°ï¼Œå¯èƒ½å˜åœ¨å¤šç§å¹³æ–¹å’Œçš„表示法。 +è¦æ±‚ä½ å¯¹4个数排åºï¼š +``` +0 <= a <= b <= c <= d +``` +并对所有的å¯èƒ½è¡¨ç¤ºæ³•æŒ‰ a,b,c,d 为è”åˆä¸»é”®å‡åºæŽ’列,最åŽè¾“出第一个表示法 + +程åºè¾“入为一个æ£æ•´æ•°N (N<5000000) +è¦æ±‚输出4个éžè´Ÿæ•´æ•°ï¼ŒæŒ‰ä»Žå°åˆ°å¤§æŽ’åºï¼Œä¸é—´ç”¨ç©ºæ ¼åˆ†å¼€ + +例如,输入: +``` +5 +``` +则程åºåº”该输出: +``` +0 0 1 2 +``` +å†ä¾‹å¦‚,输入: +``` +12 +``` +则程åºåº”该输出: +``` +0 2 2 2 +``` +å†ä¾‹å¦‚,输入: +``` +773535 +``` +则程åºåº”该输出: +``` +1 1 267 838 +``` \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/39.\345\233\233\345\271\263\346\226\271\345\222\214/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/39.\345\233\233\345\271\263\346\226\271\345\222\214/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..7df09f549dae76fd5a4aa3f2f52e6385e14a59e8 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/39.\345\233\233\345\271\263\346\226\271\345\222\214/solution.cpp" @@ -0,0 +1,37 @@ +#include <iostream> +#include <cstdio> +#include <map> +#include <cmath> +using namespace std; + +int N; +map<int, int> cache; //intå’Œintæ˜ å°„ï¼Œå“ˆå¸Œè¡¨ç”¨äºŽç¼“å˜æ•°å€¼ +int main() +{ + scanf("%d", &N); + for (int c = 0; c * c <= N / 2; c++) + { + for (int d = c; c * c + d * d <= N; d++) + { + if (cache.find(c * c + d * d) == cache.end()) //如果未找到,å†åŽ»å˜ï¼Œå·²ç»å˜åœ¨å°±ä¸éœ€è¦åŽ»å˜äº† + cache[c * c + d * d] = c; //查平方数,先è¦çœ‹cache里é¢æœ‰æ²¡æœ‰ï¼Œæ²¡æœ‰è¯´æ˜Žå®ƒä¸æ˜¯ä¸€ä¸ªå¹³æ–¹æ•°å˜èµ·æ¥ + //有的è¯é€šè¿‡è¾ƒå°çš„æ•°æ˜ å°„æ‰¾åˆ°å®ƒ + } + } + //c*c+d*dè¦æ¯”a*a+d*dè¦å¤§ï¼ˆè‡³å°‘相åŒï¼‰ + for (int a = 0; a * a <= N / 4; a++) + { //å•ç‹¬çœ‹a*aå°äºŽç‰äºŽN/4 + for (int b = a; a * a + b * b <= N / 2; b++) + { //a*a+b*bå°äºŽç‰äºŽN/2 + if (cache.find(N - a * a - b * b) != cache.end()) + { //查表,能找到 + int c = cache[N - a * a - b * b]; //cå°±å¯ä»¥çŸ¥é“ + int d = int(sqrt(N - a * a - b * b - c * c)); //d开方 + printf("%d %d %d %d\n", a, b, c, d); + return 0; //跳出整个主函数 + } + } + } + return 0; +} +//整个过程ä¸éœ€è¦å†æŽ’åºï¼Œå› 为一开始在写代ç 时,就已ç»é™å®šäº†é¡ºåºå¤§å°ï¼Œc*c+d*dè¦æ¯”a*a+d*dè¦å¤§ diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/39.\345\233\233\345\271\263\346\226\271\345\222\214/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/39.\345\233\233\345\271\263\346\226\271\345\222\214/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/39.\345\233\233\345\271\263\346\226\271\345\222\214/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/39.\345\233\233\345\271\263\346\226\271\345\222\214/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..deb7b6584de2fc7da18bf6441cfa221a6edf6199 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/39.\345\233\233\345\271\263\346\226\271\345\222\214/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "d9e609310d30429bbd1aa87b4b9c6a75" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/39.\345\233\233\345\271\263\346\226\271\345\222\214/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/39.\345\233\233\345\271\263\346\226\271\345\222\214/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..b655863adf51ed5dda407ac00f8543cd3d068e46 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/39.\345\233\233\345\271\263\346\226\271\345\222\214/solution.md" @@ -0,0 +1,141 @@ +# 四平方和 + +四平方和定ç†ï¼Œåˆç§°ä¸ºæ‹‰æ ¼æœ—日定ç†ï¼š + +æ¯ä¸ªæ£æ•´æ•°éƒ½å¯ä»¥è¡¨ç¤ºä¸ºè‡³å¤š4个æ£æ•´æ•°çš„平方和。 +如果把0包括进去,就æ£å¥½å¯ä»¥è¡¨ç¤ºä¸º4个数的平方和。 + +比如: +``` +5 = 0^ 2 + 0^ 2 + 1^ 2 + 2^2 +7 = 1^ 2 + 1^ 2 + 1^ 2 + 2^2 +(^符å·è¡¨ç¤ºä¹˜æ–¹çš„æ„æ€ï¼‰ +``` +对于一个给定的æ£æ•´æ•°ï¼Œå¯èƒ½å˜åœ¨å¤šç§å¹³æ–¹å’Œçš„表示法。 +è¦æ±‚ä½ å¯¹4个数排åºï¼š +``` +0 <= a <= b <= c <= d +``` +并对所有的å¯èƒ½è¡¨ç¤ºæ³•æŒ‰ a,b,c,d 为è”åˆä¸»é”®å‡åºæŽ’列,最åŽè¾“出第一个表示法 + +程åºè¾“入为一个æ£æ•´æ•°N (N<5000000) +è¦æ±‚输出4个éžè´Ÿæ•´æ•°ï¼ŒæŒ‰ä»Žå°åˆ°å¤§æŽ’åºï¼Œä¸é—´ç”¨ç©ºæ ¼åˆ†å¼€ + +例如,输入: +``` +5 +``` +则程åºåº”该输出: +``` +0 0 1 2 +``` +å†ä¾‹å¦‚,输入: +``` +12 +``` +则程åºåº”该输出: +``` +0 2 2 2 +``` +å†ä¾‹å¦‚,输入: +``` +773535 +``` +则程åºåº”该输出: +``` +1 1 267 838 +``` + +以下程åºå®žçŽ°äº†è¿™ä¸€åŠŸèƒ½ï¼Œè¯·ä½ 补全空白处内容: + +```cpp +#include <bits/stdc++.h> +using namespace std; + +typedef long long LL; +const int MAXN = 2500010; +struct Node +{ + int s, c, d; + bool operator<(const Node &t) const + { + if (s != t.s) + return s < t.s; + if (c != t.c) + return c < t.c; + return d < t.d; + } +} sum[MAXN]; +int n, m; +int main() +{ + cin >> n; + for (int c = 0; c * c <= n; c++) + for (int d = c; c * c + d * d <= n; d++) + sum[m++] = {c * c + d * d, c, d}; + sort(sum, sum + m); + for (int a = 0; a * a <= n; a++) + { + for (int b = 0; a * a + b * b <= n; b++) + { + int t = n - a * a - b * b; + int l = 0, r = m - 1; + while (l < r) + { + __________________ + if (sum[mid].s >= t) + r = mid; + else + l = mid + 1; + } + + if (sum[l].s == t) + { + printf("%d %d %d %d", a, b, sum[l].c, sum[l].d); + return 0; + } + } + } + return 0; +} +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +int mid = l + r >> 1; +``` + +## 选项 + +### A + +```cpp +int mid = l + (r >> 1); +``` + +### B + +```cpp +int mid = l + r; +``` + +### C + +```cpp +int mid = l + r + 1; +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/40.\345\256\214\347\276\216\345\271\263\346\226\271\346\225\260/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/40.\345\256\214\347\276\216\345\271\263\346\226\271\346\225\260/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..0ea4cb1c1f3ea812c47bd3301dc3d042a599770b --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/40.\345\256\214\347\276\216\345\271\263\346\226\271\346\225\260/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-92facd5e0f8d4b6d88589bcddba9f3d7", + "keywords": [ + "è“æ¡¥æ¯", + "完美平方数" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/40.\345\256\214\347\276\216\345\271\263\346\226\271\346\225\260/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/40.\345\256\214\347\276\216\345\271\263\346\226\271\346\225\260/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..133a9dffd62fe5442a6dd60540f2d6e5fef5824f --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/40.\345\256\214\347\276\216\345\271\263\346\226\271\346\225\260/desc.md" @@ -0,0 +1,4 @@ +如果整个整数 X 本身是完全平方数,åŒæ—¶å®ƒçš„æ¯ä¸€ä½æ•°å—也都是完全平方数,我们就称 X 是完美平方数。 +å‰å‡ 个完美平方数是 0ã€1ã€4ã€9ã€49ã€100ã€144…… +å³ç¬¬ 1 个完美平方数是 0,第 2 个是 1,第 3 个是 4,…… +è¯·ä½ è®¡ç®—ç¬¬ 2020 个完美平方数是多少? diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/40.\345\256\214\347\276\216\345\271\263\346\226\271\346\225\260/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/40.\345\256\214\347\276\216\345\271\263\346\226\271\346\225\260/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..32630ae7cc52ff87ad30e08b3c916879d401fc66 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/40.\345\256\214\347\276\216\345\271\263\346\226\271\346\225\260/solution.cpp" @@ -0,0 +1,84 @@ +#include <cstdio> +#include <cstring> +struct bign +{ + int d[1000]; + int len; + bign() + { + memset(d, 0, sizeof(d)); + len = 0; + } +} a, b; +bign add(bign &a, bign &b) +{ + bign c; + int carry = 0; + for (int i = 0; i < a.len || i < b.len; i++) + { + int temp = a.d[i] + b.d[i] + carry; + c.d[c.len++] = temp % 10; + carry = temp / 10; + } + if (carry) + { + c.d[c.len++] = carry; + } + return c; +} +bign multi(bign &a, int &b) +{ + bign c; + int carry = 0; + for (int i = 0; i < a.len; i++) + { + int temp = a.d[i] * b + carry; + c.d[c.len++] = temp % 10; + carry = temp / 10; + } + while (carry) + { + c.d[c.len++] = carry % 10; + carry /= 10; + } + return c; +} +void print(bign &a) +{ + for (int i = a.len - 1; i >= 0; i--) + { + printf("%d", a.d[i]); + } + printf("\n"); +} +bool vis[10] = {false}; + +bool judge(bign &c) +{ + for (int i = 0; i <= c.len - 1; i++) + { + if (!vis[c.d[i]]) + return false; + } + return true; +} +int main() +{ + vis[0] = vis[1] = vis[4] = vis[9] = true; + b.d[0] = 1, b.len = 1; + a.d[0] = 0, a.len = 1; + int num = 0; + for (int i = 0; num < 2020; i++) + { + bign c = multi(a, i); + if (judge(c)) + { + num++; + printf("%d:", num); + print(c); + } + a = add(a, b); + } + + return 0; +} diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/40.\345\256\214\347\276\216\345\271\263\346\226\271\346\225\260/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/40.\345\256\214\347\276\216\345\271\263\346\226\271\346\225\260/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/40.\345\256\214\347\276\216\345\271\263\346\226\271\346\225\260/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/40.\345\256\214\347\276\216\345\271\263\346\226\271\346\225\260/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..5908274436768a462e29d48ded01d29e2b97f887 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/40.\345\256\214\347\276\216\345\271\263\346\226\271\346\225\260/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "6b9511a8ea9e47c4a4ba3e01fc8f461e" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/40.\345\256\214\347\276\216\345\271\263\346\226\271\346\225\260/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/40.\345\256\214\347\276\216\345\271\263\346\226\271\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..3764a2f9dac2da8a5dc09ce243f290872cb75fd9 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257-\345\237\272\347\241\200/40.\345\256\214\347\276\216\345\271\263\346\226\271\346\225\260/solution.md" @@ -0,0 +1,47 @@ +# 完美平方数 + +如果整个整数 X 本身是完全平方数,åŒæ—¶å®ƒçš„æ¯ä¸€ä½æ•°å—也都是完全平方数,我们就称 X 是完美平方数。 +å‰å‡ 个完美平方数是 0ã€1ã€4ã€9ã€49ã€100ã€144…… +å³ç¬¬ 1 个完美平方数是 0,第 2 个是 1,第 3 个是 4,…… +è¯·ä½ è®¡ç®—ç¬¬ 2020 个完美平方数是多少? + + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +1499441040 +``` + +## 选项 + +### A + +```cpp +1949990009 +``` + +### B + +```cpp +914140441 +``` + +### C + +```cpp +1101001 +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/10.\351\273\204\351\207\221\350\277\236\345\210\206\346\225\260/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/10.\351\273\204\351\207\221\350\277\236\345\210\206\346\225\260/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..c443a0eaa67c110c18cd311bf73be9c1f99e7604 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/10.\351\273\204\351\207\221\350\277\236\345\210\206\346\225\260/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-be788b02c56e4c8bbc442449c753daf0", + "keywords": [ + "è“æ¡¥æ¯", + "黄金连分数" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/10.\351\273\204\351\207\221\350\277\236\345\210\206\346\225\260/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/10.\351\273\204\351\207\221\350\277\236\345\210\206\346\225\260/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..c0cf045c1d218993dd288d7114816dbb1887e5dc --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/10.\351\273\204\351\207\221\350\277\236\345\210\206\346\225\260/desc.md" @@ -0,0 +1,27 @@ +黄金分割数0.61803… æ˜¯ä¸ªæ— ç†æ•°ï¼Œè¿™ä¸ªå¸¸æ•°å分é‡è¦ï¼Œåœ¨è®¸å¤šå·¥ç¨‹é—®é¢˜ä¸ä¼šå‡ºçŽ°ã€‚有时需è¦æŠŠè¿™ä¸ªæ•°å—求得很精确。 +对于æŸäº›ç²¾å¯†å·¥ç¨‹ï¼Œå¸¸æ•°çš„精度很é‡è¦ã€‚ä¹Ÿè®¸ä½ å¬è¯´è¿‡å“ˆå‹ƒå¤ªç©ºæœ›è¿œé•œï¼Œå®ƒé¦–次å‡ç©ºåŽå°±å‘çŽ°äº†ä¸€å¤„äººå·¥åŠ å·¥é”™è¯¯ï¼Œå¯¹é‚£æ ·ä¸€ä¸ªåºžç„¶å¤§ç‰©ï¼Œå…¶å®žåªæ˜¯é•œé¢åŠ 工时有比头å‘ä¸è¿˜ç»†è®¸å¤šå€çš„一处错误而已,å´ä½¿å®ƒæˆäº†â€œè¿‘视眼â€!! +言归æ£ä¼ ,我们如何求得黄金分割数的尽å¯èƒ½ç²¾ç¡®çš„值呢?有许多方法。 +比较简å•çš„一ç§æ˜¯ç”¨è¿žåˆ†æ•°ï¼š +``` + 1 + 黄金数 = --------------------- + 1 + 1 + ----------------- + 1 + 1 + ------------- + 1 + 1 + --------- + 1 + ... + +``` + +这个连分数计算的“层数â€è¶Šå¤šï¼Œå®ƒçš„值越接近黄金分割数。 +è¯·ä½ åˆ©ç”¨è¿™ä¸€ç‰¹æ€§ï¼Œæ±‚å‡ºé»„é‡‘åˆ†å‰²æ•°çš„è¶³å¤Ÿç²¾ç¡®å€¼ï¼Œè¦æ±‚å››èˆäº”入到å°æ•°ç‚¹åŽ100ä½ã€‚ +å°æ•°ç‚¹åŽ3ä½çš„值为:0.618 +å°æ•°ç‚¹åŽ4ä½çš„值为:0.6180 +å°æ•°ç‚¹åŽ5ä½çš„值为:0.61803 +å°æ•°ç‚¹åŽ7ä½çš„值为:0.6180340 +(注æ„尾部的0,ä¸èƒ½å¿½ç•¥ï¼‰ +ä½ çš„ä»»åŠ¡æ˜¯ï¼šå†™å‡ºç²¾ç¡®åˆ°å°æ•°ç‚¹åŽ100ä½ç²¾åº¦çš„黄金分割值。 +注æ„:尾数的四èˆäº”å…¥ï¼ å°¾æ•°æ˜¯0也è¦ä¿ç•™ï¼ +显然ç”案是一个å°æ•°ï¼Œå…¶å°æ•°ç‚¹åŽæœ‰100ä½æ•°å— diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/10.\351\273\204\351\207\221\350\277\236\345\210\206\346\225\260/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/10.\351\273\204\351\207\221\350\277\236\345\210\206\346\225\260/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..2983c51b8463a32f9d380420f0c632cb5a99253b --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/10.\351\273\204\351\207\221\350\277\236\345\210\206\346\225\260/solution.cpp" @@ -0,0 +1,25 @@ +#include <iostream> +using namespace std; + +typedef long long LL; + +void div(LL a, LL b, int end, int begin) //模拟手工除法 +{ + if (begin > end) + return; + int tmpans = a / b; + cout << tmpans; + div((a % b) * 10, b, end, begin + 1); +} + +int main() +{ + unsigned long long f[500] = {0, 1}; + + for (int i = 2; i < 100; i++) + f[i] = f[i - 1] + f[i - 2]; + + div(f[48], f[49], 100, 0); + + return 0; +} diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/10.\351\273\204\351\207\221\350\277\236\345\210\206\346\225\260/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/10.\351\273\204\351\207\221\350\277\236\345\210\206\346\225\260/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/10.\351\273\204\351\207\221\350\277\236\345\210\206\346\225\260/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/10.\351\273\204\351\207\221\350\277\236\345\210\206\346\225\260/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..cd7be6a9a5754cadc37e218abcd7dffdc783c6e4 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/10.\351\273\204\351\207\221\350\277\236\345\210\206\346\225\260/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "4c45c0253bca421fb0d1c8d7fb246832" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/10.\351\273\204\351\207\221\350\277\236\345\210\206\346\225\260/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/10.\351\273\204\351\207\221\350\277\236\345\210\206\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..99d03bb6fcbf4f44552165f9e7566485f21aed12 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/10.\351\273\204\351\207\221\350\277\236\345\210\206\346\225\260/solution.md" @@ -0,0 +1,70 @@ +# 黄金连分数 + +黄金分割数0.61803… æ˜¯ä¸ªæ— ç†æ•°ï¼Œè¿™ä¸ªå¸¸æ•°å分é‡è¦ï¼Œåœ¨è®¸å¤šå·¥ç¨‹é—®é¢˜ä¸ä¼šå‡ºçŽ°ã€‚有时需è¦æŠŠè¿™ä¸ªæ•°å—求得很精确。 +对于æŸäº›ç²¾å¯†å·¥ç¨‹ï¼Œå¸¸æ•°çš„精度很é‡è¦ã€‚ä¹Ÿè®¸ä½ å¬è¯´è¿‡å“ˆå‹ƒå¤ªç©ºæœ›è¿œé•œï¼Œå®ƒé¦–次å‡ç©ºåŽå°±å‘çŽ°äº†ä¸€å¤„äººå·¥åŠ å·¥<span style="color:red">错误</span>ï¼Œå¯¹é‚£æ ·ä¸€ä¸ªåºžç„¶å¤§ç‰©ï¼Œå…¶å®žåªæ˜¯é•œé¢åŠ 工时有比头å‘ä¸è¿˜ç»†è®¸å¤šå€çš„一处<span style="color:red">错误</span>而已,å´ä½¿å®ƒæˆäº†â€œè¿‘视眼â€!! +言归æ£ä¼ ,我们如何求得黄金分割数的尽å¯èƒ½ç²¾ç¡®çš„值呢?有许多方法。 +比较简å•çš„一ç§æ˜¯ç”¨è¿žåˆ†æ•°ï¼š +``` + 1 + 黄金数 = --------------------- + 1 + 1 + ----------------- + 1 + 1 + ------------- + 1 + 1 + --------- + 1 + ... + +``` + +这个连分数计算的“层数â€è¶Šå¤šï¼Œå®ƒçš„值越接近黄金分割数。 +è¯·ä½ åˆ©ç”¨è¿™ä¸€ç‰¹æ€§ï¼Œæ±‚å‡ºé»„é‡‘åˆ†å‰²æ•°çš„è¶³å¤Ÿç²¾ç¡®å€¼ï¼Œè¦æ±‚å››èˆäº”入到å°æ•°ç‚¹åŽ100ä½ã€‚ +å°æ•°ç‚¹åŽ3ä½çš„值为:0.618 +å°æ•°ç‚¹åŽ4ä½çš„值为:0.6180 +å°æ•°ç‚¹åŽ5ä½çš„值为:0.61803 +å°æ•°ç‚¹åŽ7ä½çš„值为:0.6180340 +(注æ„尾部的0,ä¸èƒ½å¿½ç•¥ï¼‰ +ä½ çš„ä»»åŠ¡æ˜¯ï¼šå†™å‡ºç²¾ç¡®åˆ°å°æ•°ç‚¹åŽ100ä½ç²¾åº¦çš„黄金分割值。 +注æ„:尾数的四èˆäº”å…¥ï¼ å°¾æ•°æ˜¯0也è¦ä¿ç•™ï¼ +显然ç”案是一个å°æ•°ï¼Œå…¶å°æ•°ç‚¹åŽæœ‰100ä½æ•°å— + + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +0.6180339887498948482045868343656381177203091798057628621354486227052604628189024497072072041893911375 +``` + +## 选项 + +### A + +```cpp +0.6180339887498948482045868343656389332927878467731611281824609112882717278172075687340936512886003869 +``` + +### B + +```cpp +0.6180339887498948482045868343656381177203091798057628621354486227052604628189024496923340122463725713 +``` + +### C + +```cpp +0.6180339887498948482045868343656382367107301981874040757690591496236273680999331990382076023866480180 +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/11.\345\255\227\346\257\215\351\230\265\345\210\227/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/11.\345\255\227\346\257\215\351\230\265\345\210\227/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..a815c6c8f233b9adab68b81b162f9a7762b17942 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/11.\345\255\227\346\257\215\351\230\265\345\210\227/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-dc6f30bd00214f50b5ba70dcfcb8c35f", + "keywords": [ + "è“æ¡¥æ¯", + "å—æ¯é˜µåˆ—" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/11.\345\255\227\346\257\215\351\230\265\345\210\227/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/11.\345\255\227\346\257\215\351\230\265\345\210\227/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..4f46d2b656bc56ecd3d39c5ca395cfc386831cda --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/11.\345\255\227\346\257\215\351\230\265\345\210\227/desc.md" @@ -0,0 +1,122 @@ +仔细寻找,会å‘现:在下é¢çš„8x8的方阵ä¸ï¼Œéšè—ç€å—æ¯åºåˆ—:“LANQIAOâ€ã€‚ +``` +SLANQIAO +ZOEXCCGB +MOAYWKHI +BCCIPLJQ +SLANQIAO +RSFWFNYA +XIFZVWAL +COAIQNAL +``` +我们约定: åºåˆ—å¯ä»¥æ°´å¹³ï¼Œåž‚直,或者是斜å‘;并且走å‘ä¸é™ï¼ˆå®žé™…上就是有一共8ç§æ–¹å‘)。 + +上é¢ä¸€å…±æœ‰4个满足è¦æ±‚的串。 + +下é¢æœ‰ä¸€ä¸ªæ›´å¤§çš„(100x100)的å—æ¯æ–¹é˜µã€‚ + +ä½ èƒ½ç®—å‡ºå…¶ä¸éšè—了多少个“LANQIAOâ€å—? + +我就把这些东西放在了txt文件里 +``` +FOAIQNALWIKEGNICJWAOSXDHTHZPOLGYELORAUHOHCZIERPTOOJUITQJCFNIYYQHSBEABBQZPNGYQTCLSKZFCYWDGOAIADKLSNGJ +GSOZTQKCCSDWGUWAUOZKNILGVNLMCLXQVBJENIHIVLRPVVXXFTHQUXUAVZZOFFJHYLMGTLANQIAOQQILCDCJERJASNCTLYGRMHGF +TSDFYTLVIBHKLJVVJUDMKGJZGNNSTPVLCKTOFMUEUFSVQIAUVHNVFTGBDDARPKYNNCUOYUAZXQJNOEEYKLFRMOEMHUKJTPETHLES +FKVINSLWEVGAGMKVFVIUBMYOIAFHLVNKNTYKTZWVXQWRWIGPENFXYDTKRVPKRTHMGHVYOCLDCKMEKRLGEKBYUCLOLYPAKPFSOREH +KWPUOLOVMOFBIXYACWRDYBINTMPASPCEOKHXQIGBQQMCEOIVULIEOPFSCSIHENAJCVDPJDOIWIIULFDNOZOFVAMCABVGKAKCOZMG +XWMYRTAFGFOCNHLBGNGOXPJSTWLZUNNAGIRETGXFWAQSSJPFTQAXMTQWMZWYVEPQERKSWTSCHSQOOBGXAQTBCHOEGBDVKGWJIFTG +ZWWJEIISPLMXIMGHOOGDRZFTGNDDWDWMNUFWJYJGULPHNUFSAQNNIUVAAFZIAZKFXXNWCEABGJAUMGYEIEFVQXVHHHEDYUITRCQB +XZHDPZQTOBECJVBZLACVXACZEDYOGVAVQRNWEOWGRAQYUEUESTEDQTYJUTEFOOITSHDDZHONJGBRCWNEQLZUTBNQIADKNFIOMWZR +EBFKCVNLURZSNPOLTISRPDTNUMCDGKTYRGIOVEPTUTSBAWQKWWEUWIWHAANUZUADGZEATZOQICWFUJTWNZDBKLQNELWVTBNDLNFH +PESISEATZNCDFRMXBQUKBFTIGYSFCWVHPMSUSDKPSCOMVLDOHYQVFHAJKRDTAVLIMNZBZSMLMRTLRPSLAHXDBASDMWAAYBPYVJZF +SCCWYHLQOUKBMCEYENQNJXFOMOOJMTKDSHJJOHDKEGATFZHGWJJAZJROWHAZUFGEQKPYXLCAAXHHQBDALPYUDWZQHBASBBCFGQCQ +ZKNXUBRYZVSPQHOVLAEUAUITMPWXNXJQVIBJVBCSVXKWFAFRPRWOLYVSDVTGGOFFMNQJZOBUDJLFHJTCYMPNOBHQJHGKLIKLZMLA +POCKVEQXUAVHERIAQLGJHYOOVOMTXQFRTBFSETOZICPCHZHFBWNESVJJLSVSVOOGYYABFESWNWDNYBGBNAKRCFQMTCUMIFTESVIN +JCAULIQRYUMAMAOVVWSEUTMECXSDTONRMMROQUISYEURSAYNZUVOPXLIFBDOHPXMABBLEQZGLJXQJOEYYRRRCFTEZQAOIWKRJQDL +ZNUUDWZXZZURPMHGXQGNQBIQWWNERZWULSAPIBODBFFQQIHEQKCKLJYQNXQUTAAYGRBXSLLQNOQPZJEWHETQHPXJANMJFOHINWOW +KJGAWWFSVIZHFNUWBLWYVPIWAEICCAHOEIWRADSLOZGPSVGPUBUUQAVYCHOIGINKYKJABWAQCZCXOBKTNJZQRHLUFKQLACAAOIWJ +SIKWLXQHKDFJVGBVXWDWJKUSFRQRTDJYQMNFOQQALHRLMHSDMCFLAOVKDMTKMTPVTLAZLYJNJXZCFRHHSDIXYUUSVIMIICLUJHFW +JHWUSMCFYHPIXHAPBBSHYDQCKVGQFTENLVERFVOVDCLSTQFUSEPUMTFODLZLYQXDOXAEPONIQWTDWSAWBNSZYACGSJQSHAUMIKXT +MVBNFXMFNPAYSODPXEAYNRKTEZJWMUACSIUYPIORUFPMXAOZZJPJXPFLNSKNIAMETMOVULZPQIJJIRCSYQXOEVRHCNACSBRHKYNW +KGKBTBHGWKVJYZCOVNSKUREKZEIWVLOHAMUAYKLUGHEUESICBZAHURNTJAECTHRNKSIJQFIPVZANSZYSPJWHPKHCAPEYWNXUYQSD +RRRFYQFIQSWYRQTSNGNUFOBMSLGAFWPJGYEHGASFKTJCCZPXFIQLSXNKNWCYVTETOAPCOZJNHEWOCCAWVDEZUQCLLAVUQJJTQCKJ +NMBKMUENVGXXVMQCLXPJDQIQCFWYADIFDSGINGZDJYHPUPXVRMWDIPJRWPNRYOFGYYPEAVKDEMLYRRRMNCRQXPTDSQIVKKGJWDEF +SBAEKIFZCKDOMIQKBDWVQGBYWPDIBOLQUGAQRXLJDAZMXVZXYSNWEWTNZKYREMBEUHOTFOCKEJSXCMUBCKXNGQXTQJRCRCLWJTOI +YXBFBIBRAAFNPKBLTSMCFERZURZNWHMOEHIHNQTBWXNPJGIDYDPRGEWACCBULJRACOFLANQIAOIHMYCNQHVKXSIGAMWAHUSNBBTD +QDGPTRONXHAZWOUPNBFJFEWAMFZUQZFDKAPNJUBQPWBPYGPZHKUDZZDLCCWHGAUKJCSLLFWGPYJKJQBNLCZESOGXXSQCVVKVRVAW +NXPGQOUEFLUZHHSAODIWEPZLXVQLYGVOOVCCREDJZJOMCSCFFKEIEAVCTPUZOWNOLJHGBJHJFBFFORGXOXXFOCAGBWEFCIDEKDLB +PTXSUINQAJURNFQPMMSPLZTQAHCIOFJUEFFZGIHTSJNIEXQLLHRQUXXLLORJEHGQJOXSLIAVFPEJNGMMVAXDDMPXLOSTRLLFLYRM +JQNCLENGTROIKDWBMXRNJYPGZRQOREPJJPTXKVVKPYYZENEOIQKZOPXAYGFXORXRIDGATHMZFDJIOIOKVDJBHSXQMYCBYFGXWHLH +CITGTILGPGBHZMNWWHXEFPGDPJUVFBJKAQWACZHPRPJYCOLGZTBDCVHNRSUAJUQAWAPMQJDQIFPZQZEONWHIYKMXDZOMVETEFJRB +RDOTIDCFEESOKYPYCGQQKOGPMGJRITSVTKOKDSXLRLJRRHNFRFXCMDNQMCEGZFJWHZOAFBQXXPXNBSWTSUYPAWQRHAUGLNPBRSJT +HOWRIUGMOQTUYIHDWJRFBWWKWYKCICSVBVKTBIIWGFSVIFCTUKIHHUUISCOTEOYRWQXTAEBXQQOLLMOALNIYVCCHNSWIKHMYYNZO +OFRIYYXPPSRTPAYMUJSSDILKIZAYSEIOLANQIAOVKARDPGVFCSYBSNHAPGTIKLAWTTKOEADWRLAACAAFYTBTNSGFTYLYUHJXBMMA +NJFTMLUIBKDPWBXQOMBVQXCZOIREHRSZCSJOIVBXWQIBUTYBQNTZRVROHGOIZYAJWXLEATLOZJIKJMIHSLGSVTCXJWIOOGWSERRQ +DBQJNGBLRIYFIKHBEYOZQBOAGGNIZKFDHWXCFNJLBQXVLHIQNIBZSDLTTRERHNWCMLJCVBBGGAQTPUQHIRABXPQSYGSDVMBNNDFG +KPLFUYXHYGOCZPPXMWCZYNKCYBCRZVKFBHQXPGPBZFTTGEPQTJMOFHAYSQQZDMQECGXOXADYHNNXUKNBXZBYHBOULXNBJZKIZREF +LVHAMSNXJOCVRPVGJUWXFVOCUCLCZDXRPBBDRLRAVVNLOZWOHWMXYSNMXAKJYWYGILNGUJGIPKAUDVANZLFWKUWWUSQYBRCBVDIJ +QCXPLOTPPGXCUZOUSSTXHVMLHVMJTUSSOPLRKEBQSGWNGVHKANVZWYQHSHLIPWSYCPKTUKPMWPLVFLLAHXZQANFXHFNYHIQVIOYN +ZPTJJCBHXPSUPOMNRVCKXSUFCNRCRNCPTPGIDQOEQUDFNUNMJPOEKVIMUJAJZOUKMAFSLDWYMCHTSNJYUDJAHQOIXPYSRHVAFFCR +DCGMEEWXWMNOSSJNIZCINRHENPPPCYVFWYCONOPKXMFZXXIHNXIGAHAMHSBRESOETGVXWDNQLGCEOUDDJXHQIVCHRNKBFFEWILGY +SOAIQNALXRBSGAQIDQVMVDKVZCPMJNXKXRXPFZAUVQPBHHQKTPDSQROLQTUGMFQRWGVEWCYPDYDZGNNNUFKJUEHJKPLIQNRQYXHU +GKGWUCJXUKAEHLRLNDFUQPSJAZTVJRXWXQVBMRJXULEMJJPDCVTOWVFDBVLSBHZRRQUVMUQYKTJCLSGGHGCPHPHMWYAECLJIZUWV +QQNKPQRJMSOCEAYDNKPHVEGKAGCKAPDXTGVXULHUXHJPDXCSKQTCJENVTZTMRUENCSWHBEORALSREBWAJEMQDXMRKGHJGICDHKHY +YNSDSWDRLBBFUFVVICMGUCGBSVDLJNXGKXNFGVLKAVBJRRRUHKRXTPBJAKIEBAVMDIOJLIUDABCGNPNJIYBCXMOOWKRPHPYSWRDC +BORWTNBISSLTVKBRTLWKRNCEDCNEGCIYJIPDICFAVNOISYAHWBLGMNFKXZYTTWJOBEPNMSJEJMHXVPGOJOLQQQVXFGEULANQIAOD +OQETOJHCZXGTUKIWGMEVVMXCURISUOFQSAWZWDMZWVYHZMPEIMWKJDGERODVVUXYRTYLCRGYQQOIOFZSSZRAIESWBQOAIQNALJNR +HEYWHPLLPCUEOCBAOWGAYEJZQJHLVNMVQNSQQGGUBOIMDPFLOVSQGBLYAMBRYJDVOXOQINLJAVYALAKHPKOYNKGXIISSJNGKHYMS +IQVRYKXCUFIRNENEXFJTMOTJWYXSMTDHHPRHWIXETWVVIXZELKLLWRWQYGBCGJNYSUQEFCOUDNIJMLJNLAWSYJGULKBCFPYVSSMW +WQHGWRQFWFOTGPBBSJBDUKOMBXNRPIMCGPGVZFADWTBVIEMVTBXVAFQDDMJALCOMZTXUFFKBQQZDFAMTFWEXTHBKNWRLUVITQXLN +OPPJQKNGHWWPENVQIABJCQNKXNPWOWRFEOKQPQLANQIAORGGOLAYCEGZBHZVLPBERWYIJNJUNXKULUQOJLTNRDZDEYWEMYCHJLLB +LJISOAQLXJEFXVTOZSICOLQIJEXUANJWIFSIMGUQWHBXUDWOEILYFUZTGDZDSPLZPDPXBLFAXLEFQFEPDSJQWEQMXKKHCXHMSATM +UMUJENPBYKZLWAJAXJKDIYCBREBPOETQHMRHLKSEZUIPRGWIZDDQLSJAPKPBWMJMPZWLNFLFCQOCDBMLIHIYCXUJLFLPZVGWBKMY +WHZJLKEWUPETVUREKVKCLBNYFLWCERVIPUDINNWGQTUHWXCTDVTMYATYUZLMVLOHKBOGIZCQDOWFBCWJAVUXYUEVRKPOXCKHAWZC +RPLNLCUHJRADHJNSDPZXIKXGUKEJZCFJQASVUBSNLXCJXVCJZXGMRYRLOBCNGPDUJQVEFKMYHNZGZOAIQNALQDHTBWJXPKJLFXJY +MKCEZEDAFGSOCORWJGMOKWPVVBVDYZDZHPXFWJBDELHPGOQHMBAHUUUJMGXAEKZCTQTBXNVYUIQUVZGXSKQXJWRUPSFIJDYIAORC +GKFKQNXPJWOPPBTUKTHUBIROSYOVFEMJBRREWICJPCIOSTWPAUSKTRQULXPWRSXHSRYBCWYCYOTCTPFSQLDIILIGMEVZKYSOYRPH +SFDSCSMLLNARCCGCBJOGZAEQTGNGSFAQIXLPDBSWZDTYVASYYPVBRFBTIAGGWONGSVKCJDBBLYKAIOXUATGMALZXFOHZFTXALCFU +CUSSTLCRYPDTFSFJFENKJWTEBOBEPLSNXLALQWCKSLVMZQDJITHZKVCCQXTEXOSVAUFYAZXJUOAPPVEEWOIIMOSZZMCOQBRUXWKG +PDOFSCKKJJTRYRWGLEZODQTJSIMXIAOLNMLPHBAYLPTTLPYWILSEIIQVSXNHIJEORVCNJHYXRBIZZJTADGMRTSXVRXYGVQQNUEIC +IHNJOQXUXTXFPALCHOELNVMWDWQTEARUKPIFWXJSMWZLMNLAODUTKNZDYRFRLGBLIBGIBXJBOYMLYLANQIAORORYKSJPOOOAMVRN +IWIUHLYJKTQGVJBDPROSRGZUFITDIBCDPICNEFIGHWGSROWBYKUCLCQYLJXLHLXSCTJWKDLHHMLDBZCVDKPXYYASHUUMUJMVSXAD +GXOYXQFEBFIEJJLHBNGSYALOUXNQBXXZAAZJXENJJVVGFVHOTKSLEGLJVSJCQHSSZFEIOGBOGWSPIRENQAAWRQFBEFEXBKGMSTRC +PYIANSGMNKBCDPHWDUPKICQEUDNZPNGRUJYSZIRLXGXXITAFBCANGDLVAQLDPVTJNSAUZMBBNOBBOERSHQIOLBVTSPPJKVCMXUBS +IKMDIYSNCJZKJKJQMTIKEPRUNAHJUSWJHSLWIVWHYAYLOIOGSZVWKQWXZDBPHWZRAIPMXDJHBIISVJWVEVZAEGAKCYYMNZARBZPC +DLDFVQDFDMVHYVOWEKMFKWUXLTPWIVKPRZZXOLMDAPAIQEKJHCHYAGJDBOFWDGNEGQGOOKWSKLTLREMGGTVJFHAIBCQKNZVRCZYS +FBQASGNCCBBGNKJHCDBTGBIIWKMPHDABKEWDEPYEAVKNMPATUZZUOEHGUGAZNECSGUCIIJPMMRAMTVADMTCRJCBWDLWWFNFOWMVZ +XFJFBGDAVGGAIZHAUIYENDZTRUWHPQUFWCHOXNCWYNAWVPLBLNQKQDTKQQKXNFXCTBGRWUZFHNRBDNLNKQVOLLGBBJQIYOBCEIKO +CURAGWXMLYBSIZLAXFONZZMQMRNNSRQKRHQGFGZUTLONAYRKSSOWAMKZBSGOOYQDPTBHGPBNQEDCZHRTOXREOFJEKJVIZXZBCJPN +KGYBZTZRKOGBETJRUWRNUCIFKIMCZGYTZLCZYGCGKVZRJIFZQIQPTCPPUHYWIXBOFFGSGSAIMNGKKUUROAVNJUQQNSWJRZIZEHAF +DDAOBVCPOVODVJFLSNPJXHWQBHILWZAHQQMTQASNADZLZNXJLJMFCOUWOZJCMVVTYCKTUBABWLCEBNYWAMOLNBQQYBRUJCQCZALE +TVVRPMYFIKINHIUEJBDLTCUMMUWICIUVCZNIQIUEWVAHLANQIAONMEYJWPDAFXVNOSOFDOCESSLGZPTJINBUAFWWWMPTYALZIGVD +DCZGKILMBFXIQQFEKJBIUDEMIFCANVGNYZAYSQFMNNQFEPZFUUVGTBKSMDXITBLANQIAOQUKTPNYPOWSQQYWWMJHSDYVFDJYXBAF +VGYXAMDRRZWVIHNQPZZWRNWBTROOJOLNUGXBILZKQEGIQSYGKZGODPWBJSCMRRWSSQURUFIAFQGEZLGZNOEQMNQEYUKPEQPPVAMO +SYSFUAJFKIPUJVQSZRWQCJYAUMLDDNOKODDXIEQIFLANQIAOZFUNKUBVDBLMJOAUTVCZVLKJRQIORQPGAVCEYVNYUZHXILHERYEC +GJEKWEKIJNIWUXZNVIWIAANHIOSOLATSQFSSCTAKESUTSPPYFHEHLVLIBJZEEBCOWMNHFTZMAPKFUPNFLTFFJQRVJHAKDVMGGUIX +KAKXXNKSOAIQNALLWKWGVACYWBQEVTFSEUCYRORQTHWFUJFLQHONWZEKPLSNPRPBOMOFFCPMKXFZBKIERBKDYFKYUEYVYRPMOAQI +WNICDLQKZXGTKDLIEFBGELGJOAIQNALXZLGGDQIBVEULDPBWUJNTYOKFBPGMAWRRUJPPIGYCNYURNOSQRIRBAZAGWWDUHAAZQWPT +KFXZQXRMKSBUXWOUVVHSJWTLKZELGXMMAIDSJIWGCJPCBWZIEKMNUPUAFHTUMOZKJWVTIAQNOHELEMWGKJHKPNJVSRVHAUFXBUOU +XOWCZJYQLXJRUOOYSKDLDXKWTTJBYBTLKSWRUYPOYTPBGUJXBMRWNELBWADCSZDAEEFGPVRHNNLBFDDXNPDXLKQUSJAZDEUDBMBD +QIKYEKMVUHGGWZDKXFVQQNECZOAWCFUBHQMEPEPKEFSDBAYJQOSGAIHRBRAUKLQRANKMTTIOJDDXAEWTQHIYSGRRMEFTNNWCLZSI +ZFUQAQCSFNVUQMKUQWBWFQIEQVVXPOSVIDTUOBLLTGHQKEMSUWWHWRISLGRDPPQPZBANSGDWXKNYTKMWECPMPDYSCJZXPUKPWGYI +CNGVLBSCBHRLJARWSRENGHYYQDKRATERCPEAOPAJZUMOYIDHVPDMQPKKHCBAMRBGEIEXXJALMCXKPUGXYVINRORFYURXAMOJCBZQ +YJHHAWESCLMDIHVYMLAJZQSYTDEURWYPOLJCAKIKSATGVIALBLWPPKDEGSPMRLDBQNVPPCLQXKUQLQJERMYFGAETUATEBQZUMGUN +NBWUBVXYDFPLPJYLIDFVTVKKGFWMXVINLJUDUPABTSBJAJENZSXIMUJQWPEZTAVDMBBHFYTJKYFXIXQTBTTQIKQXQDPWYNMXRQDJ +OGWLZQUBJJHAQNPVRGHGPNMMJPIDGANYEEDWYPOLKLNEPYSRTQYCJLSWFRJRRGGSNSDHIXYYSNAKKBWQDDGYYMOGPUXQEUSAPSOU +CLLSELRVFZUFYVTJQKCQHNICMERWQFQNPVRPIIYKHZWJYJAFCLNSZXUHSPOZWQUMJHLKKYJENVZOCSWCTPYWIZONUUCLSUROGAYS +AZGNIMXPLPCEPULRRBHHQOBELHJZPUQAMWUASVKDXVEWAOFMAYSJFXHCNEUXUQWUESFBRUFZQLKKWHCHKOPLECCBYSLECAEZIMMI +TUUEOCEBAUKWLTSYJJPLZTIARAOZXKYYWIOXBBTZZCSAULKNEJWVQXIKUWBIWVHGNTHVBAWAVPGLHSDJDLPVHHHUNVSFKXARXLVQ +EMVDFSLANQIAOPTLFLFRKGNUZCTXWCAXHECTZFHWUFENRGQICHTYLSHZWIEGLNVDJZOMTKAAUWOHVOVOCTUKOSINSAYIAEUYORNA +VGPRMLCAQZIPRFQOZMEFTQZYVOTVFNVOIQSJCIPPQXQKJIXICUIGMHAJJMSXENCBQFIJHNZXIQMWACKDKQSEWWKMLOAUPFHAZGRY +SQWQMRSQBGGKYKGWEZYRIHWGNXRPOUMFSFGTYDLUDWPWAVQORTMQUXWKUQVNMDPWQFIZPOIHCJATODRQGZDMQXZVNXXVEJNGWZOM +PVBGZSQPCELDIWDHOQWAUHILGLPYRIICTLFSOYKQZYZOCIZPTECSWOODGGBDTSGIMYGMVPJPRPEVWOOKYFWRGXHWUCRQNYJEMSYL +XWOFXFVDXPTHYTCEGMODCILAHYBREZVVHOUPZKCNHUEVPMKHUBNRPFMWXVQACVZCALZLYMZSBLCEASPMIEFOTGKMPGWYQADSNDPR +QPHAVLZDZLKIEISFLLVWXAVBZLZIJRHGROUVGXRDLUJAXNHBBZYNCVERJGSKLWZEKGJBCWMSMLYIHZFFMIOGVIMZQBSRHQWAADYN +MNXEGTDXCDKIUDOISQXEUJWETPELKBCYFSDNJQWNNBPYMWBUPQBAAINMYZOYCEGNLFNNHZFEMSQVXJJGWBCRAVKZFWFBKMBRVBFD +HKACSZIUWUXLWKFPKOCUQJEPQDZCMUJFLVCLIOQQRVKSWFIAKNHMRLNJTKGVNTGLCVPVMBLJANOBCXUGVWBJYSIXZQVAVFWILWFB +QWNLTPMCYHRSKVHXLONRANWKWXUTHYQLIOFKGDBMSWDRCYRKVSAGGRJMWQYQFLMUIGGCLAUQAACTYLPZEOJBHMWRKHCRXGTGRMUP +CPQKJRBLYDNPUGHCRBVYBAIRVCAWLBWVWCMKNBIRKJOUGYQEBQRHDSTWXDIWGRVMLIJFBWHLHCDAAVUDLZSCGQNOUXVUIVIZZZMD +NMHGYPFUUDWKQGTAKKGCDFJFYJFNRZVXDPGZEAMWQVQZODKTXHIYFVKJSSAWVHYCUCZMLLBPXTILDYJQEMWDRUFKISOUVPUDTYPB +FDAQUBXHUJYTAYNWVIJNUSQDTQDEMUAPWXRYUWONTBDZCHZOUEGPMWEZTQWWSHAYOBWVTDIMZYNVNZKUHOFCQKPHJXWNRCGUJEKO +WSDAUGUTVWCVHEMOIRJJGTANUWTSAIXXEVZTBDHPGSRHHVWCDZVZYRJTLONIJVXEATHQXOUKBIGZONFRSZIOGWNTYAJYLQCGEOWY +``` \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/11.\345\255\227\346\257\215\351\230\265\345\210\227/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/11.\345\255\227\346\257\215\351\230\265\345\210\227/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..b9a6c44a5772a3f016337b592af3276f26869ea3 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/11.\345\255\227\346\257\215\351\230\265\345\210\227/solution.cpp" @@ -0,0 +1,51 @@ +#include <bits/stdc++.h> +using namespace std; +int main() +{ + char a[100][100]; + ifstream fin("1.txt"); //我把那些å—符放在了1.txt里,读å–它 + for (int i = 0; i < 100; i++) + { + for (int j = 0; j < 100; j++) + { + fin >> a[i][j]; + } + } + fin.close(); //å…³é—读å–文件 + int sum, i, j; + for (i = 0; i < 105; i++) //把Q放在å‰é¢ï¼Œåˆ†æˆå…«ä¸ªæ–¹å‘分别判æ–是å¦æˆä¸ºLANQIAO。 + { + for (j = 0; j < 105; j++) + { + if (a[i][j] == 'Q' && j >= 3 && j < 97) + { + if (a[i][j - 3] == 'L' && a[i][j - 2] == 'A' && a[i][j - 1] == 'N' && a[i][j + 1] == 'I' && a[i][j + 2] == 'A' && a[i][j + 3] == 'O') + sum++; + + if (a[i][j - 3] == 'O' && a[i][j - 2] == 'A' && a[i][j - 1] == 'I' && a[i][j + 1] == 'N' && a[i][j + 2] == 'A' && a[i][j + 3] == 'L') + sum++; + } + + if (a[i][j] == 'Q' && i >= 3 && i < 97) + { + if (a[i - 3][j] == 'L' && a[i - 2][j] == 'A' && a[i - 1][j] == 'N' && a[i + 1][j] == 'I' && a[i + 2][j] == 'A' && a[i + 3][j] == 'O') + sum++; + if (a[i - 3][j] == 'O' && a[i - 2][j] == 'A' && a[i - 1][j] == 'I' && a[i + 1][j] == 'N' && a[i + 2][j] == 'A' && a[i + 3][j] == 'L') + sum++; + } + + if (a[i][j] == 'Q' && i >= 3 && i < 97 && j >= 3 && j < 97) + { + if (a[i - 3][j - 3] == 'L' && a[i - 2][j - 2] == 'A' && a[i - 1][j - 1] == 'N' && a[i + 1][j + 1] == 'I' && a[i + 2][j + 2] == 'A' && a[i + 3][j + 3] == 'O') + sum++; + if (a[i - 3][j - 3] == 'O' && a[i - 2][j - 2] == 'A' && a[i - 1][j - 1] == 'I' && a[i + 1][j + 1] == 'N' && a[i + 2][j + 2] == 'A' && a[i + 3][j + 3] == 'L') + sum++; + if (a[i + 3][j - 3] == 'L' && a[i + 2][j - 2] == 'A' && a[i + 1][j - 1] == 'N' && a[i - 1][j + 1] == 'I' && a[i - 2][j + 2] == 'A' && a[i - 3][j + 3] == 'O') + sum++; + if (a[i + 3][j - 3] == 'O' && a[i + 2][j - 2] == 'A' && a[i + 1][j - 1] == 'I' && a[i - 1][j + 1] == 'N' && a[i - 2][j + 2] == 'A' && a[i - 3][j + 3] == 'L') + sum++; + } + } + } + printf("%d", sum); +} diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/11.\345\255\227\346\257\215\351\230\265\345\210\227/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/11.\345\255\227\346\257\215\351\230\265\345\210\227/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/11.\345\255\227\346\257\215\351\230\265\345\210\227/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/11.\345\255\227\346\257\215\351\230\265\345\210\227/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..97368a3a6a86fcca3ec4fbffdc061ed0e273f2ff --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/11.\345\255\227\346\257\215\351\230\265\345\210\227/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "f1f09e2a086b4304a9f3df41413c566e" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/11.\345\255\227\346\257\215\351\230\265\345\210\227/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/11.\345\255\227\346\257\215\351\230\265\345\210\227/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..d80428502bca91da77e8fabc5e05f4a2bfb55e6e --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/11.\345\255\227\346\257\215\351\230\265\345\210\227/solution.md" @@ -0,0 +1,164 @@ +# å—æ¯é˜µåˆ— + +仔细寻找,会å‘现:在下é¢çš„8x8的方阵ä¸ï¼Œéšè—ç€å—æ¯åºåˆ—:“LANQIAOâ€ã€‚ +``` +SLANQIAO +ZOEXCCGB +MOAYWKHI +BCCIPLJQ +SLANQIAO +RSFWFNYA +XIFZVWAL +COAIQNAL +``` +我们约定: åºåˆ—å¯ä»¥æ°´å¹³ï¼Œåž‚直,或者是斜å‘;并且走å‘ä¸é™ï¼ˆå®žé™…上就是有一共8ç§æ–¹å‘)。 + +上é¢ä¸€å…±æœ‰4个满足è¦æ±‚的串。 + +下é¢æœ‰ä¸€ä¸ªæ›´å¤§çš„(100x100)的å—æ¯æ–¹é˜µã€‚ + +ä½ èƒ½ç®—å‡ºå…¶ä¸éšè—了多少个“LANQIAOâ€å—? + +我就把这些东西放在了txt文件里 +``` +FOAIQNALWIKEGNICJWAOSXDHTHZPOLGYELORAUHOHCZIERPTOOJUITQJCFNIYYQHSBEABBQZPNGYQTCLSKZFCYWDGOAIADKLSNGJ +GSOZTQKCCSDWGUWAUOZKNILGVNLMCLXQVBJENIHIVLRPVVXXFTHQUXUAVZZOFFJHYLMGTLANQIAOQQILCDCJERJASNCTLYGRMHGF +TSDFYTLVIBHKLJVVJUDMKGJZGNNSTPVLCKTOFMUEUFSVQIAUVHNVFTGBDDARPKYNNCUOYUAZXQJNOEEYKLFRMOEMHUKJTPETHLES +FKVINSLWEVGAGMKVFVIUBMYOIAFHLVNKNTYKTZWVXQWRWIGPENFXYDTKRVPKRTHMGHVYOCLDCKMEKRLGEKBYUCLOLYPAKPFSOREH +KWPUOLOVMOFBIXYACWRDYBINTMPASPCEOKHXQIGBQQMCEOIVULIEOPFSCSIHENAJCVDPJDOIWIIULFDNOZOFVAMCABVGKAKCOZMG +XWMYRTAFGFOCNHLBGNGOXPJSTWLZUNNAGIRETGXFWAQSSJPFTQAXMTQWMZWYVEPQERKSWTSCHSQOOBGXAQTBCHOEGBDVKGWJIFTG +ZWWJEIISPLMXIMGHOOGDRZFTGNDDWDWMNUFWJYJGULPHNUFSAQNNIUVAAFZIAZKFXXNWCEABGJAUMGYEIEFVQXVHHHEDYUITRCQB +XZHDPZQTOBECJVBZLACVXACZEDYOGVAVQRNWEOWGRAQYUEUESTEDQTYJUTEFOOITSHDDZHONJGBRCWNEQLZUTBNQIADKNFIOMWZR +EBFKCVNLURZSNPOLTISRPDTNUMCDGKTYRGIOVEPTUTSBAWQKWWEUWIWHAANUZUADGZEATZOQICWFUJTWNZDBKLQNELWVTBNDLNFH +PESISEATZNCDFRMXBQUKBFTIGYSFCWVHPMSUSDKPSCOMVLDOHYQVFHAJKRDTAVLIMNZBZSMLMRTLRPSLAHXDBASDMWAAYBPYVJZF +SCCWYHLQOUKBMCEYENQNJXFOMOOJMTKDSHJJOHDKEGATFZHGWJJAZJROWHAZUFGEQKPYXLCAAXHHQBDALPYUDWZQHBASBBCFGQCQ +ZKNXUBRYZVSPQHOVLAEUAUITMPWXNXJQVIBJVBCSVXKWFAFRPRWOLYVSDVTGGOFFMNQJZOBUDJLFHJTCYMPNOBHQJHGKLIKLZMLA +POCKVEQXUAVHERIAQLGJHYOOVOMTXQFRTBFSETOZICPCHZHFBWNESVJJLSVSVOOGYYABFESWNWDNYBGBNAKRCFQMTCUMIFTESVIN +JCAULIQRYUMAMAOVVWSEUTMECXSDTONRMMROQUISYEURSAYNZUVOPXLIFBDOHPXMABBLEQZGLJXQJOEYYRRRCFTEZQAOIWKRJQDL +ZNUUDWZXZZURPMHGXQGNQBIQWWNERZWULSAPIBODBFFQQIHEQKCKLJYQNXQUTAAYGRBXSLLQNOQPZJEWHETQHPXJANMJFOHINWOW +KJGAWWFSVIZHFNUWBLWYVPIWAEICCAHOEIWRADSLOZGPSVGPUBUUQAVYCHOIGINKYKJABWAQCZCXOBKTNJZQRHLUFKQLACAAOIWJ +SIKWLXQHKDFJVGBVXWDWJKUSFRQRTDJYQMNFOQQALHRLMHSDMCFLAOVKDMTKMTPVTLAZLYJNJXZCFRHHSDIXYUUSVIMIICLUJHFW +JHWUSMCFYHPIXHAPBBSHYDQCKVGQFTENLVERFVOVDCLSTQFUSEPUMTFODLZLYQXDOXAEPONIQWTDWSAWBNSZYACGSJQSHAUMIKXT +MVBNFXMFNPAYSODPXEAYNRKTEZJWMUACSIUYPIORUFPMXAOZZJPJXPFLNSKNIAMETMOVULZPQIJJIRCSYQXOEVRHCNACSBRHKYNW +KGKBTBHGWKVJYZCOVNSKUREKZEIWVLOHAMUAYKLUGHEUESICBZAHURNTJAECTHRNKSIJQFIPVZANSZYSPJWHPKHCAPEYWNXUYQSD +RRRFYQFIQSWYRQTSNGNUFOBMSLGAFWPJGYEHGASFKTJCCZPXFIQLSXNKNWCYVTETOAPCOZJNHEWOCCAWVDEZUQCLLAVUQJJTQCKJ +NMBKMUENVGXXVMQCLXPJDQIQCFWYADIFDSGINGZDJYHPUPXVRMWDIPJRWPNRYOFGYYPEAVKDEMLYRRRMNCRQXPTDSQIVKKGJWDEF +SBAEKIFZCKDOMIQKBDWVQGBYWPDIBOLQUGAQRXLJDAZMXVZXYSNWEWTNZKYREMBEUHOTFOCKEJSXCMUBCKXNGQXTQJRCRCLWJTOI +YXBFBIBRAAFNPKBLTSMCFERZURZNWHMOEHIHNQTBWXNPJGIDYDPRGEWACCBULJRACOFLANQIAOIHMYCNQHVKXSIGAMWAHUSNBBTD +QDGPTRONXHAZWOUPNBFJFEWAMFZUQZFDKAPNJUBQPWBPYGPZHKUDZZDLCCWHGAUKJCSLLFWGPYJKJQBNLCZESOGXXSQCVVKVRVAW +NXPGQOUEFLUZHHSAODIWEPZLXVQLYGVOOVCCREDJZJOMCSCFFKEIEAVCTPUZOWNOLJHGBJHJFBFFORGXOXXFOCAGBWEFCIDEKDLB +PTXSUINQAJURNFQPMMSPLZTQAHCIOFJUEFFZGIHTSJNIEXQLLHRQUXXLLORJEHGQJOXSLIAVFPEJNGMMVAXDDMPXLOSTRLLFLYRM +JQNCLENGTROIKDWBMXRNJYPGZRQOREPJJPTXKVVKPYYZENEOIQKZOPXAYGFXORXRIDGATHMZFDJIOIOKVDJBHSXQMYCBYFGXWHLH +CITGTILGPGBHZMNWWHXEFPGDPJUVFBJKAQWACZHPRPJYCOLGZTBDCVHNRSUAJUQAWAPMQJDQIFPZQZEONWHIYKMXDZOMVETEFJRB +RDOTIDCFEESOKYPYCGQQKOGPMGJRITSVTKOKDSXLRLJRRHNFRFXCMDNQMCEGZFJWHZOAFBQXXPXNBSWTSUYPAWQRHAUGLNPBRSJT +HOWRIUGMOQTUYIHDWJRFBWWKWYKCICSVBVKTBIIWGFSVIFCTUKIHHUUISCOTEOYRWQXTAEBXQQOLLMOALNIYVCCHNSWIKHMYYNZO +OFRIYYXPPSRTPAYMUJSSDILKIZAYSEIOLANQIAOVKARDPGVFCSYBSNHAPGTIKLAWTTKOEADWRLAACAAFYTBTNSGFTYLYUHJXBMMA +NJFTMLUIBKDPWBXQOMBVQXCZOIREHRSZCSJOIVBXWQIBUTYBQNTZRVROHGOIZYAJWXLEATLOZJIKJMIHSLGSVTCXJWIOOGWSERRQ +DBQJNGBLRIYFIKHBEYOZQBOAGGNIZKFDHWXCFNJLBQXVLHIQNIBZSDLTTRERHNWCMLJCVBBGGAQTPUQHIRABXPQSYGSDVMBNNDFG +KPLFUYXHYGOCZPPXMWCZYNKCYBCRZVKFBHQXPGPBZFTTGEPQTJMOFHAYSQQZDMQECGXOXADYHNNXUKNBXZBYHBOULXNBJZKIZREF +LVHAMSNXJOCVRPVGJUWXFVOCUCLCZDXRPBBDRLRAVVNLOZWOHWMXYSNMXAKJYWYGILNGUJGIPKAUDVANZLFWKUWWUSQYBRCBVDIJ +QCXPLOTPPGXCUZOUSSTXHVMLHVMJTUSSOPLRKEBQSGWNGVHKANVZWYQHSHLIPWSYCPKTUKPMWPLVFLLAHXZQANFXHFNYHIQVIOYN +ZPTJJCBHXPSUPOMNRVCKXSUFCNRCRNCPTPGIDQOEQUDFNUNMJPOEKVIMUJAJZOUKMAFSLDWYMCHTSNJYUDJAHQOIXPYSRHVAFFCR +DCGMEEWXWMNOSSJNIZCINRHENPPPCYVFWYCONOPKXMFZXXIHNXIGAHAMHSBRESOETGVXWDNQLGCEOUDDJXHQIVCHRNKBFFEWILGY +SOAIQNALXRBSGAQIDQVMVDKVZCPMJNXKXRXPFZAUVQPBHHQKTPDSQROLQTUGMFQRWGVEWCYPDYDZGNNNUFKJUEHJKPLIQNRQYXHU +GKGWUCJXUKAEHLRLNDFUQPSJAZTVJRXWXQVBMRJXULEMJJPDCVTOWVFDBVLSBHZRRQUVMUQYKTJCLSGGHGCPHPHMWYAECLJIZUWV +QQNKPQRJMSOCEAYDNKPHVEGKAGCKAPDXTGVXULHUXHJPDXCSKQTCJENVTZTMRUENCSWHBEORALSREBWAJEMQDXMRKGHJGICDHKHY +YNSDSWDRLBBFUFVVICMGUCGBSVDLJNXGKXNFGVLKAVBJRRRUHKRXTPBJAKIEBAVMDIOJLIUDABCGNPNJIYBCXMOOWKRPHPYSWRDC +BORWTNBISSLTVKBRTLWKRNCEDCNEGCIYJIPDICFAVNOISYAHWBLGMNFKXZYTTWJOBEPNMSJEJMHXVPGOJOLQQQVXFGEULANQIAOD +OQETOJHCZXGTUKIWGMEVVMXCURISUOFQSAWZWDMZWVYHZMPEIMWKJDGERODVVUXYRTYLCRGYQQOIOFZSSZRAIESWBQOAIQNALJNR +HEYWHPLLPCUEOCBAOWGAYEJZQJHLVNMVQNSQQGGUBOIMDPFLOVSQGBLYAMBRYJDVOXOQINLJAVYALAKHPKOYNKGXIISSJNGKHYMS +IQVRYKXCUFIRNENEXFJTMOTJWYXSMTDHHPRHWIXETWVVIXZELKLLWRWQYGBCGJNYSUQEFCOUDNIJMLJNLAWSYJGULKBCFPYVSSMW +WQHGWRQFWFOTGPBBSJBDUKOMBXNRPIMCGPGVZFADWTBVIEMVTBXVAFQDDMJALCOMZTXUFFKBQQZDFAMTFWEXTHBKNWRLUVITQXLN +OPPJQKNGHWWPENVQIABJCQNKXNPWOWRFEOKQPQLANQIAORGGOLAYCEGZBHZVLPBERWYIJNJUNXKULUQOJLTNRDZDEYWEMYCHJLLB +LJISOAQLXJEFXVTOZSICOLQIJEXUANJWIFSIMGUQWHBXUDWOEILYFUZTGDZDSPLZPDPXBLFAXLEFQFEPDSJQWEQMXKKHCXHMSATM +UMUJENPBYKZLWAJAXJKDIYCBREBPOETQHMRHLKSEZUIPRGWIZDDQLSJAPKPBWMJMPZWLNFLFCQOCDBMLIHIYCXUJLFLPZVGWBKMY +WHZJLKEWUPETVUREKVKCLBNYFLWCERVIPUDINNWGQTUHWXCTDVTMYATYUZLMVLOHKBOGIZCQDOWFBCWJAVUXYUEVRKPOXCKHAWZC +RPLNLCUHJRADHJNSDPZXIKXGUKEJZCFJQASVUBSNLXCJXVCJZXGMRYRLOBCNGPDUJQVEFKMYHNZGZOAIQNALQDHTBWJXPKJLFXJY +MKCEZEDAFGSOCORWJGMOKWPVVBVDYZDZHPXFWJBDELHPGOQHMBAHUUUJMGXAEKZCTQTBXNVYUIQUVZGXSKQXJWRUPSFIJDYIAORC +GKFKQNXPJWOPPBTUKTHUBIROSYOVFEMJBRREWICJPCIOSTWPAUSKTRQULXPWRSXHSRYBCWYCYOTCTPFSQLDIILIGMEVZKYSOYRPH +SFDSCSMLLNARCCGCBJOGZAEQTGNGSFAQIXLPDBSWZDTYVASYYPVBRFBTIAGGWONGSVKCJDBBLYKAIOXUATGMALZXFOHZFTXALCFU +CUSSTLCRYPDTFSFJFENKJWTEBOBEPLSNXLALQWCKSLVMZQDJITHZKVCCQXTEXOSVAUFYAZXJUOAPPVEEWOIIMOSZZMCOQBRUXWKG +PDOFSCKKJJTRYRWGLEZODQTJSIMXIAOLNMLPHBAYLPTTLPYWILSEIIQVSXNHIJEORVCNJHYXRBIZZJTADGMRTSXVRXYGVQQNUEIC +IHNJOQXUXTXFPALCHOELNVMWDWQTEARUKPIFWXJSMWZLMNLAODUTKNZDYRFRLGBLIBGIBXJBOYMLYLANQIAORORYKSJPOOOAMVRN +IWIUHLYJKTQGVJBDPROSRGZUFITDIBCDPICNEFIGHWGSROWBYKUCLCQYLJXLHLXSCTJWKDLHHMLDBZCVDKPXYYASHUUMUJMVSXAD +GXOYXQFEBFIEJJLHBNGSYALOUXNQBXXZAAZJXENJJVVGFVHOTKSLEGLJVSJCQHSSZFEIOGBOGWSPIRENQAAWRQFBEFEXBKGMSTRC +PYIANSGMNKBCDPHWDUPKICQEUDNZPNGRUJYSZIRLXGXXITAFBCANGDLVAQLDPVTJNSAUZMBBNOBBOERSHQIOLBVTSPPJKVCMXUBS +IKMDIYSNCJZKJKJQMTIKEPRUNAHJUSWJHSLWIVWHYAYLOIOGSZVWKQWXZDBPHWZRAIPMXDJHBIISVJWVEVZAEGAKCYYMNZARBZPC +DLDFVQDFDMVHYVOWEKMFKWUXLTPWIVKPRZZXOLMDAPAIQEKJHCHYAGJDBOFWDGNEGQGOOKWSKLTLREMGGTVJFHAIBCQKNZVRCZYS +FBQASGNCCBBGNKJHCDBTGBIIWKMPHDABKEWDEPYEAVKNMPATUZZUOEHGUGAZNECSGUCIIJPMMRAMTVADMTCRJCBWDLWWFNFOWMVZ +XFJFBGDAVGGAIZHAUIYENDZTRUWHPQUFWCHOXNCWYNAWVPLBLNQKQDTKQQKXNFXCTBGRWUZFHNRBDNLNKQVOLLGBBJQIYOBCEIKO +CURAGWXMLYBSIZLAXFONZZMQMRNNSRQKRHQGFGZUTLONAYRKSSOWAMKZBSGOOYQDPTBHGPBNQEDCZHRTOXREOFJEKJVIZXZBCJPN +KGYBZTZRKOGBETJRUWRNUCIFKIMCZGYTZLCZYGCGKVZRJIFZQIQPTCPPUHYWIXBOFFGSGSAIMNGKKUUROAVNJUQQNSWJRZIZEHAF +DDAOBVCPOVODVJFLSNPJXHWQBHILWZAHQQMTQASNADZLZNXJLJMFCOUWOZJCMVVTYCKTUBABWLCEBNYWAMOLNBQQYBRUJCQCZALE +TVVRPMYFIKINHIUEJBDLTCUMMUWICIUVCZNIQIUEWVAHLANQIAONMEYJWPDAFXVNOSOFDOCESSLGZPTJINBUAFWWWMPTYALZIGVD +DCZGKILMBFXIQQFEKJBIUDEMIFCANVGNYZAYSQFMNNQFEPZFUUVGTBKSMDXITBLANQIAOQUKTPNYPOWSQQYWWMJHSDYVFDJYXBAF +VGYXAMDRRZWVIHNQPZZWRNWBTROOJOLNUGXBILZKQEGIQSYGKZGODPWBJSCMRRWSSQURUFIAFQGEZLGZNOEQMNQEYUKPEQPPVAMO +SYSFUAJFKIPUJVQSZRWQCJYAUMLDDNOKODDXIEQIFLANQIAOZFUNKUBVDBLMJOAUTVCZVLKJRQIORQPGAVCEYVNYUZHXILHERYEC +GJEKWEKIJNIWUXZNVIWIAANHIOSOLATSQFSSCTAKESUTSPPYFHEHLVLIBJZEEBCOWMNHFTZMAPKFUPNFLTFFJQRVJHAKDVMGGUIX +KAKXXNKSOAIQNALLWKWGVACYWBQEVTFSEUCYRORQTHWFUJFLQHONWZEKPLSNPRPBOMOFFCPMKXFZBKIERBKDYFKYUEYVYRPMOAQI +WNICDLQKZXGTKDLIEFBGELGJOAIQNALXZLGGDQIBVEULDPBWUJNTYOKFBPGMAWRRUJPPIGYCNYURNOSQRIRBAZAGWWDUHAAZQWPT +KFXZQXRMKSBUXWOUVVHSJWTLKZELGXMMAIDSJIWGCJPCBWZIEKMNUPUAFHTUMOZKJWVTIAQNOHELEMWGKJHKPNJVSRVHAUFXBUOU +XOWCZJYQLXJRUOOYSKDLDXKWTTJBYBTLKSWRUYPOYTPBGUJXBMRWNELBWADCSZDAEEFGPVRHNNLBFDDXNPDXLKQUSJAZDEUDBMBD +QIKYEKMVUHGGWZDKXFVQQNECZOAWCFUBHQMEPEPKEFSDBAYJQOSGAIHRBRAUKLQRANKMTTIOJDDXAEWTQHIYSGRRMEFTNNWCLZSI +ZFUQAQCSFNVUQMKUQWBWFQIEQVVXPOSVIDTUOBLLTGHQKEMSUWWHWRISLGRDPPQPZBANSGDWXKNYTKMWECPMPDYSCJZXPUKPWGYI +CNGVLBSCBHRLJARWSRENGHYYQDKRATERCPEAOPAJZUMOYIDHVPDMQPKKHCBAMRBGEIEXXJALMCXKPUGXYVINRORFYURXAMOJCBZQ +YJHHAWESCLMDIHVYMLAJZQSYTDEURWYPOLJCAKIKSATGVIALBLWPPKDEGSPMRLDBQNVPPCLQXKUQLQJERMYFGAETUATEBQZUMGUN +NBWUBVXYDFPLPJYLIDFVTVKKGFWMXVINLJUDUPABTSBJAJENZSXIMUJQWPEZTAVDMBBHFYTJKYFXIXQTBTTQIKQXQDPWYNMXRQDJ +OGWLZQUBJJHAQNPVRGHGPNMMJPIDGANYEEDWYPOLKLNEPYSRTQYCJLSWFRJRRGGSNSDHIXYYSNAKKBWQDDGYYMOGPUXQEUSAPSOU +CLLSELRVFZUFYVTJQKCQHNICMERWQFQNPVRPIIYKHZWJYJAFCLNSZXUHSPOZWQUMJHLKKYJENVZOCSWCTPYWIZONUUCLSUROGAYS +AZGNIMXPLPCEPULRRBHHQOBELHJZPUQAMWUASVKDXVEWAOFMAYSJFXHCNEUXUQWUESFBRUFZQLKKWHCHKOPLECCBYSLECAEZIMMI +TUUEOCEBAUKWLTSYJJPLZTIARAOZXKYYWIOXBBTZZCSAULKNEJWVQXIKUWBIWVHGNTHVBAWAVPGLHSDJDLPVHHHUNVSFKXARXLVQ +EMVDFSLANQIAOPTLFLFRKGNUZCTXWCAXHECTZFHWUFENRGQICHTYLSHZWIEGLNVDJZOMTKAAUWOHVOVOCTUKOSINSAYIAEUYORNA +VGPRMLCAQZIPRFQOZMEFTQZYVOTVFNVOIQSJCIPPQXQKJIXICUIGMHAJJMSXENCBQFIJHNZXIQMWACKDKQSEWWKMLOAUPFHAZGRY +SQWQMRSQBGGKYKGWEZYRIHWGNXRPOUMFSFGTYDLUDWPWAVQORTMQUXWKUQVNMDPWQFIZPOIHCJATODRQGZDMQXZVNXXVEJNGWZOM +PVBGZSQPCELDIWDHOQWAUHILGLPYRIICTLFSOYKQZYZOCIZPTECSWOODGGBDTSGIMYGMVPJPRPEVWOOKYFWRGXHWUCRQNYJEMSYL +XWOFXFVDXPTHYTCEGMODCILAHYBREZVVHOUPZKCNHUEVPMKHUBNRPFMWXVQACVZCALZLYMZSBLCEASPMIEFOTGKMPGWYQADSNDPR +QPHAVLZDZLKIEISFLLVWXAVBZLZIJRHGROUVGXRDLUJAXNHBBZYNCVERJGSKLWZEKGJBCWMSMLYIHZFFMIOGVIMZQBSRHQWAADYN +MNXEGTDXCDKIUDOISQXEUJWETPELKBCYFSDNJQWNNBPYMWBUPQBAAINMYZOYCEGNLFNNHZFEMSQVXJJGWBCRAVKZFWFBKMBRVBFD +HKACSZIUWUXLWKFPKOCUQJEPQDZCMUJFLVCLIOQQRVKSWFIAKNHMRLNJTKGVNTGLCVPVMBLJANOBCXUGVWBJYSIXZQVAVFWILWFB +QWNLTPMCYHRSKVHXLONRANWKWXUTHYQLIOFKGDBMSWDRCYRKVSAGGRJMWQYQFLMUIGGCLAUQAACTYLPZEOJBHMWRKHCRXGTGRMUP +CPQKJRBLYDNPUGHCRBVYBAIRVCAWLBWVWCMKNBIRKJOUGYQEBQRHDSTWXDIWGRVMLIJFBWHLHCDAAVUDLZSCGQNOUXVUIVIZZZMD +NMHGYPFUUDWKQGTAKKGCDFJFYJFNRZVXDPGZEAMWQVQZODKTXHIYFVKJSSAWVHYCUCZMLLBPXTILDYJQEMWDRUFKISOUVPUDTYPB +FDAQUBXHUJYTAYNWVIJNUSQDTQDEMUAPWXRYUWONTBDZCHZOUEGPMWEZTQWWSHAYOBWVTDIMZYNVNZKUHOFCQKPHJXWNRCGUJEKO +WSDAUGUTVWCVHEMOIRJJGTANUWTSAIXXEVZTBDHPGSRHHVWCDZVZYRJTLONIJVXEATHQXOUKBIGZONFRSZIOGWNTYAJYLQCGEOWY +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +41 +``` + +## 选项 + +### A + +```cpp +38 +``` + +### B + +```cpp +39 +``` + +### C + +```cpp +40 +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/12.\345\255\227\347\254\246\344\270\262\347\274\226\347\240\201/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/12.\345\255\227\347\254\246\344\270\262\347\274\226\347\240\201/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..dab733ccbcf6ce9f4c0e955ccb05b90b310c593d --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/12.\345\255\227\347\254\246\344\270\262\347\274\226\347\240\201/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-d27bd096aa7a423bac3d435800cc8501", + "keywords": [ + "è“æ¡¥æ¯", + "å—符串编ç " + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/12.\345\255\227\347\254\246\344\270\262\347\274\226\347\240\201/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/12.\345\255\227\347\254\246\344\270\262\347\274\226\347\240\201/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..c221a64bbc9fb1b44dbb45b002d9708f06ad24cc --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/12.\345\255\227\347\254\246\344\270\262\347\274\226\347\240\201/desc.md" @@ -0,0 +1,32 @@ +#### 问题æè¿° +å°æ˜Žå‘明了一ç§ç»™ç”±å…¨å¤§å†™å—æ¯ç»„æˆçš„å—符串编ç 的方法。 + +对于æ¯ä¸€ä¸ªå¤§å†™å—æ¯ï¼Œå°æ˜Žå°†å®ƒè½¬æ¢æˆå®ƒåœ¨ 26 个英文å—æ¯ä¸åºå·ï¼Œå³ A → 1, B → 2, … Z →26。 + +è¿™æ ·ä¸€ä¸ªå—符串就能被转化æˆä¸€ä¸ªæ•°å—åºåˆ—:比如 ABCXYZ → 123242526。 + +现在给定一个转æ¢åŽçš„æ•°å—åºåˆ—,å°æ˜Žæƒ³è¿˜åŽŸå‡ºåŽŸæœ¬çš„å—符串。 + +å½“ç„¶è¿™æ ·çš„è¿˜åŽŸæœ‰å¯èƒ½å˜åœ¨å¤šä¸ªç¬¦åˆæ¡ä»¶çš„å—符串。 + +å°æ˜Žå¸Œæœ›æ‰¾å‡ºå…¶ä¸å—å…¸åºæœ€å¤§çš„å—符串。 + +#### è¾“å…¥æ ¼å¼ +一个数å—åºåˆ—。 + +#### è¾“å‡ºæ ¼å¼ +一个åªåŒ…å«å¤§å†™å—æ¯çš„å—符串,代表ç”案 + +#### æ ·ä¾‹è¾“å…¥ +``` +123242526 +``` +#### æ ·ä¾‹è¾“å‡º +``` +LCXYZ +``` +#### æ•°æ®èŒƒå›´ +``` +对于 20% 的评测用例,输入的长度ä¸è¶…过 20。 +对于所有评测用例,输入的长度ä¸è¶…过 200000。 +``` \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/12.\345\255\227\347\254\246\344\270\262\347\274\226\347\240\201/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/12.\345\255\227\347\254\246\344\270\262\347\274\226\347\240\201/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..84d13fcc3332257931ad68db0ca03670baf4e252 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/12.\345\255\227\347\254\246\344\270\262\347\274\226\347\240\201/solution.cpp" @@ -0,0 +1,36 @@ +#include <iostream> +#include <cstring> +using namespace std; + +const int N = 200010; + +char op[27] = {'0', + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', + 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'}; + +int main() +{ + string s; + cin >> s; + + string ans; + for (int i = 0; i < s.size(); i++) + { + if (i + 1 < s.size()) + { + int t = (s[i] - '0') * 10 + (s[i + 1] - '0'); + if (t <= 26) + { + ans += op[t]; + i++; + } + else + ans += op[s[i] - '0']; + } + else + ans += op[s[i] - '0']; + } + + cout << ans << endl; + return 0; +} diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/12.\345\255\227\347\254\246\344\270\262\347\274\226\347\240\201/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/12.\345\255\227\347\254\246\344\270\262\347\274\226\347\240\201/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/12.\345\255\227\347\254\246\344\270\262\347\274\226\347\240\201/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/12.\345\255\227\347\254\246\344\270\262\347\274\226\347\240\201/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..94ac6c97400b359c42b1fd53182f92d83eba02c0 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/12.\345\255\227\347\254\246\344\270\262\347\274\226\347\240\201/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "eefc0335733a482fa5ef4c6b6747f414" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/12.\345\255\227\347\254\246\344\270\262\347\274\226\347\240\201/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/12.\345\255\227\347\254\246\344\270\262\347\274\226\347\240\201/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..e5134c39c0f55716364dfeaff62134eaaa12590c --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/12.\345\255\227\347\254\246\344\270\262\347\274\226\347\240\201/solution.md" @@ -0,0 +1,122 @@ +# å—符串编ç + + +**问题æè¿°** + +å°æ˜Žå‘明了一ç§ç»™ç”±å…¨å¤§å†™å—æ¯ç»„æˆçš„å—符串编ç 的方法。 + +对于æ¯ä¸€ä¸ªå¤§å†™å—æ¯ï¼Œå°æ˜Žå°†å®ƒè½¬æ¢æˆå®ƒåœ¨ 26 个英文å—æ¯ä¸åºå·ï¼Œå³ A → 1, B → 2, … Z →26。 + +è¿™æ ·ä¸€ä¸ªå—符串就能被转化æˆä¸€ä¸ªæ•°å—åºåˆ—:比如 ABCXYZ → 123242526。 + +现在给定一个转æ¢åŽçš„æ•°å—åºåˆ—,å°æ˜Žæƒ³è¿˜åŽŸå‡ºåŽŸæœ¬çš„å—符串。 + +å½“ç„¶è¿™æ ·çš„è¿˜åŽŸæœ‰å¯èƒ½å˜åœ¨å¤šä¸ªç¬¦åˆæ¡ä»¶çš„å—符串。 + +å°æ˜Žå¸Œæœ›æ‰¾å‡ºå…¶ä¸å—å…¸åºæœ€å¤§çš„å—符串。 + + +**è¾“å…¥æ ¼å¼** + +一个数å—åºåˆ—。 + + +**è¾“å‡ºæ ¼å¼** + +一个åªåŒ…å«å¤§å†™å—æ¯çš„å—符串,代表ç”案 + + +**æ ·ä¾‹è¾“å…¥** + +``` +123242526 +``` + +**æ ·ä¾‹è¾“å‡º** + +``` +LCXYZ +``` + +**æ•°æ®èŒƒå›´** + +``` +对于 20% 的评测用例,输入的长度ä¸è¶…过 20。 +对于所有评测用例,输入的长度ä¸è¶…过 200000。 +``` + +以下程åºå®žçŽ°äº†è¿™ä¸€åŠŸèƒ½ï¼Œè¯·ä½ 补全空白处内容: + +```cpp +#include <bits/stdc++.h> +using namespace std; + +int main() +{ + string in; + string re = ""; + cin >> in; + int len = in.length(); + + in = in + 'Z'; + for (int i = 0; i < len;) + { + int temp = int(in[i] - '0') * 10 + int(in[i + 1] - '0'); + if (temp > 26) + { + re = re + char(in[i] - '0' + 'A' - 1); + i++; + } + else + { + __________________ + } + } + cout << re; + return 0; +} +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +re = re + char(temp + 'A' - 1); +i += 2; +``` + +## 选项 + +### A + +```cpp +re = re + char(temp + 'A' - 1); +i += 1; +``` + +### B + +```cpp +re = re + char(temp + 'A'); +i += 1; +``` + +### C + +```cpp +re = re + char(temp + 'A'); +i += 2; +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/8.\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/8.\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..7419fb254e9fa3c717f36967e05d8f55e3e523bd --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/8.\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-af235ccf483e404a8ab217aead930d8c", + "keywords": [ + "è“æ¡¥æ¯", + "æ ¼åä¸è¾“出" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/8.\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/8.\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..e577b280329b94d24eeaeab6b3dd232682f22300 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/8.\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/desc.md" @@ -0,0 +1,4 @@ +StringInGrid函数会在一个指定大å°çš„æ ¼åä¸æ‰“å°æŒ‡å®šçš„å—符串。 è¦æ±‚å—符串在水平ã€åž‚直两个方å‘上都居ä¸ã€‚ 如果å—符串太长,就截æ–。 如果ä¸èƒ½æ°å¥½å±…ä¸ï¼Œå¯ä»¥ç¨ç¨å左或者å上一点。 +输出: + + \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/8.\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/8.\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..68e2dc13a39a6fb51d6eb29cb5ddde8693182ad0 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/8.\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/solution.cpp" @@ -0,0 +1,41 @@ +#include <stdio.h> +#include <string.h> +void StringInGrid(int width, int height, const char *s) +{ + int i, k; + char buf[1000]; + strcpy(buf, s); + if (strlen(s) > width - 2) + buf[width - 2] = 0; + printf("+"); + for (i = 0; i < width - 2; i++) + printf("-"); + printf("+\n"); + for (k = 1; k < (height - 1) / 2; k++) + { + printf("|"); + for (i = 0; i < width - 2; i++) + printf(" "); + printf("|\n"); + } + printf("|"); + printf("%*s%s%*s", (width - strlen(buf) - 2) / 2, "", buf, (width - strlen(buf) - 2) / 2, ""); + printf("|\n"); + for (k = (height - 1) / 2 + 1; k < height - 1; k++) + { + printf("|"); + for (i = 0; i < width - 2; i++) + printf(" "); + printf("|\n"); + } + printf("+"); + for (i = 0; i < width - 2; i++) + printf("-"); + printf("+\n"); +} + +int main() +{ + StringInGrid(20, 6, "abcd1234"); + return 0; +} diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/8.\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/8.\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/8.\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/8.\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..4cc6a77fb411c03fdf40cce70776d47ac7ba8be3 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/8.\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "9b7ed564233642b4a3be0a822719234e" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/8.\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/8.\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..34b05b38bea7e5057f7041cc30cd5715f068cd6b --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/8.\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/solution.md" @@ -0,0 +1,92 @@ +# æ ¼åä¸è¾“出 + +StringInGrid函数会在一个指定大å°çš„æ ¼åä¸æ‰“å°æŒ‡å®šçš„å—符串。 è¦æ±‚å—符串在水平ã€åž‚直两个方å‘上都居ä¸ã€‚ 如果å—符串太长,就截æ–。 如果ä¸èƒ½æ°å¥½å±…ä¸ï¼Œå¯ä»¥ç¨ç¨å左或者å上一点。 +输出: + + + +以下程åºå®žçŽ°äº†è¿™ä¸€åŠŸèƒ½ï¼Œè¯·ä½ 补全空白处内容: + +```cpp +#include <stdio.h> +#include <string.h> +void StringInGrid(int width, int height, const char *s) +{ + int i, k; + char buf[1000]; + strcpy(buf, s); + if (strlen(s) > width - 2) + buf[width - 2] = 0; + printf("+"); + for (i = 0; i < width - 2; i++) + printf("-"); + printf("+\n"); + for (k = 1; k < (height - 1) / 2; k++) + { + printf("|"); + for (i = 0; i < width - 2; i++) + printf(" "); + printf("|\n"); + } + printf("|"); + printf("%*s%s%*s", __________________; + printf("|\n"); + for (k = (height - 1) / 2 + 1; k < height - 1; k++) + { + printf("|"); + for (i = 0; i < width - 2; i++) + printf(" "); + printf("|\n"); + } + printf("+"); + for (i = 0; i < width - 2; i++) + printf("-"); + printf("+\n"); +} + +int main() +{ + StringInGrid(20, 6, "abcd1234"); + return 0; +} +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +(width - strlen(buf) - 2) / 2, "", buf, (width - strlen(buf) - 2) / 2, "" +``` + +## 选项 + +### A + +```cpp +(width - strlen(buf) - 1) / 2, "", buf, (width - strlen(buf) - 1) / 2, "" +``` + +### B + +```cpp +(width - strlen(buf) + 1) / 2, "", buf, (width - strlen(buf) + 1) / 2, "" +``` + +### C + +```cpp +(width - strlen(buf) - 2), "", buf, (width - strlen(buf) - 2), "" +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/9.\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/9.\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..e17dae6882d30bb68ec87b6e5934d78868e86d72 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/9.\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-068d044e1db44935ab46bcfc3020fd41", + "keywords": [ + "è“æ¡¥æ¯", + "最大公共å串" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/9.\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/9.\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..1e39df5ec24d4ddbc7b97c9f69ea05c7f9d448c5 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/9.\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/desc.md" @@ -0,0 +1,9 @@ +最大公共å串长度问题就是: + +求两个串的所有å串ä¸èƒ½å¤ŸåŒ¹é…上的最大长度是多少。 + +比如:“abcdkkk†和 “baabcdadabcâ€ï¼Œ + +å¯ä»¥æ‰¾åˆ°çš„最长的公共å串是"abcd",所以最大公共å串长度为4。 + +下é¢çš„程åºæ˜¯é‡‡ç”¨çŸ©é˜µæ³•è¿›è¡Œæ±‚解的,这对串的规模ä¸å¤§çš„情况还是比较有效的解法。 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/9.\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/9.\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..2ad2cb60b0a2950832eb46bf3c04d4bd22d954b4 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/9.\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/solution.cpp" @@ -0,0 +1,33 @@ +#include <stdio.h> +#include <string.h> + +#define N 256 +int f(const char *s1, const char *s2) +{ + int a[N][N]; + int len1 = strlen(s1); + int len2 = strlen(s2); + int i, j; + + memset(a, 0, sizeof(int) * N * N); + int max = 0; + for (i = 1; i <= len1; i++) + { + for (j = 1; j <= len2; j++) + { + if (s1[i - 1] == s2[j - 1]) + { + a[i][j] = a[i - 1][j - 1] + 1; //填空 + if (a[i][j] > max) + max = a[i][j]; + } + } + } + return max; +} + +int main() +{ + printf("%d\n", f("abcdkkk", "baabcdadabc")); + return 0; +} diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/9.\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/9.\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/9.\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/9.\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..fdad8013b8be81def334e1b482e261d6e32e314c --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/9.\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "6be1237b0e294a2f92408c026803ce22" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/9.\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/9.\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..394dcdf262d16eeebae66c668347d0643812f060 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/2.\350\223\235\346\241\245\346\235\257-\345\255\227\347\254\246\344\270\262/9.\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/solution.md" @@ -0,0 +1,89 @@ +# 最大公共å串 + +最大公共å串长度问题就是: + +求两个串的所有å串ä¸èƒ½å¤ŸåŒ¹é…上的最大长度是多少。 + +比如:“abcdkkk†和 “baabcdadabcâ€ï¼Œ + +å¯ä»¥æ‰¾åˆ°çš„最长的公共å串是"abcd",所以最大公共å串长度为4。 + +下é¢çš„程åºæ˜¯é‡‡ç”¨çŸ©é˜µæ³•è¿›è¡Œæ±‚解的,这对串的规模ä¸å¤§çš„情况还是比较有效的解法。 + +è¯·ä½ è¡¥å…¨ç©ºç™½å¤„çš„å†…å®¹ï¼š + +```cpp +#include <stdio.h> +#include <string.h> + +#define N 256 +int f(const char *s1, const char *s2) +{ + int a[N][N]; + int len1 = strlen(s1); + int len2 = strlen(s2); + int i, j; + + memset(a, 0, sizeof(int) * N * N); + int max = 0; + for (i = 1; i <= len1; i++) + { + for (j = 1; j <= len2; j++) + { + if (s1[i - 1] == s2[j - 1]) + { + __________________ + if (a[i][j] > max) + max = a[i][j]; + } + } + } + return max; +} + +int main() +{ + printf("%d\n", f("abcdkkk", "baabcdadabc")); + return 0; +} +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +a[i][j] = a[i - 1][j - 1] + 1; +``` + +## 选项 + +### A + +```cpp +a[i][j] = a[i - 1][j - 1]; +``` + +### B + +```cpp +a[i][j] = a[i - 1][j] + 1; +``` + +### C + +```cpp +a[i][j] = a[i][j - 1] + 1; +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/3.\350\223\235\346\241\245\346\235\257-\351\200\222\345\275\222/9.\346\214\257\345\205\264\344\270\255\345\215\216/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/3.\350\223\235\346\241\245\346\235\257-\351\200\222\345\275\222/9.\346\214\257\345\205\264\344\270\255\345\215\216/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..3b116e7f519d1aa83dbb4628f30cd9959c9fc901 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/3.\350\223\235\346\241\245\346\235\257-\351\200\222\345\275\222/9.\346\214\257\345\205\264\344\270\255\345\215\216/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-260e61bb6bbf44e1a55b0a439e14f7ee", + "keywords": [ + "è“æ¡¥æ¯", + "振兴ä¸åŽ" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/3.\350\223\235\346\241\245\346\235\257-\351\200\222\345\275\222/9.\346\214\257\345\205\264\344\270\255\345\215\216/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/3.\350\223\235\346\241\245\346\235\257-\351\200\222\345\275\222/9.\346\214\257\345\205\264\344\270\255\345\215\216/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..4eab57685c4e6ffa00078df94823067379cbac7f --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/3.\350\223\235\346\241\245\346\235\257-\351\200\222\345\275\222/9.\346\214\257\345\205\264\344\270\255\345\215\216/desc.md" @@ -0,0 +1,15 @@ +å°æ˜Žå‚åŠ äº†å¦æ ¡çš„趣味è¿åŠ¨ä¼šï¼Œå…¶ä¸çš„ä¸€ä¸ªé¡¹ç›®æ˜¯ï¼šè·³æ ¼å。 + +地上画ç€ä¸€äº›æ ¼å,æ¯ä¸ªæ ¼å里写一个å—,如下所示: +``` +从我åšèµ·æŒ¯ +我åšèµ·æŒ¯å…´ +åšèµ·æŒ¯å…´ä¸ +起振兴ä¸åŽ +``` + +比赛时,先站在左上角的写ç€â€œä»Žâ€å—çš„æ ¼å里,å¯ä»¥æ¨ªå‘或纵å‘è·³åˆ°ç›¸é‚»çš„æ ¼å里,但ä¸èƒ½è·³åˆ°å¯¹è§’çš„æ ¼å或其它ä½ç½®ã€‚一直è¦è·³åˆ°â€œåŽâ€å—结æŸã€‚ + +è¦æ±‚跳过的路线刚好构æˆâ€œä»Žæˆ‘åšèµ·æŒ¯å…´ä¸åŽâ€è¿™å¥è¯ã€‚ + +è¯·ä½ å¸®åŠ©å°æ˜Žç®—一算他一共有多少ç§å¯èƒ½çš„跳跃路线呢? \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/3.\350\223\235\346\241\245\346\235\257-\351\200\222\345\275\222/9.\346\214\257\345\205\264\344\270\255\345\215\216/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/3.\350\223\235\346\241\245\346\235\257-\351\200\222\345\275\222/9.\346\214\257\345\205\264\344\270\255\345\215\216/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..4fe64321cfcec39ca978c5287d444f9a1f1bda1d --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/3.\350\223\235\346\241\245\346\235\257-\351\200\222\345\275\222/9.\346\214\257\345\205\264\344\270\255\345\215\216/solution.cpp" @@ -0,0 +1,28 @@ +#include <bits/stdc++.h> +using namespace std; + +int a[4][5]; +int sum; +void dfs(int row, int col, int index) +{ + if (a[row][col] == index && index == 7) + sum++; + else + { + if (row + 1 < 4) + dfs(row + 1, col, index + 1); + if (col + 1 < 5) + dfs(row, col + 1, index + 1); + } +} +int main() +{ + int row, col; + for (row = 0; row < 4; row++) + for (col = 0; col < 5; col++) + a[row][col] = row + col; + + dfs(0, 0, 0); + cout << sum << endl; + return 0; +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/3.\350\223\235\346\241\245\346\235\257-\351\200\222\345\275\222/9.\346\214\257\345\205\264\344\270\255\345\215\216/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/3.\350\223\235\346\241\245\346\235\257-\351\200\222\345\275\222/9.\346\214\257\345\205\264\344\270\255\345\215\216/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/3.\350\223\235\346\241\245\346\235\257-\351\200\222\345\275\222/9.\346\214\257\345\205\264\344\270\255\345\215\216/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/3.\350\223\235\346\241\245\346\235\257-\351\200\222\345\275\222/9.\346\214\257\345\205\264\344\270\255\345\215\216/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..6796ba29de4eb2c2306926035d1c20099a7cbb2e --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/3.\350\223\235\346\241\245\346\235\257-\351\200\222\345\275\222/9.\346\214\257\345\205\264\344\270\255\345\215\216/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "6d38c0f384384c6ea184f94b091f9544" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/3.\350\223\235\346\241\245\346\235\257-\351\200\222\345\275\222/9.\346\214\257\345\205\264\344\270\255\345\215\216/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/3.\350\223\235\346\241\245\346\235\257-\351\200\222\345\275\222/9.\346\214\257\345\205\264\344\270\255\345\215\216/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..4243dc302aa66562c3defbc4f6fb02d5824ba4aa --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/3.\350\223\235\346\241\245\346\235\257-\351\200\222\345\275\222/9.\346\214\257\345\205\264\344\270\255\345\215\216/solution.md" @@ -0,0 +1,76 @@ +# 振兴ä¸åŽ + +å°æ˜Žå‚åŠ äº†å¦æ ¡çš„趣味è¿åŠ¨ä¼šï¼Œå…¶ä¸çš„ä¸€ä¸ªé¡¹ç›®æ˜¯ï¼šè·³æ ¼å。 + +地上画ç€ä¸€äº›æ ¼å,æ¯ä¸ªæ ¼å里写一个å—,如下所示: +``` +从我åšèµ·æŒ¯ +我åšèµ·æŒ¯å…´ +åšèµ·æŒ¯å…´ä¸ +起振兴ä¸åŽ +``` + +比赛时,先站在左上角的写ç€â€œä»Žâ€å—çš„æ ¼å里,å¯ä»¥æ¨ªå‘或纵å‘è·³åˆ°ç›¸é‚»çš„æ ¼å里,但ä¸èƒ½è·³åˆ°å¯¹è§’çš„æ ¼å或其它ä½ç½®ã€‚一直è¦è·³åˆ°â€œåŽâ€å—结æŸã€‚ + +è¦æ±‚跳过的路线刚好构æˆâ€œä»Žæˆ‘åšèµ·æŒ¯å…´ä¸åŽâ€è¿™å¥è¯ã€‚ + +è¯·ä½ å¸®åŠ©å°æ˜Žç®—一算他一共有多少ç§å¯èƒ½çš„跳跃路线呢? + +以下代ç å®žçŽ°äº†è¿™ä¸€åŠŸèƒ½ï¼Œè¯·ä½ å¡«è¡¥ç©ºç™½å¤„å†…å®¹ï¼š + +```cpp +#include <iostream> +using namespace std; + +int f(int x, int y) +{ + if (x == 3 || y == 4) + return 1; + __________________ +} +int main() +{ + cout << f(0, 0) << endl; + return 0; +} +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +return f(x + 1, y) + f(x, y + 1); +``` + +## 选项 + +### A + +```cpp +return f(x - 1, y) + f(x, y - 1); +``` + +### B + +```cpp +return f(x + 1, y) + f(x, y - 1); +``` + +### C + +```cpp +return f(x + 1, y + 1) + f(x + 1, y + 1); +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/4.\350\223\235\346\241\245\346\235\257-\345\240\206\346\240\210\351\230\237\345\210\227\351\223\276\350\241\250/2.\345\271\270\350\277\220\346\225\260/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/4.\350\223\235\346\241\245\346\235\257-\345\240\206\346\240\210\351\230\237\345\210\227\351\223\276\350\241\250/2.\345\271\270\350\277\220\346\225\260/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..48732602f5c9c731ee0e94bc1107d742d7aac797 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/4.\350\223\235\346\241\245\346\235\257-\345\240\206\346\240\210\351\230\237\345\210\227\351\223\276\350\241\250/2.\345\271\270\350\277\220\346\225\260/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-1402245808fb4c3c962a23d6498eb593", + "keywords": [ + "è“æ¡¥æ¯", + "幸è¿æ•°" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/4.\350\223\235\346\241\245\346\235\257-\345\240\206\346\240\210\351\230\237\345\210\227\351\223\276\350\241\250/2.\345\271\270\350\277\220\346\225\260/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/4.\350\223\235\346\241\245\346\235\257-\345\240\206\346\240\210\351\230\237\345\210\227\351\223\276\350\241\250/2.\345\271\270\350\277\220\346\225\260/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..b15d12fff8ec56af98d245d3df070ab26678f25d --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/4.\350\223\235\346\241\245\346\235\257-\345\240\206\346\240\210\351\230\237\345\210\227\351\223\276\350\241\250/2.\345\271\270\350\277\220\346\225\260/desc.md" @@ -0,0 +1,35 @@ +#### 问题æè¿° +幸è¿æ•°æ˜¯æ³¢å…°æ•°å¦å®¶ä¹Œæ‹‰å§†å‘½å的。它采用与生æˆç´ 数类似的“ç›æ³•â€ç”Ÿæˆã€‚ +首先从1开始写出自然数1,2,3,4,5,6,… +1 就是第一个幸è¿æ•°ã€‚ +我们从2这个数开始。把所有åºå·èƒ½è¢«2æ•´é™¤çš„é¡¹åˆ é™¤ï¼Œå˜ä¸ºï¼š +1 _ 3 _ 5 _ 7 _ 9 … +把它们缩紧,é‡æ–°è®°åºï¼Œä¸ºï¼š +1 3 5 7 9 … 。 +这时,3为第2个幸è¿æ•°ï¼Œç„¶åŽæŠŠæ‰€æœ‰èƒ½è¢«3整除的åºå·ä½ç½®çš„æ•°åˆ åŽ»ã€‚æ³¨æ„,是åºå·ä½ç½®ï¼Œä¸æ˜¯é‚£ä¸ªæ•°æœ¬èº«èƒ½å¦è¢«3整除!! åˆ é™¤çš„åº”è¯¥æ˜¯5,11, 17, … +æ¤æ—¶7为第3个幸è¿æ•°ï¼Œç„¶åŽå†åˆ 去åºå·ä½ç½®èƒ½è¢«7整除的(19,39,…) +最åŽå‰©ä¸‹çš„åºåˆ—类似: +``` +1, 3, 7, 9, 13, 15, 21, 25, 31, 33, 37, 43, 49, 51, 63, 67, 69, 73, 75, 79, … +``` +#### è¾“å…¥æ ¼å¼ +输入两个æ£æ•´æ•°m n, ç”¨ç©ºæ ¼åˆ†å¼€ (m < n < 1000*1000) + +#### è¾“å‡ºæ ¼å¼ +程åºè¾“出 ä½äºŽmå’Œn之间的幸è¿æ•°çš„个数(ä¸åŒ…å«må’Œn)。 +#### æ ·ä¾‹è¾“å…¥1 +``` +1 20 +``` +#### æ ·ä¾‹è¾“å‡º1 +``` +5 +``` +#### æ ·ä¾‹è¾“å…¥2 +``` +30 69 +``` +#### æ ·ä¾‹è¾“å‡º2 +``` +8 +``` \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/4.\350\223\235\346\241\245\346\235\257-\345\240\206\346\240\210\351\230\237\345\210\227\351\223\276\350\241\250/2.\345\271\270\350\277\220\346\225\260/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/4.\350\223\235\346\241\245\346\235\257-\345\240\206\346\240\210\351\230\237\345\210\227\351\223\276\350\241\250/2.\345\271\270\350\277\220\346\225\260/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..776997f1474832ba8585b11f20f428b77f8cda5c --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/4.\350\223\235\346\241\245\346\235\257-\345\240\206\346\240\210\351\230\237\345\210\227\351\223\276\350\241\250/2.\345\271\270\350\277\220\346\225\260/solution.cpp" @@ -0,0 +1,40 @@ +#include <iostream> +using namespace std; + +int a[500005]; + +int main() +{ + int i, k = 1; //k表示aæ•°ç»„å¤§å° + int m, n, sum = 0; //sum表示幸è¿æ•°ä¸ªæ•° + int temp; + cin >> m >> n; + for (i = 1; i <= 1000000; i += 2) + { + a[k++] = i; + } + temp = 2; //当å‰å¹¸è¿æ•°æ‰€å¤„çš„åºå·ä½ç½® + while (temp <= 1000) + { + int b[500005], t = 1; //b记录幸è¿æ•° + for (i = 1; i < k; i++) + { + if (i % a[temp] != 0) //如果åºå·ä½ç½®iä¸èƒ½è¢«æŸä¸€ä¸ªå¹¸è¿æ•°æ•´é™¤ï¼Œåˆ™å°†å…¶å˜å‚¨åˆ°b数组 + b[t++] = a[i]; + } + for (i = 1; i < t; i++) + a[i] = b[i]; + temp++; + k = t; + } + for (i = 1; i <= n; i++) + { + if (a[i] > m && a[i] < n) //注æ„幸è¿æ•°çš„区间(ä¸åŒ…å«må’Œn) + { + sum++; + } + } + cout << sum << endl; + + return 0; +} diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/4.\350\223\235\346\241\245\346\235\257-\345\240\206\346\240\210\351\230\237\345\210\227\351\223\276\350\241\250/2.\345\271\270\350\277\220\346\225\260/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/4.\350\223\235\346\241\245\346\235\257-\345\240\206\346\240\210\351\230\237\345\210\227\351\223\276\350\241\250/2.\345\271\270\350\277\220\346\225\260/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/4.\350\223\235\346\241\245\346\235\257-\345\240\206\346\240\210\351\230\237\345\210\227\351\223\276\350\241\250/2.\345\271\270\350\277\220\346\225\260/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/4.\350\223\235\346\241\245\346\235\257-\345\240\206\346\240\210\351\230\237\345\210\227\351\223\276\350\241\250/2.\345\271\270\350\277\220\346\225\260/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..2ee7813bd2c8c884029d9cb5c1d706883011368b --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/4.\350\223\235\346\241\245\346\235\257-\345\240\206\346\240\210\351\230\237\345\210\227\351\223\276\350\241\250/2.\345\271\270\350\277\220\346\225\260/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "c204cf8ad83e49e7acea61c70e64926c" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/4.\350\223\235\346\241\245\346\235\257-\345\240\206\346\240\210\351\230\237\345\210\227\351\223\276\350\241\250/2.\345\271\270\350\277\220\346\225\260/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/4.\350\223\235\346\241\245\346\235\257-\345\240\206\346\240\210\351\230\237\345\210\227\351\223\276\350\241\250/2.\345\271\270\350\277\220\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..8614ddcac4c66a2d0847b90e8e8cbcddbad9dd78 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/4.\350\223\235\346\241\245\346\235\257-\345\240\206\346\240\210\351\230\237\345\210\227\351\223\276\350\241\250/2.\345\271\270\350\277\220\346\225\260/solution.md" @@ -0,0 +1,275 @@ +# 幸è¿æ•° + + +**问题æè¿°** + +幸è¿æ•°æ˜¯æ³¢å…°æ•°å¦å®¶ä¹Œæ‹‰å§†å‘½å的。它采用与生æˆç´ 数类似的“ç›æ³•â€ç”Ÿæˆã€‚ +首先从1开始写出自然数1,2,3,4,5,6,… +1 就是第一个幸è¿æ•°ã€‚ +我们从2这个数开始。把所有åºå·èƒ½è¢«2æ•´é™¤çš„é¡¹åˆ é™¤ï¼Œå˜ä¸ºï¼š +1 _ 3 _ 5 _ 7 _ 9 … +把它们缩紧,é‡æ–°è®°åºï¼Œä¸ºï¼š +1 3 5 7 9 … 。 +这时,3为第2个幸è¿æ•°ï¼Œç„¶åŽæŠŠæ‰€æœ‰èƒ½è¢«3整除的åºå·ä½ç½®çš„æ•°åˆ åŽ»ã€‚æ³¨æ„,是åºå·ä½ç½®ï¼Œä¸æ˜¯é‚£ä¸ªæ•°æœ¬èº«èƒ½å¦è¢«3整除!! åˆ é™¤çš„åº”è¯¥æ˜¯5,11, 17, … +æ¤æ—¶7为第3个幸è¿æ•°ï¼Œç„¶åŽå†åˆ 去åºå·ä½ç½®èƒ½è¢«7整除的(19,39,…) +最åŽå‰©ä¸‹çš„åºåˆ—类似: + +``` +1, 3, 7, 9, 13, 15, 21, 25, 31, 33, 37, 43, 49, 51, 63, 67, 69, 73, 75, 79, … +``` + +**è¾“å…¥æ ¼å¼** + +输入两个æ£æ•´æ•°m n, ç”¨ç©ºæ ¼åˆ†å¼€ (m < n < 1000*1000) + + +**è¾“å‡ºæ ¼å¼** + +程åºè¾“出 ä½äºŽmå’Œn之间的幸è¿æ•°çš„个数(ä¸åŒ…å«må’Œn)。 + +**æ ·ä¾‹è¾“å…¥1** + +``` +1 20 +``` + +**æ ·ä¾‹è¾“å‡º1** + +``` +5 +``` + +**æ ·ä¾‹è¾“å…¥2** + +``` +30 69 +``` + +**æ ·ä¾‹è¾“å‡º2** + +``` +8 +``` + +以下<span style="color:red">错误</span>的一项是? + +## aop + +### before + +```cpp +#include <bits/stdc++.h> +using namespace std; +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +int m, n; +int len = 0; +int main() +{ + scanf("%d %d", &m, &n); + vector<int> vc(n); + + for (int i = 1; i < n; i++) + vc[i] = 2 * i - 1; + int divided = 2; + len = n; + for (int select = 1;; ++select) + { + divided = vc[select - 1]; + + int num = 1; + for (int i = 1; i < len; i++) + if (i % divided != 0) + vc[num++] = vc[i]; + len = num; + + if (vc[select] > n) + break; + } + + int count = 0; + for (int i = 1; i < n; i++) + { + if (vc[i] >= n) + break; + if (vc[i] < n && vc[i] > m) + { + ++count; + } + } + printf("%d", count); + return 0; +} +``` + +## 选项 + +### A + +```cpp +int main() +{ + vector<int> a; + a.push_back(0); + int i, m, n, start; + cin >> m >> n; + for (i = 1; i < n; i++) + { + if (2 * i - 1 >= n) + break; + a.push_back(2 * i - 1); + } + start = 2; + int k; + vector<int> old; + do + { + old.push_back(0); + if (start > a.size() - 1) + break; + k = a[start++]; + if (k > a.size()) + break; + for (i = 1; i < a.size(); i++) + { + if (i % k) + old.push_back(a[i]); + } + a.clear(); + a.assign(old.begin(), old.end()); + old.clear(); + } while (true); + + int sum = 0; + for (i = 1; i < a.size(); i++) + if (a[i] > m) + { + sum = sum + 1; + } + cout << sum << endl; + return 0; +} +``` + +### B + +```cpp +int a[500005]; + +int main() +{ + int i, k = 1; + int m, n, sum = 0; + int temp; + cin >> m >> n; + for (i = 1; i <= 1000000; i += 2) + { + a[k++] = i; + } + temp = 2; + while (temp <= 1000) + { + int b[500005], t = 1; + for (i = 1; i < k; i++) + { + if (i % a[temp] != 0) + b[t++] = a[i]; + } + for (i = 1; i < t; i++) + a[i] = b[i]; + temp++; + k = t; + } + for (i = 1; i <= n; i++) + { + if (a[i] > m && a[i] < n) + { + sum++; + } + } + cout << sum << endl; + + return 0; +} +``` + +### C + +```cpp +struct num +{ + int order; + int value; +}; + +int main() +{ + int m, n; + cin >> m >> n; + + vector<num> numbers; + int count = 1; + for (int i = 1; i <= n; i++) + { + num tempNum; + tempNum.order = count; + tempNum.value = i; + numbers.push_back(tempNum); + count++; + } + + int index = 1, tempCount = 1, value = numbers[index].value; + + while (index <= tempCount) + { + int j, tempValue = -1; + tempCount = 1; + for (j = 1; j < n; j++) + { + if (numbers[j].order != -1) + { + + if (numbers[j].order % value == 0) + { + numbers[j].order = -1; + } + else + { + + tempCount++; + numbers[j].order = tempCount; + + if (tempCount == index + 1) + { + tempValue = numbers[j].value; + } + } + } + } + + index++; + value = tempValue; + } + + int numCount = 0; + for (int t = 0; t < n; t++) + { + if (numbers[t].order != -1 && numbers[t].value > m && numbers[t].value < n) + { + numCount++; + } + } + + cout << numCount; + return 0; +} +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/12.\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/12.\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..f86e503360c47615520a1688d24aecc9d581279a --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/12.\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-719cc75a00de4222a1007a86652c72d5", + "keywords": [ + "è“æ¡¥æ¯", + "å°æœ‹å‹æŽ’队" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/12.\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/12.\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..298aa067c2a901be6e1d23e8764171e0d0aa059f --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/12.\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/desc.md" @@ -0,0 +1,39 @@ +#### 题目æè¿° +n 个å°æœ‹å‹ç«™æˆä¸€æŽ’。 + +现在è¦æŠŠä»–们按身高从低到高的顺åºæŽ’列,但是æ¯æ¬¡åªèƒ½äº¤æ¢ä½ç½®ç›¸é‚»çš„两个å°æœ‹å‹ã€‚ + +æ¯ä¸ªå°æœ‹å‹éƒ½æœ‰ä¸€ä¸ªä¸é«˜å…´çš„程度。 + +开始的时候,所有å°æœ‹å‹çš„ä¸é«˜å…´ç¨‹åº¦éƒ½æ˜¯ 0。 + +如果æŸä¸ªå°æœ‹å‹ç¬¬ä¸€æ¬¡è¢«è¦æ±‚交æ¢ï¼Œåˆ™ä»–çš„ä¸é«˜å…´ç¨‹åº¦å¢žåŠ 1,如果第二次è¦æ±‚他交æ¢ï¼Œåˆ™ä»–çš„ä¸é«˜å…´ç¨‹åº¦å¢žåŠ 2(å³ä¸é«˜å…´ç¨‹åº¦ä¸º 3),ä¾æ¬¡ç±»æŽ¨ã€‚当è¦æ±‚æŸä¸ªå°æœ‹å‹ç¬¬ k 次交æ¢æ—¶ï¼Œä»–çš„ä¸é«˜å…´ç¨‹åº¦å¢žåŠ k。 + +请问,è¦è®©æ‰€æœ‰å°æœ‹å‹æŒ‰ä»Žä½Žåˆ°é«˜æŽ’队,他们的ä¸é«˜å…´ç¨‹åº¦ä¹‹å’Œæœ€å°æ˜¯å¤šå°‘。 + +如果有两个å°æœ‹å‹èº«é«˜ä¸€æ ·ï¼Œåˆ™ä»–们è°ç«™åœ¨è°å‰é¢æ˜¯æ²¡æœ‰å…³ç³»çš„。 + +#### è¾“å…¥æ ¼å¼ +输入的第一行包å«ä¸€ä¸ªæ•´æ•° n,表示å°æœ‹å‹çš„个数。 + +ç¬¬äºŒè¡ŒåŒ…å« n 个整数 H1,H2,…,Hn,分别表示æ¯ä¸ªå°æœ‹å‹çš„身高。 + +#### è¾“å‡ºæ ¼å¼ +输出一行,包å«ä¸€ä¸ªæ•´æ•°ï¼Œè¡¨ç¤ºå°æœ‹å‹çš„ä¸é«˜å…´ç¨‹åº¦å’Œçš„最å°å€¼ã€‚ + +#### æ•°æ®èŒƒå›´ +``` +1≤n≤100000, +0≤Hi≤1000000 +``` +#### è¾“å…¥æ ·ä¾‹ï¼š +``` +3 +3 2 1 +``` +#### è¾“å‡ºæ ·ä¾‹ï¼š +``` +9 +``` +#### æ ·ä¾‹è§£é‡Š +首先交æ¢èº«é«˜ä¸º3å’Œ2çš„å°æœ‹å‹ï¼Œå†äº¤æ¢èº«é«˜ä¸º3å’Œ1çš„å°æœ‹å‹ï¼Œå†äº¤æ¢èº«é«˜ä¸º2å’Œ1çš„å°æœ‹å‹ï¼Œæ¯ä¸ªå°æœ‹å‹çš„ä¸é«˜å…´ç¨‹åº¦éƒ½æ˜¯3,总和为9。 \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/12.\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/12.\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..5589bb39eb40ff9a98eed0d8e084e6a78a89cc9b --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/12.\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/solution.cpp" @@ -0,0 +1,45 @@ +#include <iostream> +#include <cstring> + +using namespace std; +typedef long long LL; +const int N = 1e6 + 10; +int h[N], s[N], tr[N]; //h高,s多少个大于h[i]å’Œå°äºŽh[i]的人,træ ‘çŠ¶æ•°ç»„ +int n; + +int lowbit(int x) { return x & -x; } +int add(int x) +{ + for (int i = x; i < N; i += lowbit(i)) + tr[i]++; +} //这里ä¸æ˜¯æ·»åŠ 值,支æŒè®¡ç®—次数,所以自增1 +int q(int x) +{ + int res = 0; + for (int i = x; i; i -= lowbit(i)) + res += tr[i]; + return res; +} +int main() +{ + cin >> n; + for (int i = 0; i < n; i++) + { + cin >> h[i], h[i]++; //æ ‘çŠ¶æ•°ç»„å¿…é¡»ä»Ž1开始 + + s[i] = q(N - 1) - q(h[i]); //比i大的数 + add(h[i]); + } + + memset(tr, 0, sizeof tr); //tr清零é‡å¤ä½¿ç”¨ + + for (int i = n - 1; i >= 0; i--) + s[i] += q(h[i] - 1), add(h[i]); //逆åºæ¯”较//比h[i]å°çš„æ•° + + LL res = 0; + for (int i = 0; i < n; i++) + res += (LL)s[i] * (s[i] + 1) / 2; //å…¬å¼è®¡ç®— ç´¯åŠ å› ä¸ºè¿‡å¤§æ‰€ä»¥ç”¨LL + cout << res; + + return 0; +} diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/12.\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/12.\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/12.\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/12.\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..c05e33dbd53e5310887d01f1103c1e60714fe081 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/12.\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "9f57f79e642d4087b95544e7e02b0299" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/12.\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/12.\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..940c97cf8031075826652d6c43712c52c0ae7757 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/12.\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/solution.md" @@ -0,0 +1,362 @@ +# å°æœ‹å‹æŽ’队 + + +**题目æè¿°** + +n 个å°æœ‹å‹ç«™æˆä¸€æŽ’。 + +现在è¦æŠŠä»–们按身高从低到高的顺åºæŽ’列,但是æ¯æ¬¡åªèƒ½äº¤æ¢ä½ç½®ç›¸é‚»çš„两个å°æœ‹å‹ã€‚ + +æ¯ä¸ªå°æœ‹å‹éƒ½æœ‰ä¸€ä¸ªä¸é«˜å…´çš„程度。 + +开始的时候,所有å°æœ‹å‹çš„ä¸é«˜å…´ç¨‹åº¦éƒ½æ˜¯ 0。 + +如果æŸä¸ªå°æœ‹å‹ç¬¬ä¸€æ¬¡è¢«è¦æ±‚交æ¢ï¼Œåˆ™ä»–çš„ä¸é«˜å…´ç¨‹åº¦å¢žåŠ 1,如果第二次è¦æ±‚他交æ¢ï¼Œåˆ™ä»–çš„ä¸é«˜å…´ç¨‹åº¦å¢žåŠ 2(å³ä¸é«˜å…´ç¨‹åº¦ä¸º 3),ä¾æ¬¡ç±»æŽ¨ã€‚当è¦æ±‚æŸä¸ªå°æœ‹å‹ç¬¬ k 次交æ¢æ—¶ï¼Œä»–çš„ä¸é«˜å…´ç¨‹åº¦å¢žåŠ k。 + +请问,è¦è®©æ‰€æœ‰å°æœ‹å‹æŒ‰ä»Žä½Žåˆ°é«˜æŽ’队,他们的ä¸é«˜å…´ç¨‹åº¦ä¹‹å’Œæœ€å°æ˜¯å¤šå°‘。 + +如果有两个å°æœ‹å‹èº«é«˜ä¸€æ ·ï¼Œåˆ™ä»–们è°ç«™åœ¨è°å‰é¢æ˜¯æ²¡æœ‰å…³ç³»çš„。 + + +**è¾“å…¥æ ¼å¼** + +输入的第一行包å«ä¸€ä¸ªæ•´æ•° n,表示å°æœ‹å‹çš„个数。 + +ç¬¬äºŒè¡ŒåŒ…å« n 个整数 H1,H2,…,Hn,分别表示æ¯ä¸ªå°æœ‹å‹çš„身高。 + + +**è¾“å‡ºæ ¼å¼** + +输出一行,包å«ä¸€ä¸ªæ•´æ•°ï¼Œè¡¨ç¤ºå°æœ‹å‹çš„ä¸é«˜å…´ç¨‹åº¦å’Œçš„最å°å€¼ã€‚ + + +**æ•°æ®èŒƒå›´** + +``` +1≤n≤100000, +0≤Hi≤1000000 +``` + +**è¾“å…¥æ ·ä¾‹ï¼š** + +``` +3 +3 2 1 +``` + +**è¾“å‡ºæ ·ä¾‹ï¼š** + +``` +9 +``` + +**æ ·ä¾‹è§£é‡Š** + +首先交æ¢èº«é«˜ä¸º3å’Œ2çš„å°æœ‹å‹ï¼Œå†äº¤æ¢èº«é«˜ä¸º3å’Œ1çš„å°æœ‹å‹ï¼Œå†äº¤æ¢èº«é«˜ä¸º2å’Œ1çš„å°æœ‹å‹ï¼Œæ¯ä¸ªå°æœ‹å‹çš„ä¸é«˜å…´ç¨‹åº¦éƒ½æ˜¯3,总和为9。 + +以下<span style="color:red">错误</span>的一项是? + +## aop + +### before + +```cpp +#include <bits/stdc++.h> +using namespace std; +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +#define ll long long +using namespace std; +int const MAX = 1e5 + 5; +ll cnt[MAX], ans; +int n; + +struct DATA +{ + int idx; + ll num; +} d[MAX]; + +bool cmp(DATA a, DATA b) +{ + return a.num < b.num; +} + +void Solve(int l, int mid, int r) +{ + int i = l, j = mid + 1; + while (i <= mid && j <= r) + { + if (d[i].num <= d[j].num) + i++; + else + { + cnt[d[j].idx] += (ll)(mid - i + 1); + + j++; + } + } + i = mid, j = r; + while (i >= l && j >= mid + 1) + { + if (d[i].num > d[j].num) + { + cnt[d[i].idx] += (ll)(j - mid); + i--; + } + else + j--; + } + sort(d + l, d + r + 1, cmp); + + return; +} + +void Div(int l, int r) +{ + if (l >= r) + return; + int mid = (l + r) >> 1; + Div(l, mid); + Div(mid + 1, r); + Solve(l, mid, r); +} + +int main() +{ + scanf("%d", &n); + for (int i = 0; i < n; i++) + { + scanf("%lld", &d[i].num); + d[i].idx = i; + } + ans = 0; + Div(0, n - 1); + for (int i = 0; i < n; i++) + ans += cnt[i] * cnt[i] / 2; + printf("%lld\n", ans); +} +``` + +## 选项 + +### A + +```cpp +typedef long long LL; +const int N = 1e6 + 10; +int h[N], s[N], tr[N]; +int n; + +int lowbit(int x) { return x & -x; } +int add(int x) +{ + for (int i = x; i < N; i += lowbit(i)) + tr[i]++; +} +int q(int x) +{ + int res = 0; + for (int i = x; i; i -= lowbit(i)) + res += tr[i]; + return res; +} +int main() +{ + cin >> n; + for (int i = 0; i < n; i++) + { + cin >> h[i], h[i]++; + + s[i] = q(N - 1) - q(h[i]); + add(h[i]); + } + + memset(tr, 0, sizeof tr); + + for (int i = n - 1; i >= 0; i--) + s[i] += q(h[i] - 1), add(h[i]); + + LL res = 0; + for (int i = 0; i < n; i++) + res += (LL)s[i] * (s[i] + 1) / 2; + cout << res; + + return 0; +} +``` + +### B + +```cpp +struct childInfo +{ + int location; + int valueNum; +}; + +int cnt[100005]; + +void Merge_sort1(vector<childInfo> &tempChild, int left, int right) +{ + if (left >= right - 1) + return; + int mid = (left + right) / 2; + Merge_sort1(tempChild, left, mid); + Merge_sort1(tempChild, mid, right); + int i = left, j = mid, t = 0; + childInfo *temp = new childInfo[right - left]; + while (i < mid || j < right) + { + if (j >= right || i < mid && tempChild[i].valueNum <= tempChild[j].valueNum) + temp[t++] = tempChild[i++]; + else + { + cnt[tempChild[j].location] += mid - i; + temp[t++] = tempChild[j++]; + } + } + t = 0; + for (int k = left; k < right; k++) + tempChild[k] = temp[t++]; + delete[] temp; +} + +void Merge_sort2(vector<childInfo> &tempChild, int left, int right) +{ + if (left >= right - 1) + return; + int mid = (left + right) / 2; + Merge_sort2(tempChild, left, mid); + Merge_sort2(tempChild, mid, right); + childInfo *temp = new childInfo[right - left]; + int i = mid - 1, j = right - 1, t = right - left - 1; + while (i >= left || j >= mid) + { + if (i < left || j >= mid && tempChild[i].valueNum <= tempChild[j].valueNum) + temp[t--] = tempChild[j--]; + else + { + cnt[tempChild[i].location] += j - mid + 1; + temp[t--] = tempChild[i--]; + } + } + t = 0; + for (int i = left; i < right; i++) + tempChild[i] = temp[t++]; + delete[] temp; +} +int main() +{ + int n; + cin >> n; + vector<childInfo> childLists; + for (int i = 0; i < n; i++) + { + childInfo tempChild; + tempChild.location = i; + cin >> tempChild.valueNum; + childLists.push_back(tempChild); + } + vector<childInfo> childLists1(childLists.begin(), childLists.end()); + Merge_sort1(childLists, 0, childLists.size()); + Merge_sort2(childLists1, 0, childLists1.size()); + long long sum = 0; + for (int i = 0; i < childLists.size(); i++) + sum += 1ll * (1 + cnt[i]) * cnt[i] / 2; + cout << sum; + return 0; +} +``` + +### C + +```cpp +struct childInfo +{ + int location; + int valueNum; +}; + +bool lowCompare(childInfo temp1, childInfo temp2) +{ + return temp1.valueNum > temp2.valueNum; +} + +bool upCompare(childInfo temp1, childInfo temp2) +{ + return temp1.valueNum < temp2.valueNum; +} + +int main() +{ + int childNums; + cin >> childNums; + vector<childInfo> childLists; + vector<childInfo> childLists1; + vector<childInfo> childLists2; + for (int i = 0; i < childNums; i++) + { + childInfo tempInfo; + tempInfo.location = i; + scanf("%d", &tempInfo.valueNum); + childLists.push_back(tempInfo); + childLists1.push_back(tempInfo); + childLists2.push_back(tempInfo); + } + sort(childLists1.begin(), childLists1.end(), lowCompare); + sort(childLists2.begin(), childLists2.end(), upCompare); + + long long int count = 0; + for (int m = 0; m < childNums; m++) + { + int sadNum = 0; + long long int count1 = 0, count2 = 0; + int compareNum = childLists[m].valueNum, compareLoc = childLists[m].location; + + for (int n = 0; n < childNums; n++) + { + if (compareNum < childLists1[n].valueNum) + { + if (compareLoc > childLists1[n].location) + { + sadNum++; + count1 += sadNum; + } + } + else + { + break; + } + } + + for (int n = 0; n < childNums; n++) + { + if (compareNum > childLists2[n].valueNum) + { + if (compareLoc < childLists2[n].location) + { + sadNum++; + count2 += sadNum; + } + } + else + { + break; + } + } + count += count1 + count2; + } + cout << count << endl; + return 0; +} +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/13.\347\201\265\350\203\275\344\274\240\350\276\223/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/13.\347\201\265\350\203\275\344\274\240\350\276\223/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..f90ee4aa7ee680e997cc82838e00d05430f76e7a --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/13.\347\201\265\350\203\275\344\274\240\350\276\223/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-c9f679acc8a84a21aa6a4fbd0638df41", + "keywords": [ + "è“æ¡¥æ¯", + "çµèƒ½ä¼ 输" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/13.\347\201\265\350\203\275\344\274\240\350\276\223/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/13.\347\201\265\350\203\275\344\274\240\350\276\223/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..bf46c86198d6c23995255e8bfe4d18f412820428 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/13.\347\201\265\350\203\275\344\274\240\350\276\223/desc.md" @@ -0,0 +1,53 @@ +#### 题目背景 +在游æˆã€Šæ˜Ÿé™…争霸 II》ä¸ï¼Œé«˜é˜¶åœ£å ‚æ¦å£«ä½œä¸ºæ˜Ÿçµçš„é‡è¦ AOE å•ä½ï¼Œåœ¨æ¸¸æˆçš„ä¸åŽæœŸå‘挥ç€é‡è¦çš„作用,其技能â€çµèƒ½é£Žæš´â€œå¯ä»¥æ¶ˆè€—大é‡çš„çµèƒ½å¯¹ä¸€ç‰‡åŒºåŸŸå†…çš„æ•Œå†›é€ æˆæ¯ç性的伤害。ç»å¸¸ç”¨äºŽå¯¹æŠ—人类的生化部队和虫æ—çš„ +刺蛇飞龙ç‰ä½Žè¡€é‡å•ä½ã€‚ +#### 问题æè¿° +ä½ æŽ§åˆ¶ç€ n åé«˜é˜¶åœ£å ‚æ¦å£«ï¼Œæ–¹ä¾¿èµ·è§æ ‡ä¸º 1,2,··· ,n。æ¯åé«˜é˜¶åœ£å ‚æ¦å£«éœ€è¦ä¸€å®šçš„çµèƒ½æ¥æˆ˜æ–—,æ¯ä¸ªäººæœ‰ä¸€ä¸ªçµèƒ½å€¼$a_i$表示其拥有的çµèƒ½çš„多少($a_i$éžè´Ÿè¡¨ç¤ºè¿™åé«˜é˜¶åœ£å ‚æ¦å£«æ¯”在最佳状æ€ä¸‹å¤šä½™äº†$a_i$点çµèƒ½ï¼Œ$a_i$为负则表示这åé«˜é˜¶åœ£å ‚æ¦å£«è¿˜éœ€è¦$-a_i$点çµèƒ½æ‰èƒ½åˆ°è¾¾æœ€ä½³æˆ˜æ–—状æ€ï¼‰ ã€‚çŽ°åœ¨ç³»ç»Ÿèµ‹äºˆäº†ä½ çš„é«˜é˜¶åœ£å ‚æ¦å£«ä¸€ä¸ªèƒ½åŠ›ï¼Œä¼ 递çµèƒ½ï¼Œæ¯æ¬¡ä½ å¯ä»¥é€‰æ‹©ä¸€ä¸ª$ i ∈ [2,n − 1]$,若$a_i ≥ 0 $则其两æ—çš„é«˜é˜¶åœ£å ‚æ¦å£«ï¼Œä¹Ÿå°±æ˜¯$ i − 1ã€i + 1 $这两åé«˜é˜¶åœ£å ‚æ¦å£«ä¼šä»Ži è¿™åé«˜é˜¶åœ£å ‚æ¦å£«è¿™é‡Œå„抽å–$ a_i $点çµèƒ½ï¼›è‹¥$ a_i < 0 $则其两æ—çš„é«˜é˜¶åœ£å ‚æ¦å£«ï¼Œä¹Ÿå°±æ˜¯$ i−1,i+1 $这两åé«˜é˜¶åœ£å ‚æ¦å£«ä¼šç»™ i è¿™åé«˜é˜¶åœ£å ‚æ¦å£«$ −a_i $点çµèƒ½ã€‚å½¢å¼åŒ–æ¥è®²å°±æ˜¯$ a_{i-1} + = a_i ,a_{i+1} + = a_i ,a_i − = 2a_i $。 + +çµèƒ½æ˜¯éžå¸¸é«˜æ•ˆçš„作战工具,åŒæ—¶ä¹Ÿéžå¸¸å±é™©ä¸”ä¸ç¨³å®šï¼Œä¸€ä½é«˜é˜¶åœ£å ‚æ¦å£«æ‹¥æœ‰çš„çµèƒ½è¿‡å¤šæˆ–者过少都ä¸å¥½ï¼Œå®šä¹‰ä¸€ç»„é«˜é˜¶åœ£å ‚æ¦å£«çš„ä¸ç¨³å®šåº¦ä¸º$max^n_{i=1} |a_i|$ï¼Œè¯·ä½ é€šè¿‡ä¸é™æ¬¡æ•°çš„ä¼ é€’çµèƒ½æ“ä½œä½¿å¾—ä½ æŽ§åˆ¶çš„è¿™ä¸€ç»„é«˜é˜¶åœ£å ‚æ¦å£«çš„ä¸ç¨³å®šåº¦æœ€å°ã€‚ +#### è¾“å…¥æ ¼å¼ +本题包å«å¤šç»„询问。输入的第一行包å«ä¸€ä¸ªæ£æ•´æ•° T 表示询问组数。 +接下æ¥ä¾æ¬¡è¾“å…¥æ¯ä¸€ç»„询问。 +æ¯ç»„询问的第一行包å«ä¸€ä¸ªæ£æ•´æ•° nï¼Œè¡¨ç¤ºé«˜é˜¶åœ£å ‚æ¦å£«çš„æ•°é‡ã€‚ +接下æ¥ä¸€è¡ŒåŒ…å« n 个数 $a_1 ,a_2 ,··· ,a_n $。 +#### è¾“å‡ºæ ¼å¼ +输出 T 行。æ¯è¡Œä¸€ä¸ªæ•´æ•°ä¾æ¬¡è¡¨ç¤ºæ¯ç»„询问的ç”案。 +#### æ ·ä¾‹è¾“å…¥ +``` +3 +3 +5 -2 3 +4 +0 0 0 0 +3 +1 2 3 +``` +#### æ ·ä¾‹è¾“å‡º +``` +3 +0 +3 +``` +#### æ ·ä¾‹è¯´æ˜Ž +``` +对于第一组询问: +对 2 å·é«˜é˜¶åœ£å ‚æ¦å£«è¿›è¡Œä¼ 输æ“ä½œåŽ a 1 = 3,a 2 = 2,a 3 = 1。ç”案为 3。 +对于第二组询问: +è¿™ä¸€ç»„é«˜é˜¶åœ£å ‚æ¦å£«æ‹¥æœ‰çš„çµèƒ½éƒ½æ£å¥½å¯ä»¥è®©ä»–们达到最佳战斗状æ€ã€‚ +``` +#### æ ·ä¾‹è¾“å…¥ +``` +3 +4 +-1 -2 -3 7 +4 +2 3 4 -8 +5 +-1 -1 6 -1 -1 +``` +#### æ ·ä¾‹è¾“å‡º +``` +5 +7 +4 +``` \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/13.\347\201\265\350\203\275\344\274\240\350\276\223/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/13.\347\201\265\350\203\275\344\274\240\350\276\223/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..1476be2d29a13d7f880b96ad6cc557134ce44c8d --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/13.\347\201\265\350\203\275\344\274\240\350\276\223/solution.cpp" @@ -0,0 +1,67 @@ +#include <algorithm> +#include <cstring> +#include <iostream> +#include <limits.h> + +using namespace std; + +typedef long long LL; +const int N = 300010; + +int n; +LL sum[N], a[N], s0, sn; +bool st[N]; + +int main() +{ + int T; + scanf("%d", &T); + while (T--) + { + scanf("%d", &n); + sum[0] = 0; + for (int i = 1; i <= n; i++) + { + scanf("%lld", &sum[i]); + sum[i] += sum[i - 1]; + } + s0 = sum[0], sn = sum[n]; + if (s0 > sn) + swap(s0, sn); + sort(sum, sum + n + 1); + for (int i = 0; i <= n; i++) + if (s0 == sum[i]) + { + s0 = i; + break; + } + for (int i = n; i >= 0; i--) + if (sn == sum[i]) + { + sn = i; + break; + } + memset(st, 0, sizeof st); + int l = 0, r = n; + for (int i = s0; i >= 0; i -= 2) + { + a[l++] = sum[i]; + st[i] = true; + } + for (int i = sn; i <= n; i += 2) + { + a[r--] = sum[i]; + st[i] = true; + } + for (int i = 0; i <= n; i++) + if (!st[i]) + { + a[l++] = sum[i]; + } + LL res = 0; + for (int i = 1; i <= n; i++) + res = max(res, abs(a[i] - a[i - 1])); + printf("%d\n", res); + } + return 0; +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/13.\347\201\265\350\203\275\344\274\240\350\276\223/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/13.\347\201\265\350\203\275\344\274\240\350\276\223/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/13.\347\201\265\350\203\275\344\274\240\350\276\223/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/13.\347\201\265\350\203\275\344\274\240\350\276\223/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..cd2e5726fd533d83dffe9f8e9c098879d967c35f --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/13.\347\201\265\350\203\275\344\274\240\350\276\223/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "a7672a561bd14ce5ba8bca21c4074683" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/13.\347\201\265\350\203\275\344\274\240\350\276\223/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/13.\347\201\265\350\203\275\344\274\240\350\276\223/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..209abbf46524d90903e0bbf8161c83a11672b84b --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/13.\347\201\265\350\203\275\344\274\240\350\276\223/solution.md" @@ -0,0 +1,412 @@ +# çµèƒ½ä¼ 输 + + +**题目背景** + +在游æˆã€Šæ˜Ÿé™…争霸 II》ä¸ï¼Œé«˜é˜¶åœ£å ‚æ¦å£«ä½œä¸ºæ˜Ÿçµçš„é‡è¦ AOE å•ä½ï¼Œåœ¨æ¸¸æˆçš„ä¸åŽæœŸå‘挥ç€é‡è¦çš„作用,其技能â€çµèƒ½é£Žæš´â€œå¯ä»¥æ¶ˆè€—大é‡çš„çµèƒ½å¯¹ä¸€ç‰‡åŒºåŸŸå†…çš„æ•Œå†›é€ æˆæ¯ç性的伤害。ç»å¸¸ç”¨äºŽå¯¹æŠ—人类的生化部队和虫æ—çš„ +刺蛇飞龙ç‰ä½Žè¡€é‡å•ä½ã€‚ + +**问题æè¿°** + +ä½ æŽ§åˆ¶ç€ n åé«˜é˜¶åœ£å ‚æ¦å£«ï¼Œæ–¹ä¾¿èµ·è§æ ‡ä¸º 1,2,··· ,n。æ¯åé«˜é˜¶åœ£å ‚æ¦å£«éœ€è¦ä¸€å®šçš„çµèƒ½æ¥æˆ˜æ–—,æ¯ä¸ªäººæœ‰ä¸€ä¸ªçµèƒ½å€¼$a_i$表示其拥有的çµèƒ½çš„多少($a_i$éžè´Ÿè¡¨ç¤ºè¿™åé«˜é˜¶åœ£å ‚æ¦å£«æ¯”在最佳状æ€ä¸‹å¤šä½™äº†$a_i$点çµèƒ½ï¼Œ$a_i$为负则表示这åé«˜é˜¶åœ£å ‚æ¦å£«è¿˜éœ€è¦$-a_i$点çµèƒ½æ‰èƒ½åˆ°è¾¾æœ€ä½³æˆ˜æ–—状æ€ï¼‰ ã€‚çŽ°åœ¨ç³»ç»Ÿèµ‹äºˆäº†ä½ çš„é«˜é˜¶åœ£å ‚æ¦å£«ä¸€ä¸ªèƒ½åŠ›ï¼Œä¼ 递çµèƒ½ï¼Œæ¯æ¬¡ä½ å¯ä»¥é€‰æ‹©ä¸€ä¸ª$ i ∈ [2,n − 1]$,若$a_i ≥ 0 $则其两æ—çš„é«˜é˜¶åœ£å ‚æ¦å£«ï¼Œä¹Ÿå°±æ˜¯$ i − 1ã€i + 1 $这两åé«˜é˜¶åœ£å ‚æ¦å£«ä¼šä»Ži è¿™åé«˜é˜¶åœ£å ‚æ¦å£«è¿™é‡Œå„抽å–$ a_i $点çµèƒ½ï¼›è‹¥$ a_i < 0 $则其两æ—çš„é«˜é˜¶åœ£å ‚æ¦å£«ï¼Œä¹Ÿå°±æ˜¯$ i−1,i+1 $这两åé«˜é˜¶åœ£å ‚æ¦å£«ä¼šç»™ i è¿™åé«˜é˜¶åœ£å ‚æ¦å£«$ −a_i $点çµèƒ½ã€‚å½¢å¼åŒ–æ¥è®²å°±æ˜¯$ a_{i-1} + = a_i ,a_{i+1} + = a_i ,a_i − = 2a_i $。 + +çµèƒ½æ˜¯éžå¸¸é«˜æ•ˆçš„作战工具,åŒæ—¶ä¹Ÿéžå¸¸å±é™©ä¸”ä¸ç¨³å®šï¼Œä¸€ä½é«˜é˜¶åœ£å ‚æ¦å£«æ‹¥æœ‰çš„çµèƒ½è¿‡å¤šæˆ–者过少都ä¸å¥½ï¼Œå®šä¹‰ä¸€ç»„é«˜é˜¶åœ£å ‚æ¦å£«çš„ä¸ç¨³å®šåº¦ä¸º$max^n_{i=1} |a_i|$ï¼Œè¯·ä½ é€šè¿‡ä¸é™æ¬¡æ•°çš„ä¼ é€’çµèƒ½æ“ä½œä½¿å¾—ä½ æŽ§åˆ¶çš„è¿™ä¸€ç»„é«˜é˜¶åœ£å ‚æ¦å£«çš„ä¸ç¨³å®šåº¦æœ€å°ã€‚ + +**è¾“å…¥æ ¼å¼** + +本题包å«å¤šç»„询问。输入的第一行包å«ä¸€ä¸ªæ£æ•´æ•° T 表示询问组数。 +接下æ¥ä¾æ¬¡è¾“å…¥æ¯ä¸€ç»„询问。 +æ¯ç»„询问的第一行包å«ä¸€ä¸ªæ£æ•´æ•° nï¼Œè¡¨ç¤ºé«˜é˜¶åœ£å ‚æ¦å£«çš„æ•°é‡ã€‚ +接下æ¥ä¸€è¡ŒåŒ…å« n 个数 $a_1 ,a_2 ,··· ,a_n $。 + +**è¾“å‡ºæ ¼å¼** + +输出 T 行。æ¯è¡Œä¸€ä¸ªæ•´æ•°ä¾æ¬¡è¡¨ç¤ºæ¯ç»„询问的ç”案。 + +**æ ·ä¾‹è¾“å…¥** + +``` +3 +3 +5 -2 3 +4 +0 0 0 0 +3 +1 2 3 +``` + +**æ ·ä¾‹è¾“å‡º** + +``` +3 +0 +3 +``` + +**æ ·ä¾‹è¯´æ˜Ž** + +``` +对于第一组询问: +对 2 å·é«˜é˜¶åœ£å ‚æ¦å£«è¿›è¡Œä¼ 输æ“ä½œåŽ a 1 = 3,a 2 = 2,a 3 = 1。ç”案为 3。 +对于第二组询问: +è¿™ä¸€ç»„é«˜é˜¶åœ£å ‚æ¦å£«æ‹¥æœ‰çš„çµèƒ½éƒ½æ£å¥½å¯ä»¥è®©ä»–们达到最佳战斗状æ€ã€‚ +``` + +**æ ·ä¾‹è¾“å…¥** + +``` +3 +4 +-1 -2 -3 7 +4 +2 3 4 -8 +5 +-1 -1 6 -1 -1 +``` + +**æ ·ä¾‹è¾“å‡º** + +``` +5 +7 +4 +``` + +以下选项<span style="color:red">错误</span>的是? + +## aop + +### before + +```cpp +#include <bits/stdc++.h> +using namespace std; +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +typedef long long ll; +#define int ll +#define rep(i, a, n) for (int i = a; i < (int)n; i++) +#define per(i, a, n) for (int i = (int)n - 1; i >= a; i--) +const int maxn = 3e5 + 10; +inline int read() +{ + int x = 0, f = 1; + char ch = getchar(); + while (!isdigit(ch)) + { + if (ch == '-') + f = -1; + ch = getchar(); + } + while (isdigit(ch)) + { + x = (x << 3) + (x << 1) + ch - 48; + ch = getchar(); + } + return x * f; +} +int s[maxn], a[maxn]; +bool vis[maxn]; +inline void cf() +{ + int t = read(); + while (t--) + { + int n = read(); + s[0] = 0; + rep(i, 1, n + 1) + { + int x = read(); + s[i] = s[i + 1] + x; + } + int s0 = 0, sn = s[n]; + if (s0 > sn) + swap(s0, sn); + sort(s, s + n + 1); + rep(i, 0, n + 1) if (s[i] == s0) + { + s0 = i; + break; + } + per(i, 0, n + 1) if (s[i] == sn) + { + sn = i; + break; + } + int l = 0, r = n; + rep(i, 0, n + 1) vis[i] = 0; + for (int i = s0; i >= 0; i -= 2) + a[l++] = s[i], vis[i] = 1; + for (int i = sn; i <= n; i += 2) + a[r--] = s[i], vis[i] = 1; + rep(i, 0, n + 1) if (!vis[i]) a[l++] = s[i]; + int ans = 0; + rep(i, 1, n + 1) ans = max(ans, abs(a[i] - a[i - 1])); + printf("%lld\n", ans); + } + return; +} +signed main() +{ + cf(); + return 0; +} +``` + +## 选项 + +### A + +```cpp +#define ll long long +const int N = 3e5; +ll a[N], s[N]; +bool vis[N]; +int n; +int main() +{ + int T; + scanf("%d", &T); + while (T--) + { + memset(vis, 0, sizeof(vis)); + scanf("%d", &n); + s[0] = 0; + for (int i = 1; i <= n; ++i) + { + scanf("%lld", &s[i]); + s[i] += s[i - 1]; + } + ll s0 = 0, sn = s[n]; + if (s0 > sn) + swap(s0, sn); + sort(s, s + n + 1); + int l = 0, r = n; + for (int i = lower_bound(s, s + n + 1, s0) - s; i >= 0; i -= 2) + { + a[l++] = s[i], vis[i] = 1; + } + for (int i = lower_bound(s, s + n + 1, sn) - s; i <= n; i += 2) + { + a[r--] = s[i], vis[i] = 1; + } + for (int i = 0; i <= n; ++i) + { + if (!vis[i]) + a[l++] = s[i]; + } + ll res = 0; + for (int i = 1; i <= n; ++i) + res = max(res, abs(a[i] - a[i - 1])); + printf("%lld\n", res); + } + return 0; +} +``` + +### B + +```cpp +const int MAXN = 300010; +int nums[MAXN]; + +bool judgeYi(int a, int b) +{ + return a > 0 && b < 0 || a < 0 && b > 0; +} + +int main() +{ + int T, n; + cin >> T; + while (T--) + { + cin >> n; + + bool hasNe = false, hasPo = false; + int res = 0; + for (int i = 0; i < n; i++) + { + scanf("%d", &nums[i]); + if (nums[i] < 0) + { + hasNe = true; + } + else if (nums[i] > 0) + { + hasPo = true; + } + } + + if (hasNe && hasPo) + { + bool canNext; + do + { + canNext = false; + for (int i = 1; i < n - 1; i++) + { + + if (judgeYi(nums[i], nums[i - 1]) || judgeYi(nums[i], nums[i + 1])) + { + if (nums[i] > 0) + { + + if (judgeYi(nums[i - 1], nums[i + 1])) + { + if ((nums[i - 1] > 0 && abs(nums[i + 1]) > nums[i - 1] + nums[i]) || + (nums[i + 1] > 0 && abs(nums[i - 1]) > nums[i + 1] + nums[i])) + { + nums[i + 1] += nums[i]; + nums[i - 1] += nums[i]; + nums[i] = -nums[i]; + canNext = true; + } + } + else + { + if (abs(nums[i - 1]) > nums[i] || abs(nums[i + 1]) > nums[i]) + { + nums[i + 1] += nums[i]; + nums[i - 1] += nums[i]; + nums[i] = -nums[i]; + canNext = true; + } + } + } + else if (nums[i] < 0) + { + + if (judgeYi(nums[i - 1], nums[i + 1])) + { + if ((nums[i - 1] > 0 && nums[i - 1] > abs(nums[i + 1] + nums[i])) || + (nums[i + 1] > 0 && nums[i + 1] > abs(nums[i - 1] + nums[i]))) + { + nums[i + 1] += nums[i]; + nums[i - 1] += nums[i]; + nums[i] = -nums[i]; + canNext = true; + } + } + else + { + if (nums[i - 1] > abs(nums[i]) || nums[i + 1] > abs(nums[i])) + { + nums[i + 1] += nums[i]; + nums[i - 1] += nums[i]; + nums[i] = -nums[i]; + canNext = true; + } + } + } + } + } + } while (canNext); + } + int t; + + for (int i = 0; i < n; i++) + { + res = max(res, abs(nums[i])); + } + cout << res << endl; + } + + return 0; +} +``` + +### C + +```cpp +typedef long long LL; +const int INF = 0x3f3f3f3f; +const double Pi = acos(-1); +namespace +{ + template <typename T> + inline void read(T &x) + { + x = 0; + T f = 1; + char s = getchar(); + for (; !isdigit(s); s = getchar()) + if (s == '-') + f = -1; + for (; isdigit(s); s = getchar()) + x = (x << 3) + (x << 1) + (s ^ 48); + x *= f; + } +} +#define fio \ + ios::sync_with_stdio(false); \ + cin.tie(0); \ + cout.tie(0); +#define _for(n, m, i) for (register int i = (n); i < (m); ++i) +#define _rep(n, m, i) for (register int i = (n); i <= (m); ++i) +#define _srep(n, m, i) for (register int i = (n); i >= (m); i--) +#define _sfor(n, m, i) for (register int i = (n); i > (m); i--) +#define lson rt << 1, l, mid +#define rson rt << 1 | 1, mid + 1, r +#define lowbit(x) x &(-x) +#define pii pair<int, int> +#define fi first +#define se second +const int N = 1e6 + 5; +LL a[N]; +LL ans[N]; +bool vis[N]; +LL Abs(LL x) +{ + return x < 0 ? -x : x; +} +int main() +{ + int t; + scanf("%d", &t); + while (t--) + { + int n; + scanf("%d", &n); + a[0] = 0; + _rep(1, n, i) + { + scanf("%lld", a + i); + a[i] += a[i - 1]; + } + LL a0 = 0, an = a[n], Max = 0; + int A0, AN; + sort(a, a + n + 1); + memset(vis, 0, sizeof vis); + if (a0 > an) + swap(a0, an); + _rep(0, n, i) if (a0 == a[i]) + { + A0 = i; + break; + } + _rep(0, n, i) if (an == a[i]) + { + AN = i; + break; + } + int l = 0, r = n; + for (int i = A0; i >= 0; i -= 2) + ans[l++] = a[i], vis[i] = 1; + for (int i = AN; i <= n; i += 2) + ans[r--] = a[i], vis[i] = 1; + _rep(0, n, i) if (!vis[i]) ans[l++] = a[i]; + _rep(1, n, i) Max = max(Max, Abs(ans[i] - ans[i - 1])); + printf("%lld\n", Max); + } +} +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/14.\345\216\213\347\274\251\345\217\230\346\215\242/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/14.\345\216\213\347\274\251\345\217\230\346\215\242/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..10459088b26964c1b2078d1c5abf8120c5b58f39 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/14.\345\216\213\347\274\251\345\217\230\346\215\242/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-1eaf5bb9038240d29dfa4596f55e66d6", + "keywords": [ + "è“æ¡¥æ¯", + "压缩å˜æ¢" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/14.\345\216\213\347\274\251\345\217\230\346\215\242/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/14.\345\216\213\347\274\251\345\217\230\346\215\242/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..2e53342127e017cc3f9ecf54b8cdc4bba21563b0 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/14.\345\216\213\347\274\251\345\217\230\346\215\242/desc.md" @@ -0,0 +1,39 @@ +#### 问题æè¿° +å°æ˜Žæœ€è¿‘åœ¨ç ”ç©¶åŽ‹ç¼©ç®—æ³•ã€‚ +他知é“,压缩的时候如果能够使得数值很å°ï¼Œå°±èƒ½é€šè¿‡ç†µç¼–ç 得到较高的压缩比。 +然而,è¦ä½¿æ•°å€¼å¾ˆå°æ˜¯ä¸€ä¸ªæŒ‘战。 +最近,å°æ˜Žéœ€è¦åŽ‹ç¼©ä¸€äº›æ£æ•´æ•°çš„åºåˆ—,这些åºåˆ—的特点是,åŽé¢å‡ºçŽ°çš„æ•°å—很大å¯èƒ½æ˜¯åˆšå‡ºçŽ°è¿‡ä¸ä¹…çš„æ•°å—。对于这ç§ç‰¹æ®Šçš„åºåˆ—,å°æ˜Žå‡†å¤‡å¯¹åºåˆ—åšä¸€ä¸ªå˜æ¢æ¥å‡å°æ•°å—的值。 +å˜æ¢çš„过程如下: +从左到å³æžšä¸¾åºåˆ—,æ¯æžšä¸¾åˆ°ä¸€ä¸ªæ•°å—,如果这个数å—没有出现过,刚将数å—å˜æ¢æˆå®ƒçš„相å数,如果数å—出现过,则看它在原åºåˆ—ä¸æœ€åŽçš„一次出现åŽé¢ï¼ˆä¸”在当å‰æ•°å‰é¢ï¼‰å‡ºçŽ°äº†å‡ ç§æ•°å—,用这个ç§ç±»æ•°æ›¿æ¢åŽŸæ¥çš„æ•°å—。 +比如,åºåˆ—(a1, a2, a3, a4, a5)=(1, 2, 2, 1, 2)在å˜æ¢è¿‡ç¨‹ä¸ºï¼š +a1: 1未出现过,所以a1å˜ä¸º-1ï¼› +a2: 2未出现过,所以a2å˜ä¸º-2ï¼› +a3: 2出现过,最åŽä¸€æ¬¡ä¸ºåŽŸåºåˆ—çš„a2,在a2åŽã€a3å‰æœ‰0ç§æ•°å—,所以a3å˜ä¸º0ï¼› +a4: 1出现过,最åŽä¸€æ¬¡ä¸ºåŽŸåºåˆ—çš„a1,在a1åŽã€a4å‰æœ‰1ç§æ•°å—,所以a4å˜ä¸º1ï¼› +a5: 2出现过,最åŽä¸€æ¬¡ä¸ºåŽŸåºåˆ—çš„a3,在a3åŽã€a5å‰æœ‰1ç§æ•°å—,所以a5å˜ä¸º1。 +现在,给出原åºåˆ—,请问,按这ç§å˜æ¢è§„则å˜æ¢åŽçš„åºåˆ—是什么。 + +#### 输入 +输入第一行包å«ä¸€ä¸ªæ•´æ•°n,表示åºåˆ—的长度。 +第二行包å«n个æ£æ•´æ•°ï¼Œè¡¨ç¤ºè¾“å…¥åºåˆ—。 + +#### 输出 +输出一行,包å«n个数,表示å˜æ¢åŽçš„åºåˆ—。 + +#### 输入例å 1 +``` +5 +1 2 2 1 2 +``` +#### 输出例å 1 +``` +-1 -2 0 1 1 +``` +#### 输入例å 2 +``` +12 +``` +#### 输出例å 2 +``` +-1 0 -2 -3 1 1 2 2 0 0 2 2 +``` \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/14.\345\216\213\347\274\251\345\217\230\346\215\242/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/14.\345\216\213\347\274\251\345\217\230\346\215\242/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..a48a8e50f903cea05af44e9649ea91eb5c86a094 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/14.\345\216\213\347\274\251\345\217\230\346\215\242/solution.cpp" @@ -0,0 +1,67 @@ +#include <bits/stdc++.h> +using namespace std; + +const int maxn = 1e6 + 5; +int a[maxn], tree[maxn << 2]; // å‡è®¾å±‚æ•° M = log 2 (n - 1), æ ‘èŠ‚ç‚¹æ•°å°±è¦å¼€2å€äº† + // 循环ä¸é历最åŽä¸€ä¸ªç»“点的的å节点(虽然ä¸å˜åœ¨) éœ€è¦ 2n * 2çš„æ•°ç»„å¤§å° +int n, maxpoint; + +void init() +{ + maxpoint = 1; + while (maxpoint < n) + maxpoint <<= 1; //比最åŽä¸€ä¸ªç»“点大的2çš„å€æ•°ä¸ªç»“点 + memset(tree, 0, sizeof(tree)); + memset(a, 0, sizeof(a)); +} + +void update(int k, int addnum) +{ // addnum 在出现å‰è¾¹æ—¶æ›´æ–°æ‰€æœ‰å节点 + 1, 出现åŽè¾¹æ—¶ 所有å节点都 - 1 + k += maxpoint - 1; // æ¯ä¸ªèŠ‚ç‚¹éƒ½å½“ä½œæ ¹èŠ‚ç‚¹ä¸€æ ·é历å节点 + tree[k] += addnum; + while (k) + { + k = (k - 1) >> 1; // è®¿é—®çˆ¶èŠ‚ç‚¹ç›´åˆ°æ ¹ç»“ç‚¹ + tree[k] += addnum; + } +} + +int query(int a, int b, int k, int l, int r) +{ + if (a == b || (r <= a || l >= b)) + return 0; // ä¸ç¬¦åˆæŸ¥è¯¢æ¡ä»¶ 返回 0 + if (a <= l && r <= b) + return tree[k]; // å区域就直接返回 + else + { + int mid = (l + r) >> 1; + return query(a, b, (k << 1) + 1, l, mid) + query(a, b, (k + 1) << 1, mid, r); + } +} + +int main() +{ + int temp; + map<int, int> mp; + cin >> n; + init(); + for (int i = 0; i < n; i++) + { + cin >> temp; + if (mp.count(temp)) + { + int pre = mp[temp]; + a[i] = query(pre + 1, i, 0, 0, maxpoint); + update(pre, -1); + } + else + { + a[i] = -temp; + } + mp[temp] = i; + update(i, 1); + } + for (int i = 0; i < n; i++) + cout << a[i] << " "; + return 0; +} diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/14.\345\216\213\347\274\251\345\217\230\346\215\242/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/14.\345\216\213\347\274\251\345\217\230\346\215\242/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/14.\345\216\213\347\274\251\345\217\230\346\215\242/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/14.\345\216\213\347\274\251\345\217\230\346\215\242/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..6b091e36f26206b9c96fe3a8ceb2993f048ef542 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/14.\345\216\213\347\274\251\345\217\230\346\215\242/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "937e94612cba4743b2dcf248fc21a179" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/14.\345\216\213\347\274\251\345\217\230\346\215\242/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/14.\345\216\213\347\274\251\345\217\230\346\215\242/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..17258b0fe053df1844815791c60c2284da32a610 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/14.\345\216\213\347\274\251\345\217\230\346\215\242/solution.md" @@ -0,0 +1,167 @@ +# 压缩å˜æ¢ + + +**问题æè¿°** + +å°æ˜Žæœ€è¿‘åœ¨ç ”ç©¶åŽ‹ç¼©ç®—æ³•ã€‚ +他知é“,压缩的时候如果能够使得数值很å°ï¼Œå°±èƒ½é€šè¿‡ç†µç¼–ç 得到较高的压缩比。 +然而,è¦ä½¿æ•°å€¼å¾ˆå°æ˜¯ä¸€ä¸ªæŒ‘战。 +最近,å°æ˜Žéœ€è¦åŽ‹ç¼©ä¸€äº›æ£æ•´æ•°çš„åºåˆ—,这些åºåˆ—的特点是,åŽé¢å‡ºçŽ°çš„æ•°å—很大å¯èƒ½æ˜¯åˆšå‡ºçŽ°è¿‡ä¸ä¹…çš„æ•°å—。对于这ç§ç‰¹æ®Šçš„åºåˆ—,å°æ˜Žå‡†å¤‡å¯¹åºåˆ—åšä¸€ä¸ªå˜æ¢æ¥å‡å°æ•°å—的值。 +å˜æ¢çš„过程如下: +从左到å³æžšä¸¾åºåˆ—,æ¯æžšä¸¾åˆ°ä¸€ä¸ªæ•°å—,如果这个数å—没有出现过,刚将数å—å˜æ¢æˆå®ƒçš„相å数,如果数å—出现过,则看它在原åºåˆ—ä¸æœ€åŽçš„一次出现åŽé¢ï¼ˆä¸”在当å‰æ•°å‰é¢ï¼‰å‡ºçŽ°äº†å‡ ç§æ•°å—,用这个ç§ç±»æ•°æ›¿æ¢åŽŸæ¥çš„æ•°å—。 +比如,åºåˆ—(a1, a2, a3, a4, a5)=(1, 2, 2, 1, 2)在å˜æ¢è¿‡ç¨‹ä¸ºï¼š +a1: 1未出现过,所以a1å˜ä¸º-1ï¼› +a2: 2未出现过,所以a2å˜ä¸º-2ï¼› +a3: 2出现过,最åŽä¸€æ¬¡ä¸ºåŽŸåºåˆ—çš„a2,在a2åŽã€a3å‰æœ‰0ç§æ•°å—,所以a3å˜ä¸º0ï¼› +a4: 1出现过,最åŽä¸€æ¬¡ä¸ºåŽŸåºåˆ—çš„a1,在a1åŽã€a4å‰æœ‰1ç§æ•°å—,所以a4å˜ä¸º1ï¼› +a5: 2出现过,最åŽä¸€æ¬¡ä¸ºåŽŸåºåˆ—çš„a3,在a3åŽã€a5å‰æœ‰1ç§æ•°å—,所以a5å˜ä¸º1。 +现在,给出原åºåˆ—,请问,按这ç§å˜æ¢è§„则å˜æ¢åŽçš„åºåˆ—是什么。 + + +**输入** + +输入第一行包å«ä¸€ä¸ªæ•´æ•°n,表示åºåˆ—的长度。 +第二行包å«n个æ£æ•´æ•°ï¼Œè¡¨ç¤ºè¾“å…¥åºåˆ—。 + + +**输出** + +输出一行,包å«n个数,表示å˜æ¢åŽçš„åºåˆ—。 + + +**输入例å 1** + +``` +5 +1 2 2 1 2 +``` + +**输出例å 1** + +``` +-1 -2 0 1 1 +``` + +**输入例å 2** + +``` +12 +``` + +**输出例å 2** + +``` +-1 0 -2 -3 1 1 2 2 0 0 2 2 +``` + +以下程åºå®žçŽ°äº†è¿™ä¸€åŠŸèƒ½ï¼Œè¯·ä½ 补全空白处的内容: + +```cpp +#include <bits/stdc++.h> +using namespace std; + +const int maxn = 1e6 + 5; +int a[maxn], tree[maxn << 2]; + +int n, maxpoint; + +void init() +{ + maxpoint = 1; + while (maxpoint < n) + maxpoint <<= 1; + memset(tree, 0, sizeof(tree)); + memset(a, 0, sizeof(a)); +} + +void update(int k, int addnum) +{ + k += maxpoint - 1; + tree[k] += addnum; + while (k) + { + k = (k - 1) >> 1; + tree[k] += addnum; + } +} + +int query(int a, int b, int k, int l, int r) +{ + if (a == b || (r <= a || l >= b)) + return 0; + if (a <= l && r <= b) + return tree[k]; + else + { + int mid = (l + r) >> 1; + return __________________; + } +} + +int main() +{ + int temp; + map<int, int> mp; + cin >> n; + init(); + for (int i = 0; i < n; i++) + { + cin >> temp; + if (mp.count(temp)) + { + int pre = mp[temp]; + a[i] = query(pre + 1, i, 0, 0, maxpoint); + update(pre, -1); + } + else + { + a[i] = -temp; + } + mp[temp] = i; + update(i, 1); + } + for (int i = 0; i < n; i++) + cout << a[i] << " "; + return 0; +} +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +query(a, b, (k << 1) + 1, l, mid) + query(a, b, (k + 1) << 1, mid, r) +``` + +## 选项 + +### A + +```cpp +query(a, b, (k >> 1) + 1, l, mid) + query(a, b, (k + 1) >> 1, mid, r) +``` + +### B + +```cpp +query(a, b, k << 1, l, mid) + query(a, b, k << 1, mid, r) +``` + +### C + +```cpp +query(a, b, (k << 1) + 1, l, mid) + query(a, b, (k + 1) >> 1, mid, r) +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/15.\346\230\216\347\240\201/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/15.\346\230\216\347\240\201/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..d1ec0777744340e66ce858824e7ccf409a8e4548 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/15.\346\230\216\347\240\201/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-627cd47f835d4067a9c95c0b8f982470", + "keywords": [ + "è“æ¡¥æ¯", + "明ç " + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/15.\346\230\216\347\240\201/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/15.\346\230\216\347\240\201/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..dcfbaa0354bf90c39a199a34533effd3eb9920a6 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/15.\346\230\216\347\240\201/desc.md" @@ -0,0 +1,32 @@ +汉å—çš„å—å½¢å˜åœ¨äºŽå—库ä¸ï¼Œå³ä¾¿åœ¨ä»Šå¤©ï¼Œ16点阵的å—库也ä»ç„¶ä½¿ç”¨å¹¿æ³›ã€‚ + +16点阵的å—库把æ¯ä¸ªæ±‰å—看æˆæ˜¯16x16个åƒç´ ä¿¡æ¯ã€‚并把这些信æ¯è®°å½•åœ¨å—节ä¸ã€‚ + +一个å—节å¯ä»¥å˜å‚¨8ä½ä¿¡æ¯ï¼Œç”¨32个å—节就å¯ä»¥å˜ä¸€ä¸ªæ±‰å—çš„å—形了。 + +把æ¯ä¸ªå—节转为2进制表示,1表示墨迹,0表示底色。 + +æ¯è¡Œ2个å—节,一共16行,布局是: + +第1å—节,第2å—节 +第3å—节,第4å—节 +… +第31å—节, 第32å—节 + +è¿™é“é¢˜ç›®æ˜¯ç»™ä½ ä¸€æ®µå¤šä¸ªæ±‰å—组æˆçš„ä¿¡æ¯ï¼Œæ¯ä¸ªæ±‰å—用32个å—节表示,这里给出了å—节作为有符å·æ•´æ•°çš„值。 + +题目的è¦æ±‚éšè—在这些信æ¯ä¸ã€‚ä½ çš„ä»»åŠ¡æ˜¯å¤åŽŸè¿™äº›æ±‰å—çš„å—形,从ä¸çœ‹å‡ºé¢˜ç›®çš„è¦æ±‚ï¼Œå¹¶æ ¹æ®è¦æ±‚填写ç”案。 + +这段信æ¯æ˜¯ï¼ˆä¸€å…±10个汉å—): +``` +4 0 4 0 4 0 4 32 -1 -16 4 32 4 32 4 32 4 32 4 32 8 32 8 32 16 34 16 34 32 30 -64 0 +16 64 16 64 34 68 127 126 66 -124 67 4 66 4 66 -124 126 100 66 36 66 4 66 4 66 4 126 4 66 40 0 16 +4 0 4 0 4 0 4 32 -1 -16 4 32 4 32 4 32 4 32 4 32 8 32 8 32 16 34 16 34 32 30 -64 0 +0 -128 64 -128 48 -128 17 8 1 -4 2 8 8 80 16 64 32 64 -32 64 32 -96 32 -96 33 16 34 8 36 14 40 4 +4 0 3 0 1 0 0 4 -1 -2 4 0 4 16 7 -8 4 16 4 16 4 16 8 16 8 16 16 16 32 -96 64 64 +16 64 20 72 62 -4 73 32 5 16 1 0 63 -8 1 0 -1 -2 0 64 0 80 63 -8 8 64 4 64 1 64 0 -128 +0 16 63 -8 1 0 1 0 1 0 1 4 -1 -2 1 0 1 0 1 0 1 0 1 0 1 0 1 0 5 0 2 0 +2 0 2 0 7 -16 8 32 24 64 37 -128 2 -128 12 -128 113 -4 2 8 12 16 18 32 33 -64 1 0 14 0 112 0 +1 0 1 0 1 0 9 32 9 16 17 12 17 4 33 16 65 16 1 32 1 64 0 -128 1 0 2 0 12 0 112 0 +0 0 0 0 7 -16 24 24 48 12 56 12 0 56 0 -32 0 -64 0 -128 0 0 0 0 1 -128 3 -64 1 -128 0 0 +``` \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/15.\346\230\216\347\240\201/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/15.\346\230\216\347\240\201/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..4284550be82b7cf240194b0e5a0db173cc7ec341 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/15.\346\230\216\347\240\201/solution.cpp" @@ -0,0 +1,47 @@ +#include <bits/stdc++.h> //万能头文件 +using namespace std; +const int N = 15; +void code(int x) +{ + int std[N], flag = 0; + if (x < 0) + flag = 1, x = -x; //å°äºŽ0求其ç»å¯¹å€¼ + for (int i = 0; i < 8; ++i) + { //转æ¢2进制 + std[i] = x % 2; + x /= 2; + } + if (flag) // 如果是负数è¦æ±‚è¡¥ç + for (int i = 0; i < 8; ++i) //对8ä½äºŒè¿›åˆ¶é历 + if (std[i] == 1 && i < 7) + { //找到ä¸ä¸º0çš„ç¬¬ä¸€ä½ + for (int j = i + 1; j < 8; ++j) + std[j] = 1 - std[j]; //从第ä¸ä¸ºé›¶çš„一ä½å¼€å§‹å–å + break; //跳出第一é‡for循环 + } + for (int i = 7; i >= 0; --i) + { //逆åºè¾“出 + if (std[i] == 0) + printf(" "); //0è¾“å‡ºç©ºæ ¼ + else + printf("*"); //1输出* + } +} +int main() +{ + int i = 10; + while (i--) + { //对10行数ç é历 + for (int j = 1; j < 17; ++j) + { //一行32个数,æ¯æ¬¡è¯»å–两个,所以循环16次 + int p; + scanf("%d", &p); + code(p); + scanf("%d", &p); + code(p); + printf("\n"); + } + printf("\n\n\n"); //输出完æˆä¸€ä¸ªå—åŽæ¢è¡Œ + } + return 0; +} diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/15.\346\230\216\347\240\201/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/15.\346\230\216\347\240\201/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/15.\346\230\216\347\240\201/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/15.\346\230\216\347\240\201/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..ac88d8501b00a198cfc6a8d3cce888ba92a00c73 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/15.\346\230\216\347\240\201/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "4b3866651eef41919f698e1adb5bea18" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/15.\346\230\216\347\240\201/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/15.\346\230\216\347\240\201/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..93811048efa673208aa11a846e1c17a0710ca89a --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/15.\346\230\216\347\240\201/solution.md" @@ -0,0 +1,74 @@ +# 明ç + +汉å—çš„å—å½¢å˜åœ¨äºŽå—库ä¸ï¼Œå³ä¾¿åœ¨ä»Šå¤©ï¼Œ16点阵的å—库也ä»ç„¶ä½¿ç”¨å¹¿æ³›ã€‚ + +16点阵的å—库把æ¯ä¸ªæ±‰å—看æˆæ˜¯16x16个åƒç´ ä¿¡æ¯ã€‚并把这些信æ¯è®°å½•åœ¨å—节ä¸ã€‚ + +一个å—节å¯ä»¥å˜å‚¨8ä½ä¿¡æ¯ï¼Œç”¨32个å—节就å¯ä»¥å˜ä¸€ä¸ªæ±‰å—çš„å—形了。 + +把æ¯ä¸ªå—节转为2进制表示,1表示墨迹,0表示底色。 + +æ¯è¡Œ2个å—节,一共16行,布局是: + +第1å—节,第2å—节 +第3å—节,第4å—节 +… +第31å—节, 第32å—节 + +è¿™é“é¢˜ç›®æ˜¯ç»™ä½ ä¸€æ®µå¤šä¸ªæ±‰å—组æˆçš„ä¿¡æ¯ï¼Œæ¯ä¸ªæ±‰å—用32个å—节表示,这里给出了å—节作为有符å·æ•´æ•°çš„值。 + +题目的è¦æ±‚éšè—在这些信æ¯ä¸ã€‚ä½ çš„ä»»åŠ¡æ˜¯å¤åŽŸè¿™äº›æ±‰å—çš„å—形,从ä¸çœ‹å‡ºé¢˜ç›®çš„è¦æ±‚ï¼Œå¹¶æ ¹æ®è¦æ±‚填写ç”案。 + +这段信æ¯æ˜¯ï¼ˆä¸€å…±10个汉å—): +``` +4 0 4 0 4 0 4 32 -1 -16 4 32 4 32 4 32 4 32 4 32 8 32 8 32 16 34 16 34 32 30 -64 0 +16 64 16 64 34 68 127 126 66 -124 67 4 66 4 66 -124 126 100 66 36 66 4 66 4 66 4 126 4 66 40 0 16 +4 0 4 0 4 0 4 32 -1 -16 4 32 4 32 4 32 4 32 4 32 8 32 8 32 16 34 16 34 32 30 -64 0 +0 -128 64 -128 48 -128 17 8 1 -4 2 8 8 80 16 64 32 64 -32 64 32 -96 32 -96 33 16 34 8 36 14 40 4 +4 0 3 0 1 0 0 4 -1 -2 4 0 4 16 7 -8 4 16 4 16 4 16 8 16 8 16 16 16 32 -96 64 64 +16 64 20 72 62 -4 73 32 5 16 1 0 63 -8 1 0 -1 -2 0 64 0 80 63 -8 8 64 4 64 1 64 0 -128 +0 16 63 -8 1 0 1 0 1 0 1 4 -1 -2 1 0 1 0 1 0 1 0 1 0 1 0 1 0 5 0 2 0 +2 0 2 0 7 -16 8 32 24 64 37 -128 2 -128 12 -128 113 -4 2 8 12 16 18 32 33 -64 1 0 14 0 112 0 +1 0 1 0 1 0 9 32 9 16 17 12 17 4 33 16 65 16 1 32 1 64 0 -128 1 0 2 0 12 0 112 0 +0 0 0 0 7 -16 24 24 48 12 56 12 0 56 0 -32 0 -64 0 -128 0 0 0 0 1 -128 3 -64 1 -128 0 0 +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +387420489 +``` + +## 选项 + +### A + +```cpp +10000000000 +``` + +### B + +```cpp +16777216 +``` + +### C + +```cpp +43046721 +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/16.\344\270\211\344\275\223\346\224\273\345\207\273/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/16.\344\270\211\344\275\223\346\224\273\345\207\273/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..6291b2ead0dea47207d24566d3a21303170286ea --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/16.\344\270\211\344\275\223\346\224\273\345\207\273/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-dfa89f3b35aa42cf86e0ad71d43060fe", + "keywords": [ + "è“æ¡¥æ¯", + "三体攻击" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/16.\344\270\211\344\275\223\346\224\273\345\207\273/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/16.\344\270\211\344\275\223\346\224\273\345\207\273/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..eb89f2d406f09b4866ac3fea87d4d034b45b8461 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/16.\344\270\211\344\275\223\346\224\273\345\207\273/desc.md" @@ -0,0 +1,41 @@ +#### 题目æè¿° +三体人将对地çƒå‘起攻击。为了抵御攻击,地çƒäººæ´¾å‡ºäº† A × B × C 艘战舰,在太空ä¸æŽ’æˆä¸€ä¸ª A 层 B è¡Œ C 列的立方体。其ä¸ï¼Œç¬¬ i 层第 j 行第 k 列的战舰(记为战舰 (i, j, k))的生命值为 d(i, j, k)。 + +三体人将会对地çƒå‘èµ· m 轮“立方体攻击â€ï¼Œæ¯æ¬¡æ”»å‡»ä¼šå¯¹ä¸€ä¸ªå°ç«‹æ–¹ä½“ä¸çš„æ‰€æœ‰æˆ˜èˆ°éƒ½é€ æˆç›¸åŒçš„伤害。具体地,第 t 轮攻击用 7 个å‚æ•° $la_t, ra_t, lb_t, rb_t, lc_t, rc_t, h_t $æè¿°ï¼› +所有满足$ i ∈ [la_t, ra_t],j ∈ [lb_t, rb_t],k ∈ [lc_t, rc_t] $的战舰 (i, j, k) 会å—到 $h_t$ 的伤害。如果一个战舰累计å—到的总伤害超过其防御力,那么这个战舰会爆炸。 + +地çƒæŒ‡æŒ¥å®˜å¸Œæœ›ä½ 能告诉他,第一艘爆炸的战舰是在哪一轮攻击åŽçˆ†ç‚¸çš„。 + +#### è¾“å…¥æ ¼å¼ +ä»Žæ ‡å‡†è¾“å…¥è¯»å…¥æ•°æ®ã€‚ +第一行包括 4 个æ£æ•´æ•° A, B, C, mï¼› +ç¬¬äºŒè¡ŒåŒ…å« A × B × C 个整数,其ä¸ç¬¬ ((i − 1)×B + (j − 1)) × C + (k − 1)+1 个数为 d(i, j, k)ï¼› +第 3 到第 m + 2 è¡Œä¸ï¼Œç¬¬ (t − 2) è¡ŒåŒ…å« 7 个æ£æ•´æ•° $la_t, ra_t, lb_t, rb_t, lc_t, rc_t, h_t$。 + +#### è¾“å‡ºæ ¼å¼ +è¾“å‡ºåˆ°æ ‡å‡†è¾“å‡ºã€‚ +输出第一个爆炸的战舰是在哪一轮攻击åŽçˆ†ç‚¸çš„。ä¿è¯ä¸€å®šå˜åœ¨è¿™æ ·çš„战舰。 + +#### æ ·ä¾‹è¾“å…¥ +``` +2 2 2 3 +1 1 1 1 1 1 1 1 +1 2 1 2 1 1 1 +1 1 1 2 1 2 1 +1 1 1 1 1 1 2 +``` +#### æ ·ä¾‹è¾“å‡º +``` +2 +``` +#### æ ·ä¾‹è§£é‡Š +在第 2 轮攻击åŽï¼Œæˆ˜èˆ° (1,1,1) 总共å—到了 2 点伤害,超出其防御力导致爆炸。 + +#### æ•°æ®çº¦å®š +``` +对于 10% çš„æ•°æ®ï¼ŒB = C = 1ï¼› +对于 20% çš„æ•°æ®ï¼ŒC = 1ï¼› +对于 40% çš„æ•°æ®ï¼ŒA × B × C, m ≤ 10, 000ï¼› +对于 70% çš„æ•°æ®ï¼ŒA, B, C ≤ 200ï¼› +对于所有数æ®ï¼ŒA × B × C ≤ 10^6, m ≤ 10^6, 0 ≤ d(i, j, k), ht ≤ 10^9。 +``` \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/16.\344\270\211\344\275\223\346\224\273\345\207\273/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/16.\344\270\211\344\275\223\346\224\273\345\207\273/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..9994ddb3ecb6da3ec77d27cf85334c764462d337 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/16.\344\270\211\344\275\223\346\224\273\345\207\273/solution.cpp" @@ -0,0 +1,98 @@ +#include <iostream> +#include <cstring> +#include <algorithm> +using namespace std; + +const int N = 2000010; + +typedef long long LL; +int A, B, C, m; +LL s[N], b[N], bp[N]; +int op[N / 2][7]; + +const int d[8][4] = { + {0, 0, 0, 1}, + {0, 0, 1, -1}, + {0, 1, 0, -1}, + {0, 1, 1, 1}, + {1, 0, 0, -1}, + {1, 0, 1, 1}, + {1, 1, 0, 1}, + {1, 1, 1, -1}}; + +int get(int i, int j, int k) +{ + + return (i * B + j) * C + k; +} + +bool check(int mid) +{ + memcpy(b, bp, sizeof bp); + for (int i = 1; i <= mid; i++) + { + int x1 = op[i][0], x2 = op[i][1], y1 = op[i][2], y2 = op[i][3], z1 = op[i][4], z2 = op[i][5], h = op[i][6]; + b[get(x1, y1, z1)] -= h; + b[get(x1, y1, z2 + 1)] += h; + b[get(x1, y2 + 1, z1)] += h; + b[get(x1, y2 + 1, z2 + 1)] -= h; + b[get(x2 + 1, y1, z1)] += h; + b[get(x2 + 1, y1, z2 + 1)] -= h; + b[get(x2 + 1, y2 + 1, z1)] -= h; + b[get(x2 + 1, y2 + 1, z2 + 1)] += h; + } + + memset(s, 0, sizeof s); + for (int i = 1; i <= A; i++) + for (int j = 1; j <= B; j++) + for (int k = 1; k <= C; k++) + { + s[get(i, j, k)] = b[get(i, j, k)]; + for (int u = 1; u < 8; u++) + { + int x = i - d[u][0], y = j - d[u][1], z = k - d[u][2], t = d[u][3]; + s[get(i, j, k)] -= s[get(x, y, z)] * t; + } + + if (s[get(i, j, k)] < 0) + return true; + } + + return false; +} + +int main() +{ + scanf("%d%d%d%d", &A, &B, &C, &m); + + for (int i = 1; i <= A; i++) + for (int j = 1; j <= B; j++) + for (int k = 1; k <= C; k++) + scanf("%lld", &s[get(i, j, k)]); + + for (int i = 1; i <= A; i++) + for (int j = 1; j <= B; j++) + for (int k = 1; k <= C; k++) + for (int u = 0; u < 8; u++) + { + int x = i - d[u][0], y = j - d[u][1], z = k - d[u][2], t = d[u][3]; + bp[get(i, j, k)] += s[get(x, y, z)] * t; + } + + for (int i = 1; i <= m; i++) + for (int j = 0; j < 7; j++) + scanf("%d", &op[i][j]); + + int l = 1, r = m; + while (l < r) + { + int mid = l + r >> 1; + if (check(mid)) + r = mid; + else + l = mid + 1; + } + + printf("%d\n", r); + return 0; +} diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/16.\344\270\211\344\275\223\346\224\273\345\207\273/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/16.\344\270\211\344\275\223\346\224\273\345\207\273/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/16.\344\270\211\344\275\223\346\224\273\345\207\273/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/16.\344\270\211\344\275\223\346\224\273\345\207\273/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..c5d297c51c85ed5aa29171f5d91c3327e4bf3922 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/16.\344\270\211\344\275\223\346\224\273\345\207\273/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "4db03bcefa5649d19f4dd5fe293221ab" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/16.\344\270\211\344\275\223\346\224\273\345\207\273/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/16.\344\270\211\344\275\223\346\224\273\345\207\273/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..c0cc3e07ef1a1598647873f441c2dd87c9e8afbb --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/16.\344\270\211\344\275\223\346\224\273\345\207\273/solution.md" @@ -0,0 +1,198 @@ +# 三体攻击 + + +**题目æè¿°** + +三体人将对地çƒå‘起攻击。为了抵御攻击,地çƒäººæ´¾å‡ºäº† A × B × C 艘战舰,在太空ä¸æŽ’æˆä¸€ä¸ª A 层 B è¡Œ C 列的立方体。其ä¸ï¼Œç¬¬ i 层第 j 行第 k 列的战舰(记为战舰 (i, j, k))的生命值为 d(i, j, k)。 + +三体人将会对地çƒå‘èµ· m 轮“立方体攻击â€ï¼Œæ¯æ¬¡æ”»å‡»ä¼šå¯¹ä¸€ä¸ªå°ç«‹æ–¹ä½“ä¸çš„æ‰€æœ‰æˆ˜èˆ°éƒ½é€ æˆç›¸åŒçš„伤害。具体地,第 t 轮攻击用 7 个å‚æ•° $la_t, ra_t, lb_t, rb_t, lc_t, rc_t, h_t $æè¿°ï¼› +所有满足$ i ∈ [la_t, ra_t],j ∈ [lb_t, rb_t],k ∈ [lc_t, rc_t] $的战舰 (i, j, k) 会å—到 $h_t$ 的伤害。如果一个战舰累计å—到的总伤害超过其防御力,那么这个战舰会爆炸。 + +地çƒæŒ‡æŒ¥å®˜å¸Œæœ›ä½ 能告诉他,第一艘爆炸的战舰是在哪一轮攻击åŽçˆ†ç‚¸çš„。 + + +**è¾“å…¥æ ¼å¼** + +ä»Žæ ‡å‡†è¾“å…¥è¯»å…¥æ•°æ®ã€‚ +第一行包括 4 个æ£æ•´æ•° A, B, C, mï¼› +ç¬¬äºŒè¡ŒåŒ…å« A × B × C 个整数,其ä¸ç¬¬ ((i − 1)×B + (j − 1)) × C + (k − 1)+1 个数为 d(i, j, k)ï¼› +第 3 到第 m + 2 è¡Œä¸ï¼Œç¬¬ (t − 2) è¡ŒåŒ…å« 7 个æ£æ•´æ•° $la_t, ra_t, lb_t, rb_t, lc_t, rc_t, h_t$。 + + +**è¾“å‡ºæ ¼å¼** + +è¾“å‡ºåˆ°æ ‡å‡†è¾“å‡ºã€‚ +输出第一个爆炸的战舰是在哪一轮攻击åŽçˆ†ç‚¸çš„。ä¿è¯ä¸€å®šå˜åœ¨è¿™æ ·çš„战舰。 + + +**æ ·ä¾‹è¾“å…¥** + +``` +2 2 2 3 +1 1 1 1 1 1 1 1 +1 2 1 2 1 1 1 +1 1 1 2 1 2 1 +1 1 1 1 1 1 2 +``` + +**æ ·ä¾‹è¾“å‡º** + +``` +2 +``` + +**æ ·ä¾‹è§£é‡Š** + +在第 2 轮攻击åŽï¼Œæˆ˜èˆ° (1,1,1) 总共å—到了 2 点伤害,超出其防御力导致爆炸。 + + +**æ•°æ®çº¦å®š** + +``` +对于 10% çš„æ•°æ®ï¼ŒB = C = 1ï¼› +对于 20% çš„æ•°æ®ï¼ŒC = 1ï¼› +对于 40% çš„æ•°æ®ï¼ŒA × B × C, m ≤ 10, 000ï¼› +对于 70% çš„æ•°æ®ï¼ŒA, B, C ≤ 200ï¼› +对于所有数æ®ï¼ŒA × B × C ≤ 10^6, m ≤ 10^6, 0 ≤ d(i, j, k), ht ≤ 10^9。 +``` + +以下程åºå®žçŽ°äº†è¿™ä¸€åŠŸèƒ½ï¼Œè¯·ä½ 补全空白处的内容: + +```cpp +#include <bits/stdc++.h> +using namespace std; + +const int N = 2000010; + +typedef long long LL; +int A, B, C, m; +LL s[N], b[N], bp[N]; +int op[N / 2][7]; + +const int d[8][4] = { + {0, 0, 0, 1}, + {0, 0, 1, -1}, + {0, 1, 0, -1}, + {0, 1, 1, 1}, + {1, 0, 0, -1}, + {1, 0, 1, 1}, + {1, 1, 0, 1}, + {1, 1, 1, -1}}; + +int get(int i, int j, int k) +{ + + return (i * B + j) * C + k; +} + +bool check(int mid) +{ + memcpy(b, bp, sizeof bp); + for (int i = 1; i <= mid; i++) + { + int x1 = op[i][0], x2 = op[i][1], y1 = op[i][2], y2 = op[i][3], z1 = op[i][4], z2 = op[i][5], h = op[i][6]; + b[get(x1, y1, z1)] -= h; + b[get(x1, y1, z2 + 1)] += h; + b[get(x1, y2 + 1, z1)] += h; + b[get(x1, y2 + 1, z2 + 1)] -= h; + b[get(x2 + 1, y1, z1)] += h; + b[get(x2 + 1, y1, z2 + 1)] -= h; + b[get(x2 + 1, y2 + 1, z1)] -= h; + b[get(x2 + 1, y2 + 1, z2 + 1)] += h; + } + + memset(s, 0, sizeof s); + for (int i = 1; i <= A; i++) + for (int j = 1; j <= B; j++) + for (int k = 1; k <= C; k++) + { + s[get(i, j, k)] = b[get(i, j, k)]; + for (int u = 1; u < 8; u++) + { + int x = i - d[u][0], y = j - d[u][1], z = k - d[u][2], t = d[u][3]; + s[get(i, j, k)] -= s[get(x, y, z)] * t; + } + + if (s[get(i, j, k)] < 0) + return true; + } + + return false; +} + +int main() +{ + scanf("%d%d%d%d", &A, &B, &C, &m); + + for (int i = 1; i <= A; i++) + for (int j = 1; j <= B; j++) + for (int k = 1; k <= C; k++) + scanf("%lld", &s[get(i, j, k)]); + + for (int i = 1; i <= A; i++) + for (int j = 1; j <= B; j++) + for (int k = 1; k <= C; k++) + for (int u = 0; u < 8; u++) + { + int x = i - d[u][0], y = j - d[u][1], z = k - d[u][2], t = d[u][3]; + __________________ + } + + for (int i = 1; i <= m; i++) + for (int j = 0; j < 7; j++) + scanf("%d", &op[i][j]); + + int l = 1, r = m; + while (l < r) + { + int mid = l + r >> 1; + if (check(mid)) + r = mid; + else + l = mid + 1; + } + + printf("%d\n", r); + return 0; +} +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +bp[get(i, j, k)] += s[get(x, y, z)] * t; +``` + +## 选项 + +### A + +```cpp +bp[get(i, j, k)] = s[get(x, y, z)] * t; +``` + +### B + +```cpp +bp[get(i, j, k)] *= s[get(x, y, z)] * t; +``` + +### C + +```cpp +bp[get(i, j, k)] = s[get(x, y, z)] + t; +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/17.\345\205\260\351\241\277\350\232\202\350\232\201/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/17.\345\205\260\351\241\277\350\232\202\350\232\201/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..ba4e5e334a6e5b27bb94e68b77b0f4d12dd618dd --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/17.\345\205\260\351\241\277\350\232\202\350\232\201/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-8ad88f17b5e2460abe964d49ffae23eb", + "keywords": [ + "è“æ¡¥æ¯", + "å…°é¡¿èš‚èš" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/17.\345\205\260\351\241\277\350\232\202\350\232\201/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/17.\345\205\260\351\241\277\350\232\202\350\232\201/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..f3f859a830b1e89aeeaeec2f3ee384416901fb9c --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/17.\345\205\260\351\241\277\350\232\202\350\232\201/desc.md" @@ -0,0 +1,46 @@ +问题æè¿° + + +å…°é¡¿èš‚èšï¼Œæ˜¯äºŽ1986年,由克里斯·兰顿æ出æ¥çš„,属于细胞自动机的一ç§ã€‚ +å¹³é¢ä¸Šçš„æ£æ–¹å½¢æ ¼å被填上黑色或白色。在其ä¸ä¸€æ ¼æ£æ–¹å½¢å†…有一åªâ€œèš‚èšâ€ã€‚ +èš‚èšçš„头部æœå‘为:上下左å³å…¶ä¸ä¸€æ–¹ã€‚ +èš‚èšçš„移动规则å分简å•ï¼š +若蚂èšåœ¨é»‘æ ¼ï¼Œå³è½¬90åº¦ï¼Œå°†è¯¥æ ¼æ”¹ä¸ºç™½æ ¼ï¼Œå¹¶å‘å‰ç§»ä¸€æ ¼ï¼› +若蚂èšåœ¨ç™½æ ¼ï¼Œå·¦è½¬90åº¦ï¼Œå°†è¯¥æ ¼æ”¹ä¸ºé»‘æ ¼ï¼Œå¹¶å‘å‰ç§»ä¸€æ ¼ã€‚ + +规则虽然简å•ï¼Œèš‚èšçš„行为å´å分å¤æ‚。刚刚开始时留下的路线都会有接近对称,åƒæ˜¯ä¼šé‡å¤ï¼Œä½†ä¸è®ºèµ·å§‹çŠ¶æ€å¦‚何,蚂èšç»è¿‡æ¼«é•¿çš„混乱活动åŽï¼Œä¼šå¼€è¾Ÿå‡ºä¸€æ¡è§„则的“高速公路â€ã€‚ +èš‚èšçš„路线是很难事先预测的。 +ä½ çš„ä»»åŠ¡æ˜¯æ ¹æ®åˆå§‹çŠ¶æ€ï¼Œç”¨è®¡ç®—机模拟兰顿蚂èšåœ¨ç¬¬næ¥è¡Œèµ°åŽæ‰€å¤„çš„ä½ç½®ã€‚ +#### è¾“å…¥æ ¼å¼ +输入数æ®çš„第一行是 m n 两个整数(3 < m, n < 100),表示æ£æ–¹å½¢æ ¼å的行数和列数。 +接下æ¥æ˜¯ m 行数æ®ã€‚ +æ¯è¡Œæ•°æ®ä¸º n ä¸ªè¢«ç©ºæ ¼åˆ†å¼€çš„æ•°å—。0 è¡¨ç¤ºç™½æ ¼ï¼Œ1 è¡¨ç¤ºé»‘æ ¼ã€‚ +接下æ¥æ˜¯ä¸€è¡Œæ•°æ®ï¼šx y s k, å…¶ä¸x y为整数,表示蚂èšæ‰€åœ¨è¡Œå·å’Œåˆ—å·ï¼ˆè¡Œå·ä»Žä¸Šåˆ°ä¸‹å¢žé•¿ï¼Œåˆ—å·ä»Žå·¦åˆ°å³å¢žé•¿ï¼Œéƒ½æ˜¯ä»Ž0开始编å·ï¼‰ã€‚s 是一个大写å—æ¯ï¼Œè¡¨ç¤ºèš‚èšå¤´çš„æœå‘,我们约定:上下左å³åˆ†åˆ«ç”¨ï¼šUDLR表示。k 表示蚂èšèµ°çš„æ¥æ•°ã€‚ +#### è¾“å‡ºæ ¼å¼ +输出数æ®ä¸ºä¸¤ä¸ªç©ºæ ¼åˆ†å¼€çš„æ•´æ•° p q, 分别表示蚂èšåœ¨kæ¥åŽï¼Œæ‰€å¤„æ ¼åçš„è¡Œå·å’Œåˆ—å·ã€‚ +#### æ ·ä¾‹è¾“å…¥ +``` +5 6 +0 0 0 0 0 0 +0 0 0 0 0 0 +0 0 1 0 0 0 +0 0 0 0 0 0 +0 0 0 0 0 0 +2 3 L 5 +``` +#### æ ·ä¾‹è¾“å‡º +``` +1 3 +``` +#### æ ·ä¾‹è¾“å…¥ +``` +3 3 +0 0 0 +1 1 1 +1 1 1 +1 1 U 6 +``` +#### æ ·ä¾‹è¾“å‡º +``` +0 0 +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/17.\345\205\260\351\241\277\350\232\202\350\232\201/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/17.\345\205\260\351\241\277\350\232\202\350\232\201/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..7c51d900de336c15b38fe43c2e21579a8eb1ae33 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/17.\345\205\260\351\241\277\350\232\202\350\232\201/solution.cpp" @@ -0,0 +1,73 @@ +#include <iostream> +#include <cstdio> +using namespace std; +int a[105][105]; //定义一个二维数组å˜å‚¨æ ¼å颜色 + +int main() +{ + int m, n; + int x, y, k; + char s; + cin >> m >> n; + for (int i = 0; i < m; i++) + { + for (int j = 0; j < n; j++) + { + cin >> a[i][j]; + } + } + scanf("%d %d %c %d", &x, &y, &s, &k); + while (k--) + { + if (a[x][y] == 1) //èš‚èšåœ¨é»‘æ ¼ + { + a[x][y] = 0; + if (s == 'U') + { + y++; + s = 'R'; + } + else if (s == 'D') + { + y--; + s = 'L'; + } + else if (s == 'L') + { + x--; + s = 'U'; + } + else if (s == 'R') + { + x++; + s = 'D'; + } + } + else //èš‚èšåœ¨ç™½æ ¼ + { + a[x][y] = 1; + if (s == 'U') + { + y--; + s = 'L'; + } + else if (s == 'D') + { + y++; + s = 'R'; + } + else if (s == 'L') + { + x++; + s = 'D'; + } + else if (s == 'R') + { + x--; + s = 'U'; + } + } + } + printf("%d %d\n", x, y); + return 0; +} diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/17.\345\205\260\351\241\277\350\232\202\350\232\201/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/17.\345\205\260\351\241\277\350\232\202\350\232\201/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/17.\345\205\260\351\241\277\350\232\202\350\232\201/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/17.\345\205\260\351\241\277\350\232\202\350\232\201/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..1139f17a0c1c154789d88b501e1b885d691af79f --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/17.\345\205\260\351\241\277\350\232\202\350\232\201/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "802f2c1b8c8b43b7bcc3880221a7fd63" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/17.\345\205\260\351\241\277\350\232\202\350\232\201/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/17.\345\205\260\351\241\277\350\232\202\350\232\201/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..6dc0e7a91096e7573597545160ee329e6f46bf3e --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/5.\350\223\235\346\241\245\346\235\257-\346\250\241\346\213\237/17.\345\205\260\351\241\277\350\232\202\350\232\201/solution.md" @@ -0,0 +1,215 @@ +# å…°é¡¿èš‚èš + +问题æè¿° + + +å…°é¡¿èš‚èšï¼Œæ˜¯äºŽ1986年,由克里斯·兰顿æ出æ¥çš„,属于细胞自动机的一ç§ã€‚ +å¹³é¢ä¸Šçš„æ£æ–¹å½¢æ ¼å被填上黑色或白色。在其ä¸ä¸€æ ¼æ£æ–¹å½¢å†…有一åªâ€œèš‚èšâ€ã€‚ +èš‚èšçš„头部æœå‘为:上下左å³å…¶ä¸ä¸€æ–¹ã€‚ +èš‚èšçš„移动规则å分简å•ï¼š +若蚂èšåœ¨é»‘æ ¼ï¼Œå³è½¬90åº¦ï¼Œå°†è¯¥æ ¼æ”¹ä¸ºç™½æ ¼ï¼Œå¹¶å‘å‰ç§»ä¸€æ ¼ï¼› +若蚂èšåœ¨ç™½æ ¼ï¼Œå·¦è½¬90åº¦ï¼Œå°†è¯¥æ ¼æ”¹ä¸ºé»‘æ ¼ï¼Œå¹¶å‘å‰ç§»ä¸€æ ¼ã€‚ + +规则虽然简å•ï¼Œèš‚èšçš„行为å´å分å¤æ‚。刚刚开始时留下的路线都会有接近对称,åƒæ˜¯ä¼šé‡å¤ï¼Œä½†ä¸è®ºèµ·å§‹çŠ¶æ€å¦‚何,蚂èšç»è¿‡æ¼«é•¿çš„混乱活动åŽï¼Œä¼šå¼€è¾Ÿå‡ºä¸€æ¡è§„则的“高速公路â€ã€‚ +èš‚èšçš„路线是很难事先预测的。 +ä½ çš„ä»»åŠ¡æ˜¯æ ¹æ®åˆå§‹çŠ¶æ€ï¼Œç”¨è®¡ç®—机模拟兰顿蚂èšåœ¨ç¬¬næ¥è¡Œèµ°åŽæ‰€å¤„çš„ä½ç½®ã€‚ + +**è¾“å…¥æ ¼å¼** + +输入数æ®çš„第一行是 m n 两个整数(3 < m, n < 100),表示æ£æ–¹å½¢æ ¼å的行数和列数。 +接下æ¥æ˜¯ m 行数æ®ã€‚ +æ¯è¡Œæ•°æ®ä¸º n ä¸ªè¢«ç©ºæ ¼åˆ†å¼€çš„æ•°å—。0 è¡¨ç¤ºç™½æ ¼ï¼Œ1 è¡¨ç¤ºé»‘æ ¼ã€‚ +接下æ¥æ˜¯ä¸€è¡Œæ•°æ®ï¼šx y s k, å…¶ä¸x y为整数,表示蚂èšæ‰€åœ¨è¡Œå·å’Œåˆ—å·ï¼ˆè¡Œå·ä»Žä¸Šåˆ°ä¸‹å¢žé•¿ï¼Œåˆ—å·ä»Žå·¦åˆ°å³å¢žé•¿ï¼Œéƒ½æ˜¯ä»Ž0开始编å·ï¼‰ã€‚s 是一个大写å—æ¯ï¼Œè¡¨ç¤ºèš‚èšå¤´çš„æœå‘,我们约定:上下左å³åˆ†åˆ«ç”¨ï¼šUDLR表示。k 表示蚂èšèµ°çš„æ¥æ•°ã€‚ + +**è¾“å‡ºæ ¼å¼** + +输出数æ®ä¸ºä¸¤ä¸ªç©ºæ ¼åˆ†å¼€çš„æ•´æ•° p q, 分别表示蚂èšåœ¨kæ¥åŽï¼Œæ‰€å¤„æ ¼åçš„è¡Œå·å’Œåˆ—å·ã€‚ + +**æ ·ä¾‹è¾“å…¥** + +``` +5 6 +0 0 0 0 0 0 +0 0 0 0 0 0 +0 0 1 0 0 0 +0 0 0 0 0 0 +0 0 0 0 0 0 +2 3 L 5 +``` + +**æ ·ä¾‹è¾“å‡º** + +``` +1 3 +``` + +**æ ·ä¾‹è¾“å…¥** + +``` +3 3 +0 0 0 +1 1 1 +1 1 1 +1 1 U 6 +``` + +**æ ·ä¾‹è¾“å‡º** + +``` +0 0 +``` + +以下程åºå®žçŽ°äº†è¯¥åŠŸèƒ½ï¼Œè¯·ä½ 补全空白处内容: + +```cpp +#include <bits/stdc++.h> +using namespace std; + +typedef enum _direction +{ + Dup, + Dright, + Ddown, + Dleft +} Direction; + +void SolveNextDirection(Direction direction, int **arr, int nRow, int nCol, int move) +{ + int n = 0; + while (n < move) + { + if (arr[nRow][nCol] == 1) + { + if (direction == Dleft) + { + direction = Dup; + } + else + direction = (Direction)(direction + 1); + + arr[nRow][nCol] = 0; + } + else + { + if (direction == Dup) + { + direction = Dleft; + } + else + direction = (Direction)(direction - 1); + arr[nRow][nCol] = 1; + } + __________________ + ++n; + } + + cout << nRow << " " << nCol << endl; +} + +int main() +{ + int m, n; + int nRow, nCol, move; + char Dre; + Direction direction; + cin >> m >> n; + int **arr = new int *[m]; + for (int i = 0; i < m; ++i) + { + arr[i] = new int[n]; + } + for (int i = 0; i < m; ++i) + for (int j = 0; j < n; ++j) + { + cin >> arr[i][j]; + } + cin >> nRow >> nCol >> Dre >> move; + if (Dre == 'U') + { + direction = Dup; + } + else if (Dre == 'R') + { + direction = Dright; + } + else if (Dre == 'D') + { + direction = Ddown; + } + else + direction = Dleft; + + SolveNextDirection(direction, arr, nRow, nCol, move); + delete[] arr; + return 0; +} +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +if (direction == Dup) + nRow -= 1; +else if (direction == Dright) + nCol += 1; +else if (direction == Ddown) + nRow += 1; +else + nCol -= 1; +``` + +## 选项 + +### A + +```cpp +if (direction == Dup) + nRow += 1; +else if (direction == Dright) + nCol -= 1; +else if (direction == Ddown) + nRow += 1; +else + nCol -= 1; +++n; +``` + +### B + +```cpp +if (direction == Dup) + nRow += 1; +else if (direction == Dright) + nCol -= 1; +else if (direction == Ddown) + nRow -= 1; +else + nCol += 1; +``` + +### C + +```cpp +if (direction == Dup) + nRow -= 1; +else if (direction == Dright) + nCol += 1; +else if (direction == Ddown) + nRow -= 1; +else + nCol += 1; +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/6.\350\223\235\346\241\245\346\235\257-\346\220\234\347\264\242/13.\345\255\227\344\270\262\346\216\222\345\272\217/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/6.\350\223\235\346\241\245\346\235\257-\346\220\234\347\264\242/13.\345\255\227\344\270\262\346\216\222\345\272\217/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..0a30142f43639c961b78e81a7cfb2a7941a40714 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/6.\350\223\235\346\241\245\346\235\257-\346\220\234\347\264\242/13.\345\255\227\344\270\262\346\216\222\345\272\217/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-4b2e60353629424a8de36420863aec94", + "keywords": [ + "è“æ¡¥æ¯", + "å—串排åº" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/6.\350\223\235\346\241\245\346\235\257-\346\220\234\347\264\242/13.\345\255\227\344\270\262\346\216\222\345\272\217/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/6.\350\223\235\346\241\245\346\235\257-\346\220\234\347\264\242/13.\345\255\227\344\270\262\346\216\222\345\272\217/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..c31915634e7c8caf144ef50fbdaa83b8dc7b0afd --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/6.\350\223\235\346\241\245\346\235\257-\346\220\234\347\264\242/13.\345\255\227\344\270\262\346\216\222\345\272\217/desc.md" @@ -0,0 +1,35 @@ +#### 问题æè¿° +å°è“最近å¦ä¹ 了一些排åºç®—法,其ä¸å†’泡排åºè®©ä»–å°è±¡æ·±åˆ»ã€‚ +在冒泡排åºä¸ï¼Œæ¯æ¬¡åªèƒ½äº¤æ¢ç›¸é‚»çš„ä¸¤ä¸ªå…ƒç´ ã€‚å°è“å‘现,如果对一个å—符串ä¸çš„å—符排åºï¼Œåªå…许交æ¢ç›¸é‚»çš„两个å—符,则在所有å¯èƒ½çš„排åºæ–¹æ¡ˆä¸ï¼Œå†’泡排åºçš„总交æ¢æ¬¡æ•°æ˜¯æœ€å°‘的。 +例如,对于å—符串 lan 排åºï¼Œåªéœ€è¦ 1 次交æ¢ã€‚对于å—符串 qiao 排åºï¼Œæ€»å…±éœ€è¦ 4 次交æ¢ã€‚ +å°è“找到了很多å—符串试图排åºï¼Œä»–æ°å·§ç¢°åˆ°ä¸€ä¸ªå—ç¬¦ä¸²ï¼Œéœ€è¦ V 次交æ¢ï¼Œå¯æ˜¯ä»–忘了把这个å—符串记下æ¥ï¼ŒçŽ°åœ¨æ‰¾ä¸åˆ°äº†ã€‚ +请帮助å°è“找一个åªåŒ…å«å°å†™è‹±æ–‡å—æ¯ä¸”没有å—æ¯é‡å¤å‡ºçŽ°çš„å—符串,对该串的å—符排åºï¼Œæ£å¥½éœ€è¦ V 次交æ¢ã€‚如果å¯èƒ½æ‰¾åˆ°å¤šä¸ªï¼Œè¯·å‘Šè¯‰å°è“最çŸçš„那个。如果最çŸçš„ä»ç„¶æœ‰å¤šä¸ªï¼Œè¯·å‘Šè¯‰å°è“å—å…¸åºæœ€å°çš„那个。请注æ„å—符串ä¸å¯ä»¥åŒ…å«ç›¸åŒçš„å—符。 + +#### è¾“å…¥æ ¼å¼ +输入的第一行包å«ä¸€ä¸ªæ•´æ•°V,å°è“的幸è¿æ•°å—。 + +#### è¾“å‡ºæ ¼å¼ +题é¢è¦æ±‚的一行å—符串。 + +#### æ ·ä¾‹è¾“å…¥ +``` +4 +``` +#### æ ·ä¾‹è¾“å‡º +``` +bbaa +``` +#### æ ·ä¾‹è¾“å…¥ +``` +100 +``` +#### æ ·ä¾‹è¾“å‡º +``` +jihgfeeddccbbaa +``` +#### 评测用例规模与约定 +``` +对于 30% 的评测用例, 1 ≤ V ≤ 20。 +对于 50% 的评测用例, 1 ≤ V ≤ 100。 +对于所有评测用例, 1 ≤ V ≤ 10000。 +``` \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/6.\350\223\235\346\241\245\346\235\257-\346\220\234\347\264\242/13.\345\255\227\344\270\262\346\216\222\345\272\217/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/6.\350\223\235\346\241\245\346\235\257-\346\220\234\347\264\242/13.\345\255\227\344\270\262\346\216\222\345\272\217/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..bd163915cf046f45494c08072017fd6687f406d8 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/6.\350\223\235\346\241\245\346\235\257-\346\220\234\347\264\242/13.\345\255\227\344\270\262\346\216\222\345\272\217/solution.cpp" @@ -0,0 +1,45 @@ +#include <iostream> +#include <cstdio> +#include <cstring> +#include <algorithm> +#include <cmath> +#include <vector> +using namespace std; +const int N = 1e5 + 5; +char str[N]; +int main() +{ //å—æ¯åªæœ‰26个,数大了就会超,剩下的还è¦åˆ†æƒ…况 + // ios::sync_with_stdio(false); + // cin.tie(false); + int n; + cin >> n; + int r = 0; + while (r * (r + 1) / 2 < n) + r++; + r++; + // cout<<r<<endl; + int t = (r - 1) * r / 2 - n; + // cout<<t<<endl; + str[r - 1] = 'a'; + for (int i = r - 2; i >= 0; i--) + { + if (t > r / 2) + { + str[i] = str[i + 1]; + i--; + str[i] = str[i + 1]; + i--; + t -= 3; + } + else if (t > 0) + { + str[i] = str[i + 1]; + i--; + t--; + } + if (i >= 0) + str[i] = str[i + 1] + 1; + } + puts(str); + return 0; +} diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/6.\350\223\235\346\241\245\346\235\257-\346\220\234\347\264\242/13.\345\255\227\344\270\262\346\216\222\345\272\217/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/6.\350\223\235\346\241\245\346\235\257-\346\220\234\347\264\242/13.\345\255\227\344\270\262\346\216\222\345\272\217/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/6.\350\223\235\346\241\245\346\235\257-\346\220\234\347\264\242/13.\345\255\227\344\270\262\346\216\222\345\272\217/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/6.\350\223\235\346\241\245\346\235\257-\346\220\234\347\264\242/13.\345\255\227\344\270\262\346\216\222\345\272\217/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..6ec91b135165143b3db0637cdf6b4c99b301fa1a --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/6.\350\223\235\346\241\245\346\235\257-\346\220\234\347\264\242/13.\345\255\227\344\270\262\346\216\222\345\272\217/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "156e715e2a744a2eb5a0548a19a4541e" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/6.\350\223\235\346\241\245\346\235\257-\346\220\234\347\264\242/13.\345\255\227\344\270\262\346\216\222\345\272\217/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/6.\350\223\235\346\241\245\346\235\257-\346\220\234\347\264\242/13.\345\255\227\344\270\262\346\216\222\345\272\217/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..41076b33ae15e8fa1f96befaefdbaf84ea4a6603 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/6.\350\223\235\346\241\245\346\235\257-\346\220\234\347\264\242/13.\345\255\227\344\270\262\346\216\222\345\272\217/solution.md" @@ -0,0 +1,198 @@ +# å—ä¸²æŽ’åº + + +**问题æè¿°** + +å°è“最近å¦ä¹ 了一些排åºç®—法,其ä¸å†’泡排åºè®©ä»–å°è±¡æ·±åˆ»ã€‚ +在冒泡排åºä¸ï¼Œæ¯æ¬¡åªèƒ½äº¤æ¢ç›¸é‚»çš„ä¸¤ä¸ªå…ƒç´ ã€‚å°è“å‘现,如果对一个å—符串ä¸çš„å—符排åºï¼Œåªå…许交æ¢ç›¸é‚»çš„两个å—符,则在所有å¯èƒ½çš„排åºæ–¹æ¡ˆä¸ï¼Œå†’泡排åºçš„总交æ¢æ¬¡æ•°æ˜¯æœ€å°‘的。 +例如,对于å—符串 lan 排åºï¼Œåªéœ€è¦ 1 次交æ¢ã€‚对于å—符串 qiao 排åºï¼Œæ€»å…±éœ€è¦ 4 次交æ¢ã€‚ +å°è“找到了很多å—符串试图排åºï¼Œä»–æ°å·§ç¢°åˆ°ä¸€ä¸ªå—ç¬¦ä¸²ï¼Œéœ€è¦ V 次交æ¢ï¼Œå¯æ˜¯ä»–忘了把这个å—符串记下æ¥ï¼ŒçŽ°åœ¨æ‰¾ä¸åˆ°äº†ã€‚ +请帮助å°è“找一个åªåŒ…å«å°å†™è‹±æ–‡å—æ¯ä¸”没有å—æ¯é‡å¤å‡ºçŽ°çš„å—符串,对该串的å—符排åºï¼Œæ£å¥½éœ€è¦ V 次交æ¢ã€‚如果å¯èƒ½æ‰¾åˆ°å¤šä¸ªï¼Œè¯·å‘Šè¯‰å°è“最çŸçš„那个。如果最çŸçš„ä»ç„¶æœ‰å¤šä¸ªï¼Œè¯·å‘Šè¯‰å°è“å—å…¸åºæœ€å°çš„那个。请注æ„å—符串ä¸å¯ä»¥åŒ…å«ç›¸åŒçš„å—符。 + + +**è¾“å…¥æ ¼å¼** + +输入的第一行包å«ä¸€ä¸ªæ•´æ•°V,å°è“的幸è¿æ•°å—。 + + +**è¾“å‡ºæ ¼å¼** + +题é¢è¦æ±‚的一行å—符串。 + + +**æ ·ä¾‹è¾“å…¥** + +``` +4 +``` + +**æ ·ä¾‹è¾“å‡º** + +``` +bbaa +``` + +**æ ·ä¾‹è¾“å…¥** + +``` +100 +``` + +**æ ·ä¾‹è¾“å‡º** + +``` +jihgfeeddccbbaa +``` + +**评测用例规模与约定** + +``` +对于 30% 的评测用例, 1 ≤ V ≤ 20。 +对于 50% 的评测用例, 1 ≤ V ≤ 100。 +对于所有评测用例, 1 ≤ V ≤ 10000。 +``` + +下é¢çš„程åºå®žçŽ°äº†è¿™ä¸€åŠŸèƒ½ï¼Œè¯·ä½ 补全空白处内容: + +```cpp +#include <bits/stdc++.h> +using namespace std; +const int maxn = 1e6 + 5; +const int mod = 1e9 + 7; +int dp[152][26][152]; +int dfs(int pre, int x, int aft) +{ + int &d = dp[pre][x][aft]; + if (~d) + return d; + if (x == 1) + return d = pre * aft; + if (aft == 0) + { + if (x != 0) + return -1e9; + return 0; + } + int ans = 0; + for (int i = 1; i <= aft; i++) + { + int res = dfs(pre + i, x - 1, aft - i) + i * pre; + if (ans < res) + { + ans = res; + } + } + return d = ans; +} +void dfs2(int pre, int x, int aft, int rest, string &res) +{ + if (x == 1) + { + res += string(aft, 'a'); + return; + } + int len = 1e9; + for (int i = 1; i <= aft; i++) + { + int d = dfs(pre + i, x - 1, aft - i) + i * pre; + if (d >= rest) + { + len = i; + break; + } + } + res += string(len, 'a' + x - 1); + rest -= len * pre; + __________________ + return; +} +int calc(string a) +{ + int n = a.size(); + int ans = 0; + for (int i = 0; i < n; i++) + { + for (int j = i + 1; j < n; j++) + { + if (a[i] > a[j]) + ans++; + } + } + return ans; +} +void solve(int v) +{ + memset(dp, -1, sizeof dp); + int len = 1e9, x = 1e9; + for (int i = 1; i <= 150; i++) + { + for (int j = 1; j <= 26; j++) + { + if (dfs(0ll, j, i) >= v) + { + if (len > i) + { + len = i, x = j; + } + else if (len == i) + { + x = min(x, j); + } + } + } + } + string ans; + dfs2(0, x, len, v, ans); + cout << ans << endl; + return; +} +int main() +{ + ios::sync_with_stdio(false); + int n; + cin >> n; + solve(n); + return 0; +} +``` + + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +dfs2(pre + len, x - 1, aft - len, rest, res); +``` + +## 选项 + +### A + +```cpp +dfs2(pre + len, x, aft - len, rest, res); +``` + +### B + +```cpp +dfs2(pre + len, x - 1, aft - 1, rest, res); +``` + +### C + +```cpp +dfs2(pre + len, x - 1, aft, rest, res); +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/6.\347\263\226\346\236\234/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/6.\347\263\226\346\236\234/solution.md" index cb0f5e56b6076cc30327acc42887c4625a1d2f81..29ad2cbf6174f1dddb8147ff9f312fb5e3827dbc 100644 --- "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/6.\347\263\226\346\236\234/solution.md" +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/6.\347\263\226\346\236\234/solution.md" @@ -34,7 +34,7 @@ 2 ``` -以下错误的一项是? +以下<span style="color:red">错误</span>的一项是? ## aop diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/7.\347\237\251\351\230\265/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/7.\347\237\251\351\230\265/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..5510c06cd06f7df2d7b59573076cd83ed9123969 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/7.\347\237\251\351\230\265/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-d70bc24ce5604f50ad73e70e07d4ace6", + "keywords": [ + "è“æ¡¥æ¯", + "矩阵" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/7.\347\237\251\351\230\265/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/7.\347\237\251\351\230\265/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..734d19c6b90c292ab64ddb059b74a94b40e68989 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/7.\347\237\251\351\230\265/desc.md" @@ -0,0 +1,5 @@ +把 1 ∼ 2020 放在 2 × 1010 的矩阵里。 + +è¦æ±‚åŒä¸€è¡Œä¸å³è¾¹çš„比左边大,åŒä¸€åˆ—ä¸ä¸‹è¾¹çš„比上边的大。一共有多少ç§æ–¹æ¡ˆï¼Ÿ + +ç”æ¡ˆå¾ˆå¤§ï¼Œä½ åªéœ€è¦ç»™å‡ºæ–¹æ¡ˆæ•°é™¤ä»¥ 2020 的余数å³å¯ã€‚ \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/7.\347\237\251\351\230\265/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/7.\347\237\251\351\230\265/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..27251c1950cd60a1c8e7a1ee78eca0b632c6f66c --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/7.\347\237\251\351\230\265/solution.cpp" @@ -0,0 +1,21 @@ +#include <stdio.h> +int DP[1011][1011]; +int main() +{ + int i, j; + DP[1][0] = 1; + for (i = 1; i <= 1010; i++) + DP[i][0] = 1; //åˆå§‹åŒ– + for (i = 1; i <= 1010; i++) + { + for (j = 1; j <= i; j++) + { + if (i == j) + DP[i][j] = DP[i][j - 1]; + else + DP[i][j] = (DP[i - 1][j] + DP[i][j - 1]) % 2020; + } + } + printf("%d", DP[1010][1010]); + return 0; +} diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/7.\347\237\251\351\230\265/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/7.\347\237\251\351\230\265/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/7.\347\237\251\351\230\265/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/7.\347\237\251\351\230\265/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..9ac1a454c5959fea0ad60df0ee53298472399d57 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/7.\347\237\251\351\230\265/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "483bdaab5a5a4b239c9ae9064f112ad3" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/7.\347\237\251\351\230\265/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/7.\347\237\251\351\230\265/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..62ae1782abf458e2cf12d71b94db045cf48f1875 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/7.\347\237\251\351\230\265/solution.md" @@ -0,0 +1,73 @@ +# 矩阵 + +把 1 ∼ 2020 放在 2 × 1010 的矩阵里。 + +è¦æ±‚åŒä¸€è¡Œä¸å³è¾¹çš„比左边大,åŒä¸€åˆ—ä¸ä¸‹è¾¹çš„比上边的大。一共有多少ç§æ–¹æ¡ˆï¼Ÿ + +ç”æ¡ˆå¾ˆå¤§ï¼Œä½ åªéœ€è¦ç»™å‡ºæ–¹æ¡ˆæ•°é™¤ä»¥ 2020 的余数å³å¯ã€‚ + +以下程åºå®žçŽ°äº†è¿™ä¸€åŠŸèƒ½ï¼Œè¯·ä½ 补全空白处内容: + +```cpp +#include <stdio.h> +int DP[1011][1011]; +int main() +{ + int i, j; + DP[1][0] = 1; + for (i = 1; i <= 1010; i++) + DP[i][0] = 1; + for (i = 1; i <= 1010; i++) + { + for (j = 1; j <= i; j++) + { + if (i == j) + DP[i][j] = DP[i][j - 1]; + else + __________________; + } + } + printf("%d", DP[1010][1010]); + return 0; +} +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +DP[i][j] = (DP[i - 1][j] + DP[i][j - 1]) % 2020 +``` + +## 选项 + +### A + +```cpp +DP[i][j] = (DP[i - 1][j + 1] + DP[i - 1][j + 1]) % 2020 +``` + +### B + +```cpp +DP[i][j] = (DP[i][j] + DP[i][j - 1]) % 2020 +``` + +### C + +```cpp +DP[i][j] = (DP[i - 1][j] + DP[i][j]) % 2020 +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/8.\345\236\222\351\252\260\345\255\220/config.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/8.\345\236\222\351\252\260\345\255\220/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..144658fd76a90b6c7b474a93e0c38f301c798d9d --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/8.\345\236\222\351\252\260\345\255\220/config.json" @@ -0,0 +1,9 @@ +{ + "node_id": "algorithm-f6ca94b72dae4b929f58d1ac0f903b5a", + "keywords": [ + "è“æ¡¥æ¯", + "垒骰å" + ], + "children": [], + "export": [] +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/8.\345\236\222\351\252\260\345\255\220/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/8.\345\236\222\351\252\260\345\255\220/desc.md" new file mode 100644 index 0000000000000000000000000000000000000000..7dff7ea6be12be337769536abc18c54c3d2e2134 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/8.\345\236\222\351\252\260\345\255\220/desc.md" @@ -0,0 +1,38 @@ +赌圣atm晚年迷æ‹ä¸Šäº†åž’骰å,就是把骰å一个垒在å¦ä¸€ä¸ªä¸Šè¾¹ï¼Œä¸èƒ½æªæªæ‰æ‰ï¼Œè¦åž’æˆæ–¹æŸ±ä½“。 +ç»è¿‡é•¿æœŸè§‚察,atm å‘现了稳定骰å的奥秘:有些数å—çš„é¢è´´ç€ä¼šäº’ç›¸æŽ’æ–¥ï¼ +我们先æ¥è§„范一下骰å:1 的对é¢æ˜¯ 4,2 的对é¢æ˜¯ 5,3 的对é¢æ˜¯ 6。 +å‡è®¾æœ‰ m 组互斥现象,æ¯ç»„ä¸çš„那两个数å—çš„é¢ç´§è´´åœ¨ä¸€èµ·ï¼Œéª°åå°±ä¸èƒ½ç¨³å®šçš„åž’èµ·æ¥ã€‚ +atm想计算一下有多少ç§ä¸åŒçš„å¯èƒ½çš„垒骰åæ–¹å¼ã€‚ +两ç§åž’骰åæ–¹å¼ç›¸åŒï¼Œå½“且仅当这两ç§æ–¹å¼ä¸å¯¹åº”高度的骰å的对应数å—çš„æœå‘都相åŒã€‚ +由于方案数å¯èƒ½è¿‡å¤šï¼Œè¯·è¾“出模 $10^9 + 7$ 的结果。 + +ä¸è¦å°çœ‹äº† atm 的骰åæ•°é‡å“¦ï½ž + +#### è¾“å…¥æ ¼å¼ +第一行两个整数 n m +n表示骰åæ•°ç›® +æŽ¥ä¸‹æ¥ m 行,æ¯è¡Œä¸¤ä¸ªæ•´æ•° a b ,表示 a å’Œ b æ•°å—ä¸èƒ½ç´§è´´åœ¨ä¸€èµ·ã€‚ + +#### è¾“å‡ºæ ¼å¼ +一行一个数,表示ç”案模 10^9 + 7 的结果。 + +#### æ ·ä¾‹è¾“å…¥ +``` +2 1 +1 2 +``` +#### æ ·ä¾‹è¾“å‡º +``` +544 +``` + +#### æ•°æ®èŒƒå›´ +``` +对于 30% çš„æ•°æ®ï¼šn <= 5 +对于 60% çš„æ•°æ®ï¼šn <= 100 +对于 100% çš„æ•°æ®ï¼š0 < n <= 10^9, m <= 36 +``` + +#### 资æºçº¦å®šï¼š +峰值内å˜æ¶ˆè€— < 256M +CPU消耗 < 2000ms diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/8.\345\236\222\351\252\260\345\255\220/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/8.\345\236\222\351\252\260\345\255\220/solution.cpp" new file mode 100644 index 0000000000000000000000000000000000000000..e0bb33272d848ecebef4e470e64225cfb5cf0bfc --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/8.\345\236\222\351\252\260\345\255\220/solution.cpp" @@ -0,0 +1,78 @@ +#include <iostream> +#include <vector> +using namespace std; + +vector<int> can[7]; //å˜can[i]èƒ½å’Œå“ªäº›ç‚¹æŒ¨ç€ +int up[7] = {1, 1, 1, 1, 1, 1, 1}; +int temp[7] = {1}; +int k = 4; + +const int MOD = 1000000007; + +void init() //åˆå§‹åŒ–都å¯æŒ¨ç€ +{ + for (int i = 1; i <= 6; i++) + for (int j = 1; j <= 6; j++) + can[i].push_back(j); +} +void dele(int side1, int side2) //åˆ é™¤ä¸å¯æŒ¨ç€çš„点 +{ + for (vector<int>::iterator it = can[side1].begin(); it != can[side1].end(); it++) + if (*it == side2) + { + can[side1].erase(it); + break; + } + + for (vector<int>::iterator it = can[side2].begin(); it != can[side2].end(); it++) + if (*it == side1) + { + can[side2].erase(it); + break; + } +} +void fun(int n) +{ + for (int i = 2; i <= n; i++) + { + //计算出第i层骰åæ¯ç§åº•é¢çš„å¯èƒ½æ¬¡æ•° + for (int j = 1; j <= 6; j++) + { + temp[j] = 0; + for (vector<int>::iterator it = can[j].begin(); it != can[j].end(); it++) + temp[j] += up[*it]; + } + //转化为第i层骰å顶é¢çš„å¯èƒ½æ¬¡æ•° + up[1] = temp[4] % MOD; + up[2] = temp[5] % MOD; + up[3] = temp[6] % MOD; + up[4] = temp[1] % MOD; + up[5] = temp[2] % MOD; + up[6] = temp[3] % MOD; + //4^n + k = k * 4; + k = k % MOD; + } + int ans = 0; + for (int j = 1; j <= 6; j++) + ans += up[j]; + cout << (ans * k) % MOD; +} +int main(int argc, char **argv) +{ + init(); + + int n, m; + cin >> n >> m; + + for (int i = 0; i < m; i++) + { + int side1, side2; + cin >> side1 >> side2; + dele(side1, side2); + } + + fun(n); + + return 0; +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/8.\345\236\222\351\252\260\345\255\220/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/8.\345\236\222\351\252\260\345\255\220/solution.java" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/8.\345\236\222\351\252\260\345\255\220/solution.json" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/8.\345\236\222\351\252\260\345\255\220/solution.json" new file mode 100644 index 0000000000000000000000000000000000000000..7e6bb10478297cc9c531252026d1f7154831f740 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/8.\345\236\222\351\252\260\345\255\220/solution.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "CSDN.net", + "source": "solution.md", + "exercise_id": "6b4b68a3ead544a2a9640d9ca6f008b1" +} \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/8.\345\236\222\351\252\260\345\255\220/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/8.\345\236\222\351\252\260\345\255\220/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..e1d5ca2bf604632303d64b693303bd480313988f --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/7.\350\223\235\346\241\245\346\235\257-\345\212\250\346\200\201\350\247\204\345\210\222/8.\345\236\222\351\252\260\345\255\220/solution.md" @@ -0,0 +1,408 @@ +# 垒骰å + +赌圣atm晚年迷æ‹ä¸Šäº†åž’骰å,就是把骰å一个垒在å¦ä¸€ä¸ªä¸Šè¾¹ï¼Œä¸èƒ½æªæªæ‰æ‰ï¼Œè¦åž’æˆæ–¹æŸ±ä½“。 +ç»è¿‡é•¿æœŸè§‚察,atm å‘现了稳定骰å的奥秘:有些数å—çš„é¢è´´ç€ä¼šäº’ç›¸æŽ’æ–¥ï¼ +我们先æ¥è§„范一下骰å:1 的对é¢æ˜¯ 4,2 的对é¢æ˜¯ 5,3 的对é¢æ˜¯ 6。 +å‡è®¾æœ‰ m 组互斥现象,æ¯ç»„ä¸çš„那两个数å—çš„é¢ç´§è´´åœ¨ä¸€èµ·ï¼Œéª°åå°±ä¸èƒ½ç¨³å®šçš„åž’èµ·æ¥ã€‚ +atm想计算一下有多少ç§ä¸åŒçš„å¯èƒ½çš„垒骰åæ–¹å¼ã€‚ +两ç§åž’骰åæ–¹å¼ç›¸åŒï¼Œå½“且仅当这两ç§æ–¹å¼ä¸å¯¹åº”高度的骰å的对应数å—çš„æœå‘都相åŒã€‚ +由于方案数å¯èƒ½è¿‡å¤šï¼Œè¯·è¾“出模 $10^9 + 7$ 的结果。 + +ä¸è¦å°çœ‹äº† atm 的骰åæ•°é‡å“¦ï½ž + + +**è¾“å…¥æ ¼å¼** + +第一行两个整数 n m +n表示骰åæ•°ç›® +æŽ¥ä¸‹æ¥ m 行,æ¯è¡Œä¸¤ä¸ªæ•´æ•° a b ,表示 a å’Œ b æ•°å—ä¸èƒ½ç´§è´´åœ¨ä¸€èµ·ã€‚ + + +**è¾“å‡ºæ ¼å¼** + +一行一个数,表示ç”案模 $10^9 + 7$ 的结果。 + + +**æ ·ä¾‹è¾“å…¥** + +``` +2 1 +1 2 +``` + +**æ ·ä¾‹è¾“å‡º ** + +``` +544 +``` + + +**æ•°æ®èŒƒå›´** + +``` +对于 30% çš„æ•°æ®ï¼šn <= 5 +对于 60% çš„æ•°æ®ï¼šn <= 100 +对于 100% çš„æ•°æ®ï¼š0 < n <= 10^9, m <= 36 +``` + + +**资æºçº¦å®šï¼š** + +峰值内å˜æ¶ˆè€— < 256M +CPU消耗 < 2000ms + + +以下选项<span style="color:red">错误</span>的是? + +## aop + +### before + +```cpp +#include <bits/stdc++.h> +using namespace std; +``` + +### after + +```cpp + +``` + +## ç”案 + +```cpp +#define MOD 1000000007 +using namespace std; + +int points[7] = {0, 4, 5, 6, 1, 2, 3}; +int n, m; +int ban[36][2]; +long long result; + +bool judge(int point1, int point2) +{ + bool flag = true; + for (int i = 0; i < m; i++) + { + int point3 = points[point2]; + if (point1 == ban[i][0] && point3 == ban[i][1]) + { + + flag = false; + break; + } + if (point1 == ban[i][1] && point3 == ban[i][0]) + { + + flag = false; + break; + } + } + return flag; +} + +void dfs(int cnt, int point) +{ + if (cnt == n) + { + result++; + return; + } + for (int i = 1; i <= 6; i++) + { + if (judge(point, i)) + { + cnt++; + dfs(cnt, i); + cnt--; + } + } +} + +long long quickpow(int x, int N) +{ + int reg = x; + int sum = 1; + while (N) + { + if (N & 1) + { + sum = sum * reg; + } + reg *= reg; + N = N >> 1; + } + return sum; +} +int main() +{ + + cin >> n >> m; + for (int i = 0; i < m; i++) + { + cin >> ban[i][0] >> ban[i][1]; + } + dfs(0, 0); + + long long temp = quickpow(4, n); + cout << result * temp % MOD; + return 0; +} +``` + +## 选项 + +### A + +```cpp +#define MOD 1000000007 + +typedef long long LL; +LL dp[2][7]; +int n, m; +bool conflict[7][7]; +map<int, int> op; + +void init() +{ + op[1] = 4; + op[4] = 1; + op[2] = 5; + op[5] = 2; + op[3] = 6; + op[6] = 3; +} + +struct M +{ + LL a[6][6]; + + M() + { + for (int i = 0; i < 6; ++i) + { + for (int j = 0; j < 6; ++j) + { + a[i][j] = 1; + } + } + } +}; + +M mMultiply(M m1, M m2) +{ + M ans; + + for (int i = 0; i < 6; ++i) + { + for (int j = 0; j < 6; ++j) + { + ans.a[i][j] = 0; + for (int k = 0; k < 6; ++k) + { + ans.a[i][j] = (ans.a[i][j] + m1.a[i][k] * m2.a[k][j]) % MOD; + } + } + } + return ans; +} + +M mPow(M m, int k) +{ + M ans; + for (int i = 0; i < 6; ++i) + { + for (int j = 0; j < 6; ++j) + { + if (i == j) + ans.a[i][j] = 1; + else + ans.a[i][j] = 0; + } + } + while (k) + { + if (k & 1) + { + ans = mMultiply(ans, m); + } + m = mMultiply(m, m); + k >>= 1; + } + return ans; +} + +int main() +{ + init(); + scanf("%d%d", &n, &m); + M cMatrix; + for (int i = 0; i < m; ++i) + { + int a, b; + scanf("%d%d", &a, &b); + cMatrix.a[op[a] - 1][b - 1] = 0; + cMatrix.a[op[b] - 1][a - 1] = 0; + } + + M cMatrix_n_1 = mPow(cMatrix, n - 1); + + LL ans = 0; + for (int j = 0; j < 6; ++j) + { + for (int i = 0; i < 6; ++i) + { + ans = (ans + cMatrix_n_1.a[i][j]) % MOD; + } + } + + LL t = 1; + LL tmp = 4; + LL p = n; + while (p) + { + if (p & 1) + { + t = t * tmp % MOD; + } + tmp = tmp * tmp % MOD; + p >>= 1; + } + printf("%lld", ans * t % MOD); + + return 0; +} +``` + +### B + +```cpp +#define MOD 1000000007 + +typedef long long LL; +LL dp[2][7]; +int n, m; +bool conflict[7][7]; +map<int, int> op; + +void init() +{ + op[1] = 4; + op[4] = 1; + op[2] = 5; + op[5] = 2; + op[3] = 6; + op[6] = 3; +} + +int main() +{ + init(); + scanf("%d%d", &n, &m); + for (int i = 0; i < m; ++i) + { + int a, b; + scanf("%d%d", &a, &b); + conflict[a][b] = true; + conflict[b][a] = true; + } + + for (int j = 1; j <= 6; ++j) + { + dp[0][j] = 1; + } + + int cur = 0; + + for (int level = 2; level <= n; ++level) + { + cur = 1 - cur; + + for (int j = 1; j <= 6; ++j) + { + dp[cur][j] = 0; + + for (int i = 1; i <= 6; ++i) + { + if (conflict[op[j]][i]) + continue; + dp[cur][j] = (dp[cur][j] + dp[1 - cur][i]) % MOD; + } + } + } + + LL sum = 0; + for (int k = 1; k <= 6; ++k) + { + sum = (sum + dp[cur][k]) % MOD; + } + + LL ans = 1; + LL tmp = 4; + LL p = n; + + while (p) + { + if (p & 1) + ans = (ans * tmp) % MOD; + tmp = (tmp * tmp) % MOD; + p >>= 1; + } + printf("%lld\n", (sum * ans) % MOD); + return 0; +} +``` + +### C + +```cpp +#define MOD 1000000007 + +int op[7]; +bool confilct[7][7]; +void init() +{ + op[1] = 4; + op[4] = 1; + op[2] = 5; + op[5] = 2; + op[3] = 6; + op[6] = 3; +} +int n, m; + +long long int f(int up, int count) +{ + if (count == 0) + return 4; + long long ans = 0; + for (int upp = 1; upp <= 6; ++upp) + { + if (confilct[op[up]][upp]) + continue; + ans = (ans + f(upp, count - 1)) % MOD; + } + return ans; +} + +int main() +{ + init(); + scanf("%d%d", &n, &m); + for (int i = 0; i < m; ++i) + { + int x, y; + scanf("%d%d", &x, &y); + confilct[y][x] = true; + confilct[x][y] = true; + } + long long ans = 0; + for (int up = 1; up <= 6; ++up) + { + ans = (ans + 4 * f(up, n - 1)) % MOD; + } + printf("%lli\n", ans); + return 0; +} +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/170.\345\271\270\350\277\220\346\225\260/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/170.\345\271\270\350\277\220\346\225\260/solution.md" index 18a8b1eeac6eee4312a8ee9b113bae8ea60fd2c3..755c120f8c6f4f2a6dbd0e511321406fd1522fcc 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/170.\345\271\270\350\277\220\346\225\260/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/170.\345\271\270\350\277\220\346\225\260/solution.md" @@ -13,6 +13,7 @@ 这时,3为第2个幸è¿æ•°ï¼Œç„¶åŽæŠŠæ‰€æœ‰èƒ½è¢«3整除的åºå·ä½ç½®çš„æ•°åˆ åŽ»ã€‚æ³¨æ„,是åºå·ä½ç½®ï¼Œä¸æ˜¯é‚£ä¸ªæ•°æœ¬èº«èƒ½å¦è¢«3整除!! åˆ é™¤çš„åº”è¯¥æ˜¯5,11, 17, … æ¤æ—¶7为第3个幸è¿æ•°ï¼Œç„¶åŽå†åˆ 去åºå·ä½ç½®èƒ½è¢«7整除的(19,39,…) 最åŽå‰©ä¸‹çš„åºåˆ—类似: + ``` 1, 3, 7, 9, 13, 15, 21, 25, 31, 33, 37, 43, 49, 51, 63, 67, 69, 73, 75, 79, … ``` @@ -50,12 +51,15 @@ 8 ``` +以下错误的一项是? + ## aop ### before ```cpp - +#include <bits/stdc++.h> +using namespace std; ``` ### after @@ -67,7 +71,44 @@ ## ç”案 ```cpp - +int m, n; +int len = 0; +int main() +{ + scanf("%d %d", &m, &n); + vector<int> vc(n); + + for (int i = 1; i < n; i++) + vc[i] = 2 * i - 1; + int divided = 2; + len = n; + for (int select = 1;; ++select) + { + divided = vc[select - 1]; + + int num = 1; + for (int i = 1; i < len; i++) + if (i % divided != 0) + vc[num++] = vc[i]; + len = num; + + if (vc[select] > n) + break; + } + + int count = 0; + for (int i = 1; i < n; i++) + { + if (vc[i] >= n) + break; + if (vc[i] < n && vc[i] > m) + { + ++count; + } + } + printf("%d", count); + return 0; +} ``` ## 选项 @@ -75,17 +116,160 @@ ### A ```cpp - +int main() +{ + vector<int> a; + a.push_back(0); + int i, m, n, start; + cin >> m >> n; + for (i = 1; i < n; i++) + { + if (2 * i - 1 >= n) + break; + a.push_back(2 * i - 1); + } + start = 2; + int k; + vector<int> old; + do + { + old.push_back(0); + if (start > a.size() - 1) + break; + k = a[start++]; + if (k > a.size()) + break; + for (i = 1; i < a.size(); i++) + { + if (i % k) + old.push_back(a[i]); + } + a.clear(); + a.assign(old.begin(), old.end()); + old.clear(); + } while (true); + + int sum = 0; + for (i = 1; i < a.size(); i++) + if (a[i] > m) + { + sum = sum + 1; + } + cout << sum << endl; + return 0; +} ``` ### B ```cpp - +int a[500005]; + +int main() +{ + int i, k = 1; + int m, n, sum = 0; + int temp; + cin >> m >> n; + for (i = 1; i <= 1000000; i += 2) + { + a[k++] = i; + } + temp = 2; + while (temp <= 1000) + { + int b[500005], t = 1; + for (i = 1; i < k; i++) + { + if (i % a[temp] != 0) + b[t++] = a[i]; + } + for (i = 1; i < t; i++) + a[i] = b[i]; + temp++; + k = t; + } + for (i = 1; i <= n; i++) + { + if (a[i] > m && a[i] < n) + { + sum++; + } + } + cout << sum << endl; + + return 0; +} ``` ### C ```cpp - +struct num +{ + int order; + int value; +}; + +int main() +{ + int m, n; + cin >> m >> n; + + vector<num> numbers; + int count = 1; + for (int i = 1; i <= n; i++) + { + num tempNum; + tempNum.order = count; + tempNum.value = i; + numbers.push_back(tempNum); + count++; + } + + int index = 1, tempCount = 1, value = numbers[index].value; + + while (index <= tempCount) + { + int j, tempValue = -1; + tempCount = 1; + for (j = 1; j < n; j++) + { + if (numbers[j].order != -1) + { + + if (numbers[j].order % value == 0) + { + numbers[j].order = -1; + } + else + { + + tempCount++; + numbers[j].order = tempCount; + + if (tempCount == index + 1) + { + tempValue = numbers[j].value; + } + } + } + } + + index++; + value = tempValue; + } + + int numCount = 0; + for (int t = 0; t < n; t++) + { + if (numbers[t].order != -1 && numbers[t].value > m && numbers[t].value < n) + { + numCount++; + } + } + + cout << numCount; + return 0; +} ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/38.\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/38.\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/solution.md" index b8a1ad5986e9171c5231b531aa7935ca9eef130b..3445e12fb668887d1ee8dd1065e28bcee5fa7722 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/38.\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/38.\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/solution.md" @@ -54,12 +54,15 @@ n 个å°æœ‹å‹ç«™æˆä¸€æŽ’。 首先交æ¢èº«é«˜ä¸º3å’Œ2çš„å°æœ‹å‹ï¼Œå†äº¤æ¢èº«é«˜ä¸º3å’Œ1çš„å°æœ‹å‹ï¼Œå†äº¤æ¢èº«é«˜ä¸º2å’Œ1çš„å°æœ‹å‹ï¼Œæ¯ä¸ªå°æœ‹å‹çš„ä¸é«˜å…´ç¨‹åº¦éƒ½æ˜¯3,总和为9。 +以下错误的一项是? + ## aop ### before ```cpp - +#include <bits/stdc++.h> +using namespace std; ``` ### after @@ -71,7 +74,77 @@ n 个å°æœ‹å‹ç«™æˆä¸€æŽ’。 ## ç”案 ```cpp - +#define ll long long +using namespace std; +int const MAX = 1e5 + 5; +ll cnt[MAX], ans; +int n; + +struct DATA +{ + int idx; + ll num; +} d[MAX]; + +bool cmp(DATA a, DATA b) +{ + return a.num < b.num; +} + +void Solve(int l, int mid, int r) +{ + int i = l, j = mid + 1; + while (i <= mid && j <= r) + { + if (d[i].num <= d[j].num) + i++; + else + { + cnt[d[j].idx] += (ll)(mid - i + 1); + + j++; + } + } + i = mid, j = r; + while (i >= l && j >= mid + 1) + { + if (d[i].num > d[j].num) + { + cnt[d[i].idx] += (ll)(j - mid); + i--; + } + else + j--; + } + sort(d + l, d + r + 1, cmp); + + return; +} + +void Div(int l, int r) +{ + if (l >= r) + return; + int mid = (l + r) >> 1; + Div(l, mid); + Div(mid + 1, r); + Solve(l, mid, r); +} + +int main() +{ + scanf("%d", &n); + for (int i = 0; i < n; i++) + { + scanf("%lld", &d[i].num); + d[i].idx = i; + } + ans = 0; + Div(0, n - 1); + for (int i = 0; i < n; i++) + ans += cnt[i] * cnt[i] / 2; + printf("%lld\n", ans); +} ``` ## 选项 @@ -79,17 +152,211 @@ n 个å°æœ‹å‹ç«™æˆä¸€æŽ’。 ### A ```cpp - +typedef long long LL; +const int N = 1e6 + 10; +int h[N], s[N], tr[N]; +int n; + +int lowbit(int x) { return x & -x; } +int add(int x) +{ + for (int i = x; i < N; i += lowbit(i)) + tr[i]++; +} +int q(int x) +{ + int res = 0; + for (int i = x; i; i -= lowbit(i)) + res += tr[i]; + return res; +} +int main() +{ + cin >> n; + for (int i = 0; i < n; i++) + { + cin >> h[i], h[i]++; + + s[i] = q(N - 1) - q(h[i]); + add(h[i]); + } + + memset(tr, 0, sizeof tr); + + for (int i = n - 1; i >= 0; i--) + s[i] += q(h[i] - 1), add(h[i]); + + LL res = 0; + for (int i = 0; i < n; i++) + res += (LL)s[i] * (s[i] + 1) / 2; + cout << res; + + return 0; +} ``` ### B ```cpp - +struct childInfo +{ + int location; + int valueNum; +}; + +int cnt[100005]; + +void Merge_sort1(vector<childInfo> &tempChild, int left, int right) +{ + if (left >= right - 1) + return; + int mid = (left + right) / 2; + Merge_sort1(tempChild, left, mid); + Merge_sort1(tempChild, mid, right); + int i = left, j = mid, t = 0; + childInfo *temp = new childInfo[right - left]; + while (i < mid || j < right) + { + if (j >= right || i < mid && tempChild[i].valueNum <= tempChild[j].valueNum) + temp[t++] = tempChild[i++]; + else + { + cnt[tempChild[j].location] += mid - i; + temp[t++] = tempChild[j++]; + } + } + t = 0; + for (int k = left; k < right; k++) + tempChild[k] = temp[t++]; + delete[] temp; +} + +void Merge_sort2(vector<childInfo> &tempChild, int left, int right) +{ + if (left >= right - 1) + return; + int mid = (left + right) / 2; + Merge_sort2(tempChild, left, mid); + Merge_sort2(tempChild, mid, right); + childInfo *temp = new childInfo[right - left]; + int i = mid - 1, j = right - 1, t = right - left - 1; + while (i >= left || j >= mid) + { + if (i < left || j >= mid && tempChild[i].valueNum <= tempChild[j].valueNum) + temp[t--] = tempChild[j--]; + else + { + cnt[tempChild[i].location] += j - mid + 1; + temp[t--] = tempChild[i--]; + } + } + t = 0; + for (int i = left; i < right; i++) + tempChild[i] = temp[t++]; + delete[] temp; +} +int main() +{ + int n; + cin >> n; + vector<childInfo> childLists; + for (int i = 0; i < n; i++) + { + childInfo tempChild; + tempChild.location = i; + cin >> tempChild.valueNum; + childLists.push_back(tempChild); + } + vector<childInfo> childLists1(childLists.begin(), childLists.end()); + Merge_sort1(childLists, 0, childLists.size()); + Merge_sort2(childLists1, 0, childLists1.size()); + long long sum = 0; + for (int i = 0; i < childLists.size(); i++) + sum += 1ll * (1 + cnt[i]) * cnt[i] / 2; + cout << sum; + return 0; +} ``` ### C ```cpp - +struct childInfo +{ + int location; + int valueNum; +}; + +bool lowCompare(childInfo temp1, childInfo temp2) +{ + return temp1.valueNum > temp2.valueNum; +} + +bool upCompare(childInfo temp1, childInfo temp2) +{ + return temp1.valueNum < temp2.valueNum; +} + +int main() +{ + int childNums; + cin >> childNums; + vector<childInfo> childLists; + vector<childInfo> childLists1; + vector<childInfo> childLists2; + for (int i = 0; i < childNums; i++) + { + childInfo tempInfo; + tempInfo.location = i; + scanf("%d", &tempInfo.valueNum); + childLists.push_back(tempInfo); + childLists1.push_back(tempInfo); + childLists2.push_back(tempInfo); + } + sort(childLists1.begin(), childLists1.end(), lowCompare); + sort(childLists2.begin(), childLists2.end(), upCompare); + + long long int count = 0; + for (int m = 0; m < childNums; m++) + { + int sadNum = 0; + long long int count1 = 0, count2 = 0; + int compareNum = childLists[m].valueNum, compareLoc = childLists[m].location; + + for (int n = 0; n < childNums; n++) + { + if (compareNum < childLists1[n].valueNum) + { + if (compareLoc > childLists1[n].location) + { + sadNum++; + count1 += sadNum; + } + } + else + { + break; + } + } + + for (int n = 0; n < childNums; n++) + { + if (compareNum > childLists2[n].valueNum) + { + if (compareLoc < childLists2[n].location) + { + sadNum++; + count2 += sadNum; + } + } + else + { + break; + } + } + count += count1 + count2; + } + cout << count << endl; + return 0; +} ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/39.\347\201\265\350\203\275\344\274\240\350\276\223/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/39.\347\201\265\350\203\275\344\274\240\350\276\223/solution.md" index 8a530aea3cd4bc48332bd2207996daa2ff7b0188..63ed3688edbddb7de402d2317ed3c4688be3beb0 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/39.\347\201\265\350\203\275\344\274\240\350\276\223/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/39.\347\201\265\350\203\275\344\274\240\350\276\223/solution.md" @@ -72,12 +72,15 @@ 4 ``` +以下选项错误的是? + ## aop ### before ```cpp - +#include <bits/stdc++.h> +using namespace std; ``` ### after @@ -89,7 +92,74 @@ ## ç”案 ```cpp - +typedef long long ll; +#define int ll +#define rep(i, a, n) for (int i = a; i < (int)n; i++) +#define per(i, a, n) for (int i = (int)n - 1; i >= a; i--) +const int maxn = 3e5 + 10; +inline int read() +{ + int x = 0, f = 1; + char ch = getchar(); + while (!isdigit(ch)) + { + if (ch == '-') + f = -1; + ch = getchar(); + } + while (isdigit(ch)) + { + x = (x << 3) + (x << 1) + ch - 48; + ch = getchar(); + } + return x * f; +} +int s[maxn], a[maxn]; +bool vis[maxn]; +inline void cf() +{ + int t = read(); + while (t--) + { + int n = read(); + s[0] = 0; + rep(i, 1, n + 1) + { + int x = read(); + s[i] = s[i + 1] + x; + } + int s0 = 0, sn = s[n]; + if (s0 > sn) + swap(s0, sn); + sort(s, s + n + 1); + rep(i, 0, n + 1) if (s[i] == s0) + { + s0 = i; + break; + } + per(i, 0, n + 1) if (s[i] == sn) + { + sn = i; + break; + } + int l = 0, r = n; + rep(i, 0, n + 1) vis[i] = 0; + for (int i = s0; i >= 0; i -= 2) + a[l++] = s[i], vis[i] = 1; + for (int i = sn; i <= n; i += 2) + a[r--] = s[i], vis[i] = 1; + rep(i, 0, n + 1) if (!vis[i]) a[l++] = s[i]; + int ans = 0; + rep(i, 1, n + 1) ans = max(ans, abs(a[i] - a[i - 1])); + printf("%lld\n", ans); + } + return; +} +signed main() +{ + cf(); + return 0; +} ``` ## 选项 @@ -97,17 +167,246 @@ ### A ```cpp - +#define ll long long +const int N = 3e5; +ll a[N], s[N]; +bool vis[N]; +int n; +int main() +{ + int T; + scanf("%d", &T); + while (T--) + { + memset(vis, 0, sizeof(vis)); + scanf("%d", &n); + s[0] = 0; + for (int i = 1; i <= n; ++i) + { + scanf("%lld", &s[i]); + s[i] += s[i - 1]; + } + ll s0 = 0, sn = s[n]; + if (s0 > sn) + swap(s0, sn); + sort(s, s + n + 1); + int l = 0, r = n; + for (int i = lower_bound(s, s + n + 1, s0) - s; i >= 0; i -= 2) + { + a[l++] = s[i], vis[i] = 1; + } + for (int i = lower_bound(s, s + n + 1, sn) - s; i <= n; i += 2) + { + a[r--] = s[i], vis[i] = 1; + } + for (int i = 0; i <= n; ++i) + { + if (!vis[i]) + a[l++] = s[i]; + } + ll res = 0; + for (int i = 1; i <= n; ++i) + res = max(res, abs(a[i] - a[i - 1])); + printf("%lld\n", res); + } + return 0; +} ``` ### B ```cpp - +const int MAXN = 300010; +int nums[MAXN]; + +bool judgeYi(int a, int b) +{ + return a > 0 && b < 0 || a < 0 && b > 0; +} + +int main() +{ + int T, n; + cin >> T; + while (T--) + { + cin >> n; + + bool hasNe = false, hasPo = false; + int res = 0; + for (int i = 0; i < n; i++) + { + scanf("%d", &nums[i]); + if (nums[i] < 0) + { + hasNe = true; + } + else if (nums[i] > 0) + { + hasPo = true; + } + } + + if (hasNe && hasPo) + { + bool canNext; + do + { + canNext = false; + for (int i = 1; i < n - 1; i++) + { + + if (judgeYi(nums[i], nums[i - 1]) || judgeYi(nums[i], nums[i + 1])) + { + if (nums[i] > 0) + { + + if (judgeYi(nums[i - 1], nums[i + 1])) + { + if ((nums[i - 1] > 0 && abs(nums[i + 1]) > nums[i - 1] + nums[i]) || + (nums[i + 1] > 0 && abs(nums[i - 1]) > nums[i + 1] + nums[i])) + { + nums[i + 1] += nums[i]; + nums[i - 1] += nums[i]; + nums[i] = -nums[i]; + canNext = true; + } + } + else + { + if (abs(nums[i - 1]) > nums[i] || abs(nums[i + 1]) > nums[i]) + { + nums[i + 1] += nums[i]; + nums[i - 1] += nums[i]; + nums[i] = -nums[i]; + canNext = true; + } + } + } + else if (nums[i] < 0) + { + + if (judgeYi(nums[i - 1], nums[i + 1])) + { + if ((nums[i - 1] > 0 && nums[i - 1] > abs(nums[i + 1] + nums[i])) || + (nums[i + 1] > 0 && nums[i + 1] > abs(nums[i - 1] + nums[i]))) + { + nums[i + 1] += nums[i]; + nums[i - 1] += nums[i]; + nums[i] = -nums[i]; + canNext = true; + } + } + else + { + if (nums[i - 1] > abs(nums[i]) || nums[i + 1] > abs(nums[i])) + { + nums[i + 1] += nums[i]; + nums[i - 1] += nums[i]; + nums[i] = -nums[i]; + canNext = true; + } + } + } + } + } + } while (canNext); + } + int t; + + for (int i = 0; i < n; i++) + { + res = max(res, abs(nums[i])); + } + cout << res << endl; + } + + return 0; +} ``` ### C ```cpp - +typedef long long LL; +const int INF = 0x3f3f3f3f; +const double Pi = acos(-1); +namespace +{ + template <typename T> + inline void read(T &x) + { + x = 0; + T f = 1; + char s = getchar(); + for (; !isdigit(s); s = getchar()) + if (s == '-') + f = -1; + for (; isdigit(s); s = getchar()) + x = (x << 3) + (x << 1) + (s ^ 48); + x *= f; + } +} +#define fio \ + ios::sync_with_stdio(false); \ + cin.tie(0); \ + cout.tie(0); +#define _for(n, m, i) for (register int i = (n); i < (m); ++i) +#define _rep(n, m, i) for (register int i = (n); i <= (m); ++i) +#define _srep(n, m, i) for (register int i = (n); i >= (m); i--) +#define _sfor(n, m, i) for (register int i = (n); i > (m); i--) +#define lson rt << 1, l, mid +#define rson rt << 1 | 1, mid + 1, r +#define lowbit(x) x &(-x) +#define pii pair<int, int> +#define fi first +#define se second +const int N = 1e6 + 5; +LL a[N]; +LL ans[N]; +bool vis[N]; +LL Abs(LL x) +{ + return x < 0 ? -x : x; +} +int main() +{ + int t; + scanf("%d", &t); + while (t--) + { + int n; + scanf("%d", &n); + a[0] = 0; + _rep(1, n, i) + { + scanf("%lld", a + i); + a[i] += a[i - 1]; + } + LL a0 = 0, an = a[n], Max = 0; + int A0, AN; + sort(a, a + n + 1); + memset(vis, 0, sizeof vis); + if (a0 > an) + swap(a0, an); + _rep(0, n, i) if (a0 == a[i]) + { + A0 = i; + break; + } + _rep(0, n, i) if (an == a[i]) + { + AN = i; + break; + } + int l = 0, r = n; + for (int i = A0; i >= 0; i -= 2) + ans[l++] = a[i], vis[i] = 1; + for (int i = AN; i <= n; i += 2) + ans[r--] = a[i], vis[i] = 1; + _rep(0, n, i) if (!vis[i]) ans[l++] = a[i]; + _rep(1, n, i) Max = max(Max, Abs(ans[i] - ans[i - 1])); + printf("%lld\n", Max); + } +} ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/42.\346\214\257\345\205\264\344\270\255\345\215\216/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/42.\346\214\257\345\205\264\344\270\255\345\215\216/solution.md" index 32289c2f6c065acb1daa021b11fabafe4dc831c7..4243dc302aa66562c3defbc4f6fb02d5824ba4aa 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/42.\346\214\257\345\205\264\344\270\255\345\215\216/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/42.\346\214\257\345\205\264\344\270\255\345\215\216/solution.md" @@ -16,6 +16,25 @@ è¯·ä½ å¸®åŠ©å°æ˜Žç®—一算他一共有多少ç§å¯èƒ½çš„跳跃路线呢? +以下代ç å®žçŽ°äº†è¿™ä¸€åŠŸèƒ½ï¼Œè¯·ä½ å¡«è¡¥ç©ºç™½å¤„å†…å®¹ï¼š + +```cpp +#include <iostream> +using namespace std; + +int f(int x, int y) +{ + if (x == 3 || y == 4) + return 1; + __________________ +} +int main() +{ + cout << f(0, 0) << endl; + return 0; +} +``` + ## aop ### before @@ -33,7 +52,7 @@ ## ç”案 ```cpp - +return f(x + 1, y) + f(x, y + 1); ``` ## 选项 @@ -41,17 +60,17 @@ ### A ```cpp - +return f(x - 1, y) + f(x, y - 1); ``` ### B ```cpp - +return f(x + 1, y) + f(x, y - 1); ``` ### C ```cpp - +return f(x + 1, y + 1) + f(x + 1, y + 1); ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/43.\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/43.\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/solution.md" index 9764191ad86c9444b8ba10f1147c3a23451290b2..34b05b38bea7e5057f7041cc30cd5715f068cd6b 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/43.\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/43.\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/solution.md" @@ -5,6 +5,52 @@ StringInGrid函数会在一个指定大å°çš„æ ¼åä¸æ‰“å°æŒ‡å®šçš„å—符串  +以下程åºå®žçŽ°äº†è¿™ä¸€åŠŸèƒ½ï¼Œè¯·ä½ 补全空白处内容: + +```cpp +#include <stdio.h> +#include <string.h> +void StringInGrid(int width, int height, const char *s) +{ + int i, k; + char buf[1000]; + strcpy(buf, s); + if (strlen(s) > width - 2) + buf[width - 2] = 0; + printf("+"); + for (i = 0; i < width - 2; i++) + printf("-"); + printf("+\n"); + for (k = 1; k < (height - 1) / 2; k++) + { + printf("|"); + for (i = 0; i < width - 2; i++) + printf(" "); + printf("|\n"); + } + printf("|"); + printf("%*s%s%*s", __________________; + printf("|\n"); + for (k = (height - 1) / 2 + 1; k < height - 1; k++) + { + printf("|"); + for (i = 0; i < width - 2; i++) + printf(" "); + printf("|\n"); + } + printf("+"); + for (i = 0; i < width - 2; i++) + printf("-"); + printf("+\n"); +} + +int main() +{ + StringInGrid(20, 6, "abcd1234"); + return 0; +} +``` + ## aop ### before @@ -22,7 +68,7 @@ StringInGrid函数会在一个指定大å°çš„æ ¼åä¸æ‰“å°æŒ‡å®šçš„å—符串 ## ç”案 ```cpp - +(width - strlen(buf) - 2) / 2, "", buf, (width - strlen(buf) - 2) / 2, "" ``` ## 选项 @@ -30,17 +76,17 @@ StringInGrid函数会在一个指定大å°çš„æ ¼åä¸æ‰“å°æŒ‡å®šçš„å—符串 ### A ```cpp - +(width - strlen(buf) - 1) / 2, "", buf, (width - strlen(buf) - 1) / 2, "" ``` ### B ```cpp - +(width - strlen(buf) + 1) / 2, "", buf, (width - strlen(buf) + 1) / 2, "" ``` ### C ```cpp - +(width - strlen(buf) - 2), "", buf, (width - strlen(buf) - 2), "" ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/44.\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/44.\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/solution.md" index 654e1aca4476b94824e1e10eb6af7711f89bc34d..394dcdf262d16eeebae66c668347d0643812f060 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/44.\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/44.\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/solution.md" @@ -10,6 +10,43 @@ 下é¢çš„程åºæ˜¯é‡‡ç”¨çŸ©é˜µæ³•è¿›è¡Œæ±‚解的,这对串的规模ä¸å¤§çš„情况还是比较有效的解法。 +è¯·ä½ è¡¥å…¨ç©ºç™½å¤„çš„å†…å®¹ï¼š + +```cpp +#include <stdio.h> +#include <string.h> + +#define N 256 +int f(const char *s1, const char *s2) +{ + int a[N][N]; + int len1 = strlen(s1); + int len2 = strlen(s2); + int i, j; + + memset(a, 0, sizeof(int) * N * N); + int max = 0; + for (i = 1; i <= len1; i++) + { + for (j = 1; j <= len2; j++) + { + if (s1[i - 1] == s2[j - 1]) + { + __________________ + if (a[i][j] > max) + max = a[i][j]; + } + } + } + return max; +} + +int main() +{ + printf("%d\n", f("abcdkkk", "baabcdadabc")); + return 0; +} +``` ## aop @@ -28,7 +65,7 @@ ## ç”案 ```cpp - +a[i][j] = a[i - 1][j - 1] + 1; ``` ## 选项 @@ -36,17 +73,17 @@ ### A ```cpp - +a[i][j] = a[i - 1][j - 1]; ``` ### B ```cpp - +a[i][j] = a[i - 1][j] + 1; ``` ### C ```cpp - +a[i][j] = a[i][j - 1] + 1; ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/46.\351\273\204\351\207\221\350\277\236\345\210\206\346\225\260/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/46.\351\273\204\351\207\221\350\277\236\345\210\206\346\225\260/solution.md" index 9590295b5491cce2a883fd3edfc3c93b7270c542..c79be11cb976e19a6a9c50076de0d4f7d28f4054 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/46.\351\273\204\351\207\221\350\277\236\345\210\206\346\225\260/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/46.\351\273\204\351\207\221\350\277\236\345\210\206\346\225\260/solution.md" @@ -46,7 +46,7 @@ ## ç”案 ```cpp - +0.6180339887498948482045868343656381177203091798057628621354486227052604628189024497072072041893911375 ``` ## 选项 @@ -54,17 +54,17 @@ ### A ```cpp - +0.6180339887498948482045868343656389332927878467731611281824609112882717278172075687340936512886003869 ``` ### B ```cpp - +0.6180339887498948482045868343656381177203091798057628621354486227052604628189024496923340122463725713 ``` ### C ```cpp - +0.6180339887498948482045868343656382367107301981874040757690591496236273680999331990382076023866480180 ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/47.k\345\200\215\345\214\272\351\227\264/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/47.k\345\200\215\345\214\272\351\227\264/solution.md" index 3914b3ca4135cde442f93a2e8ac270f140ad1009..3d7b572ea9d7f5736c6802d62ed8c18fcf68b163 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/47.k\345\200\215\345\214\272\351\227\264/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/47.k\345\200\215\345\214\272\351\227\264/solution.md" @@ -33,6 +33,33 @@ 6 ``` +以下程åºå®žçŽ°äº†è¯¥åŠŸèƒ½ï¼Œè¯·ä½ 补全空白处代ç : + +```cpp +#include <bits/stdc++.h> +using namespace std; + +int main() +{ + long long n, k, ans = 0, son[100000], sum[100000], b[100000] = {0}; + cin >> n >> k; + for (int i = 0; i < n; i++) + { + cin >> son[i]; + if (i != 0) + __________________ + else + sum[i] = son[i] % k; + b[sum[i]]++; + ans += b[sum[i]] - 1; + if (sum[i] == 0) + ans++; + } + cout << ans; + return 0; +} +``` + ## aop ### before @@ -50,7 +77,7 @@ ## ç”案 ```cpp - +sum[i] = (sum[i - 1] + son[i]) % k; ``` ## 选项 @@ -58,17 +85,17 @@ ### A ```cpp - +sum[i] = (sum[i] + son[i]) % k; ``` ### B ```cpp - +sum[i] = (sum[i - 1] + son[i]) % k - 1; ``` ### C ```cpp - +sum[i] = (sum[i - 1] + son[i - 1]) % k; ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/48.\345\216\213\347\274\251\345\217\230\346\215\242/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/48.\345\216\213\347\274\251\345\217\230\346\215\242/solution.md" index 9e1e8a29473490b4d74074c2680a6d2fb5c08a9f..17258b0fe053df1844815791c60c2284da32a610 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/48.\345\216\213\347\274\251\345\217\230\346\215\242/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/48.\345\216\213\347\274\251\345\217\230\346\215\242/solution.md" @@ -54,6 +54,78 @@ a5: 2出现过,最åŽä¸€æ¬¡ä¸ºåŽŸåºåˆ—çš„a3,在a3åŽã€a5å‰æœ‰1ç§æ•°å— -1 0 -2 -3 1 1 2 2 0 0 2 2 ``` +以下程åºå®žçŽ°äº†è¿™ä¸€åŠŸèƒ½ï¼Œè¯·ä½ 补全空白处的内容: + +```cpp +#include <bits/stdc++.h> +using namespace std; + +const int maxn = 1e6 + 5; +int a[maxn], tree[maxn << 2]; + +int n, maxpoint; + +void init() +{ + maxpoint = 1; + while (maxpoint < n) + maxpoint <<= 1; + memset(tree, 0, sizeof(tree)); + memset(a, 0, sizeof(a)); +} + +void update(int k, int addnum) +{ + k += maxpoint - 1; + tree[k] += addnum; + while (k) + { + k = (k - 1) >> 1; + tree[k] += addnum; + } +} + +int query(int a, int b, int k, int l, int r) +{ + if (a == b || (r <= a || l >= b)) + return 0; + if (a <= l && r <= b) + return tree[k]; + else + { + int mid = (l + r) >> 1; + return __________________; + } +} + +int main() +{ + int temp; + map<int, int> mp; + cin >> n; + init(); + for (int i = 0; i < n; i++) + { + cin >> temp; + if (mp.count(temp)) + { + int pre = mp[temp]; + a[i] = query(pre + 1, i, 0, 0, maxpoint); + update(pre, -1); + } + else + { + a[i] = -temp; + } + mp[temp] = i; + update(i, 1); + } + for (int i = 0; i < n; i++) + cout << a[i] << " "; + return 0; +} +``` + ## aop ### before @@ -71,7 +143,7 @@ a5: 2出现过,最åŽä¸€æ¬¡ä¸ºåŽŸåºåˆ—çš„a3,在a3åŽã€a5å‰æœ‰1ç§æ•°å— ## ç”案 ```cpp - +query(a, b, (k << 1) + 1, l, mid) + query(a, b, (k + 1) << 1, mid, r) ``` ## 选项 @@ -79,17 +151,17 @@ a5: 2出现过,最åŽä¸€æ¬¡ä¸ºåŽŸåºåˆ—çš„a3,在a3åŽã€a5å‰æœ‰1ç§æ•°å— ### A ```cpp - +query(a, b, (k >> 1) + 1, l, mid) + query(a, b, (k + 1) >> 1, mid, r) ``` ### B ```cpp - +query(a, b, k << 1, l, mid) + query(a, b, k << 1, mid, r) ``` ### C ```cpp - +query(a, b, (k << 1) + 1, l, mid) + query(a, b, (k + 1) >> 1, mid, r) ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/49.\347\272\270\347\211\214\344\270\211\350\247\222\345\275\242/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/49.\347\272\270\347\211\214\344\270\211\350\247\222\345\275\242/solution.md" index 1fb71a0637d5eba75595d189f31db51a563728c8..da0c6a872421bbc71ba37ba39fd00234ca06a578 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/49.\347\272\270\347\211\214\344\270\211\350\247\222\345\275\242/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/49.\347\272\270\347\211\214\344\270\211\350\247\222\345\275\242/solution.md" @@ -30,7 +30,7 @@ A,2,3,4,5,6,7,8,9 å…±9å¼ çº¸ç‰ŒæŽ’æˆä¸€ä¸ªæ£ä¸‰è§’形(A按1è®¡ç®—ï¼‰ã€‚è¦ ## ç”案 ```cpp - +144 ``` ## 选项 @@ -38,17 +38,17 @@ A,2,3,4,5,6,7,8,9 å…±9å¼ çº¸ç‰ŒæŽ’æˆä¸€ä¸ªæ£ä¸‰è§’形(A按1è®¡ç®—ï¼‰ã€‚è¦ ### A ```cpp - +124 ``` ### B ```cpp - +128 ``` ### C ```cpp - +132 ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/50.\345\255\227\344\270\262\346\216\222\345\272\217/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/50.\345\255\227\344\270\262\346\216\222\345\272\217/solution.md" index e758cbf0bd10ea95ae9e1ea01b4db1ec9cb64f0b..41076b33ae15e8fa1f96befaefdbaf84ea4a6603 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/50.\345\255\227\344\270\262\346\216\222\345\272\217/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/50.\345\255\227\344\270\262\346\216\222\345\272\217/solution.md" @@ -52,6 +52,111 @@ jihgfeeddccbbaa 对于所有评测用例, 1 ≤ V ≤ 10000。 ``` +下é¢çš„程åºå®žçŽ°äº†è¿™ä¸€åŠŸèƒ½ï¼Œè¯·ä½ 补全空白处内容: + +```cpp +#include <bits/stdc++.h> +using namespace std; +const int maxn = 1e6 + 5; +const int mod = 1e9 + 7; +int dp[152][26][152]; +int dfs(int pre, int x, int aft) +{ + int &d = dp[pre][x][aft]; + if (~d) + return d; + if (x == 1) + return d = pre * aft; + if (aft == 0) + { + if (x != 0) + return -1e9; + return 0; + } + int ans = 0; + for (int i = 1; i <= aft; i++) + { + int res = dfs(pre + i, x - 1, aft - i) + i * pre; + if (ans < res) + { + ans = res; + } + } + return d = ans; +} +void dfs2(int pre, int x, int aft, int rest, string &res) +{ + if (x == 1) + { + res += string(aft, 'a'); + return; + } + int len = 1e9; + for (int i = 1; i <= aft; i++) + { + int d = dfs(pre + i, x - 1, aft - i) + i * pre; + if (d >= rest) + { + len = i; + break; + } + } + res += string(len, 'a' + x - 1); + rest -= len * pre; + __________________ + return; +} +int calc(string a) +{ + int n = a.size(); + int ans = 0; + for (int i = 0; i < n; i++) + { + for (int j = i + 1; j < n; j++) + { + if (a[i] > a[j]) + ans++; + } + } + return ans; +} +void solve(int v) +{ + memset(dp, -1, sizeof dp); + int len = 1e9, x = 1e9; + for (int i = 1; i <= 150; i++) + { + for (int j = 1; j <= 26; j++) + { + if (dfs(0ll, j, i) >= v) + { + if (len > i) + { + len = i, x = j; + } + else if (len == i) + { + x = min(x, j); + } + } + } + } + string ans; + dfs2(0, x, len, v, ans); + cout << ans << endl; + return; +} +int main() +{ + ios::sync_with_stdio(false); + int n; + cin >> n; + solve(n); + return 0; +} +``` + + ## aop ### before @@ -69,7 +174,7 @@ jihgfeeddccbbaa ## ç”案 ```cpp - +dfs2(pre + len, x - 1, aft - len, rest, res); ``` ## 选项 @@ -77,17 +182,17 @@ jihgfeeddccbbaa ### A ```cpp - +dfs2(pre + len, x, aft - len, rest, res); ``` ### B ```cpp - +dfs2(pre + len, x - 1, aft - 1, rest, res); ``` ### C ```cpp - +dfs2(pre + len, x - 1, aft, rest, res); ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/52.\347\237\251\351\230\265/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/52.\347\237\251\351\230\265/solution.md" index c566426e82df48ff9331bf3830f976ba9dbe3340..62ae1782abf458e2cf12d71b94db045cf48f1875 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/52.\347\237\251\351\230\265/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/52.\347\237\251\351\230\265/solution.md" @@ -6,6 +6,32 @@ ç”æ¡ˆå¾ˆå¤§ï¼Œä½ åªéœ€è¦ç»™å‡ºæ–¹æ¡ˆæ•°é™¤ä»¥ 2020 的余数å³å¯ã€‚ +以下程åºå®žçŽ°äº†è¿™ä¸€åŠŸèƒ½ï¼Œè¯·ä½ 补全空白处内容: + +```cpp +#include <stdio.h> +int DP[1011][1011]; +int main() +{ + int i, j; + DP[1][0] = 1; + for (i = 1; i <= 1010; i++) + DP[i][0] = 1; + for (i = 1; i <= 1010; i++) + { + for (j = 1; j <= i; j++) + { + if (i == j) + DP[i][j] = DP[i][j - 1]; + else + __________________; + } + } + printf("%d", DP[1010][1010]); + return 0; +} +``` + ## aop ### before @@ -23,7 +49,7 @@ ## ç”案 ```cpp - +DP[i][j] = (DP[i - 1][j] + DP[i][j - 1]) % 2020 ``` ## 选项 @@ -31,17 +57,17 @@ ### A ```cpp - +DP[i][j] = (DP[i - 1][j + 1] + DP[i - 1][j + 1]) % 2020 ``` ### B ```cpp - +DP[i][j] = (DP[i][j] + DP[i][j - 1]) % 2020 ``` ### C ```cpp - +DP[i][j] = (DP[i - 1][j] + DP[i][j]) % 2020 ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/55.\344\272\244\346\215\242\347\223\266\345\255\220/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/55.\344\272\244\346\215\242\347\223\266\345\255\220/solution.md" index e4cfcb0b904f1dc19f5b138c18197398b9309579..132837e394170797f4da49f88c55dcfdf2ed5c40 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/55.\344\272\244\346\215\242\347\223\266\345\255\220/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/55.\344\272\244\346\215\242\347\223\266\345\255\220/solution.md" @@ -34,6 +34,7 @@ 2 ``` +以下错误的一项是? ## aop @@ -41,7 +42,8 @@ ### before ```cpp - +#include <bits/stdc++.h> +using namespace std; ``` ### after @@ -53,7 +55,50 @@ ## ç”案 ```cpp - +int search(int i); +int n; +int a[10000] = {0}; +int main(void) +{ + int index, count, i; + index = count = 0; + scanf("%d", &n); + for (i = 0; i < n; i++) + { + scanf("%d", &a[i]); + } + + for (i = 0; i < n; i++) + { + int j = search(i); + if (a[index] != a[j]) + { + int t = a[index]; + a[index] = a[j]; + a[j] = t; + count++; + index++; + } + } + + printf("%d", count); + return 0; +} + +int search(int i) +{ + int index, j, k, min; + min = 99999; + for (j = i; j < n; j++) + { + if (min > a[j]) + { + min = a[j]; + index = j; + } + } + return index; +} ``` ## 选项 @@ -61,17 +106,83 @@ ### A ```cpp - +int main() +{ + int n, a[10005]; + cin >> n; + for (int i = 1; i <= n; i++) + cin >> a[i]; + int num = 0; + for (int i = 1; i <= n; i++) + { + while (a[i] != i) + { + swap(a[i], a[a[i]]); + num++; + } + } + cout << num << endl; + return 0; +} ``` ### B ```cpp - +int main() +{ + int n; + cin >> n; + int a[n + 5]; + for (int i = 0; i < n; i++) + cin >> a[i]; + int min; + int num = 0; + for (int i = 0; i < n; i++) + { + min = i; + for (int j = i + 1; j < n; j++) + { + if (a[min] > a[j]) + min = j; + } + if (min != i) + { + num++; + swap(a[i], a[min]); + } + } + cout << num << endl; + return 0; +} ``` ### C ```cpp - +int main() +{ + int n; + int num = 0; + scanf("%d", &n); + int a[n + 5]; + for (int i = 0; i < n; i++) + { + scanf("%d", &a[i]); + } + for (int i = 1; i < n; i++) + { + if (a[i - 1] > a[i]) + { + swap(a[i - 1], a[i]); + num++; + } + } + if (num == n - 1) + { + num = n / 2; + } + cout << num << endl; + return 0; +} ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/56.\346\216\222\345\256\203\345\271\263\346\226\271\346\225\260/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/56.\346\216\222\345\256\203\345\271\263\346\226\271\346\225\260/solution.md" index 64efdc42ffd92bae0719b0bf810be23154a41594..50f909f812f7356f1c6f191d7c9d999eb4c1ade4 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/56.\346\216\222\345\256\203\345\271\263\346\226\271\346\225\260/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/56.\346\216\222\345\256\203\345\271\263\346\226\271\346\225\260/solution.md" @@ -26,7 +26,7 @@ ## ç”案 ```cpp - +639172 ``` ## 选项 @@ -34,17 +34,17 @@ ### A ```cpp - +629173 ``` ### B ```cpp - +691372 ``` ### C ```cpp - +627193 ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/57.REPEAT \347\250\213\345\272\217/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/57.REPEAT \347\250\213\345\272\217/solution.md" index e0e775f5247b37390d41ec5c45d6e6ad610d5029..9bb2d9a183e5554ff2b5bc146aca281d01b5ba37 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/57.REPEAT \347\250\213\345\272\217/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/57.REPEAT \347\250\213\345\272\217/solution.md" @@ -1038,7 +1038,7 @@ REPEAT 9: ## ç”案 ```cpp - +403 ``` ## 选项 @@ -1046,17 +1046,17 @@ REPEAT 9: ### A ```cpp - +400 ``` ### B ```cpp - +401 ``` ### C ```cpp - +402 ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/59.\346\230\216\347\240\201/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/59.\346\230\216\347\240\201/solution.md" index bb2254a78d29390d8fff25eea4dca4c40c936b89..93811048efa673208aa11a846e1c17a0710ca89a 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/59.\346\230\216\347\240\201/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/59.\346\230\216\347\240\201/solution.md" @@ -50,7 +50,7 @@ ## ç”案 ```cpp - +387420489 ``` ## 选项 @@ -58,17 +58,17 @@ ### A ```cpp - +10000000000 ``` ### B ```cpp - +16777216 ``` ### C ```cpp - +43046721 ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/60.\344\270\211\344\275\223\346\224\273\345\207\273/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/60.\344\270\211\344\275\223\346\224\273\345\207\273/solution.md" index 99cefb72bb2f30f59a6de91e6d30726c2ab4d257..c0cc3e07ef1a1598647873f441c2dd87c9e8afbb 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/60.\344\270\211\344\275\223\346\224\273\345\207\273/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/60.\344\270\211\344\275\223\346\224\273\345\207\273/solution.md" @@ -56,6 +56,107 @@ 对于所有数æ®ï¼ŒA × B × C ≤ 10^6, m ≤ 10^6, 0 ≤ d(i, j, k), ht ≤ 10^9。 ``` +以下程åºå®žçŽ°äº†è¿™ä¸€åŠŸèƒ½ï¼Œè¯·ä½ 补全空白处的内容: + +```cpp +#include <bits/stdc++.h> +using namespace std; + +const int N = 2000010; + +typedef long long LL; +int A, B, C, m; +LL s[N], b[N], bp[N]; +int op[N / 2][7]; + +const int d[8][4] = { + {0, 0, 0, 1}, + {0, 0, 1, -1}, + {0, 1, 0, -1}, + {0, 1, 1, 1}, + {1, 0, 0, -1}, + {1, 0, 1, 1}, + {1, 1, 0, 1}, + {1, 1, 1, -1}}; + +int get(int i, int j, int k) +{ + + return (i * B + j) * C + k; +} + +bool check(int mid) +{ + memcpy(b, bp, sizeof bp); + for (int i = 1; i <= mid; i++) + { + int x1 = op[i][0], x2 = op[i][1], y1 = op[i][2], y2 = op[i][3], z1 = op[i][4], z2 = op[i][5], h = op[i][6]; + b[get(x1, y1, z1)] -= h; + b[get(x1, y1, z2 + 1)] += h; + b[get(x1, y2 + 1, z1)] += h; + b[get(x1, y2 + 1, z2 + 1)] -= h; + b[get(x2 + 1, y1, z1)] += h; + b[get(x2 + 1, y1, z2 + 1)] -= h; + b[get(x2 + 1, y2 + 1, z1)] -= h; + b[get(x2 + 1, y2 + 1, z2 + 1)] += h; + } + + memset(s, 0, sizeof s); + for (int i = 1; i <= A; i++) + for (int j = 1; j <= B; j++) + for (int k = 1; k <= C; k++) + { + s[get(i, j, k)] = b[get(i, j, k)]; + for (int u = 1; u < 8; u++) + { + int x = i - d[u][0], y = j - d[u][1], z = k - d[u][2], t = d[u][3]; + s[get(i, j, k)] -= s[get(x, y, z)] * t; + } + + if (s[get(i, j, k)] < 0) + return true; + } + + return false; +} + +int main() +{ + scanf("%d%d%d%d", &A, &B, &C, &m); + + for (int i = 1; i <= A; i++) + for (int j = 1; j <= B; j++) + for (int k = 1; k <= C; k++) + scanf("%lld", &s[get(i, j, k)]); + + for (int i = 1; i <= A; i++) + for (int j = 1; j <= B; j++) + for (int k = 1; k <= C; k++) + for (int u = 0; u < 8; u++) + { + int x = i - d[u][0], y = j - d[u][1], z = k - d[u][2], t = d[u][3]; + __________________ + } + + for (int i = 1; i <= m; i++) + for (int j = 0; j < 7; j++) + scanf("%d", &op[i][j]); + + int l = 1, r = m; + while (l < r) + { + int mid = l + r >> 1; + if (check(mid)) + r = mid; + else + l = mid + 1; + } + + printf("%d\n", r); + return 0; +} +``` + ## aop ### before @@ -73,7 +174,7 @@ ## ç”案 ```cpp - +bp[get(i, j, k)] += s[get(x, y, z)] * t; ``` ## 选项 @@ -81,17 +182,17 @@ ### A ```cpp - +bp[get(i, j, k)] = s[get(x, y, z)] * t; ``` ### B ```cpp - +bp[get(i, j, k)] *= s[get(x, y, z)] * t; ``` ### C ```cpp - +bp[get(i, j, k)] = s[get(x, y, z)] + t; ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/61.\345\255\227\346\257\215\351\230\265\345\210\227/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/61.\345\255\227\346\257\215\351\230\265\345\210\227/solution.md" index 08a29f9668c4d0bfda4315101535eb9ae0b2e53b..d80428502bca91da77e8fabc5e05f4a2bfb55e6e 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/61.\345\255\227\346\257\215\351\230\265\345\210\227/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/61.\345\255\227\346\257\215\351\230\265\345\210\227/solution.md" @@ -140,7 +140,7 @@ WSDAUGUTVWCVHEMOIRJJGTANUWTSAIXXEVZTBDHPGSRHHVWCDZVZYRJTLONIJVXEATHQXOUKBIGZONFR ## ç”案 ```cpp - +41 ``` ## 选项 @@ -148,17 +148,17 @@ WSDAUGUTVWCVHEMOIRJJGTANUWTSAIXXEVZTBDHPGSRHHVWCDZVZYRJTLONIJVXEATHQXOUKBIGZONFR ### A ```cpp - +38 ``` ### B ```cpp - +39 ``` ### C ```cpp - +40 ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/62.\347\205\244\347\220\203\346\225\260\347\233\256/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/62.\347\205\244\347\220\203\346\225\260\347\233\256/solution.md" index b28f90a36b4807bb5034b528635ab62a98141c0e..51691bcf8f97aaf46d9065ec5288d3f6ef7d4dc1 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/62.\347\205\244\347\220\203\346\225\260\347\233\256/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/62.\347\205\244\347\220\203\346\225\260\347\233\256/solution.md" @@ -25,7 +25,7 @@ ## ç”案 ```cpp - +171700 ``` ## 选项 @@ -33,17 +33,17 @@ ### A ```cpp - +166650 ``` ### B ```cpp - +176851 ``` ### C ```cpp - +182104 ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/64.\345\236\222\351\252\260\345\255\220/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/64.\345\236\222\351\252\260\345\255\220/solution.md" index 5397f72b2d580e5270ce5eae2a377814d87e06c5..04a90ce0a979f3f951da5ecf64afa769e1ca780e 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/64.\345\236\222\351\252\260\345\255\220/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/64.\345\236\222\351\252\260\345\255\220/solution.md" @@ -20,7 +20,7 @@ n表示骰åæ•°ç›® **è¾“å‡ºæ ¼å¼** -一行一个数,表示ç”案模 10^9 + 7 的结果。 +一行一个数,表示ç”案模 $10^9 + 7$ 的结果。 **æ ·ä¾‹è¾“å…¥** @@ -52,12 +52,15 @@ n表示骰åæ•°ç›® CPU消耗 < 2000ms +以下选项错误的是? + ## aop ### before ```cpp - +#include <bits/stdc++.h> +using namespace std; ``` ### after @@ -69,7 +72,83 @@ CPU消耗 < 2000ms ## ç”案 ```cpp - +#define MOD 1000000007 +using namespace std; + +int points[7] = {0, 4, 5, 6, 1, 2, 3}; +int n, m; +int ban[36][2]; +long long result; + +bool judge(int point1, int point2) +{ + bool flag = true; + for (int i = 0; i < m; i++) + { + int point3 = points[point2]; + if (point1 == ban[i][0] && point3 == ban[i][1]) + { + + flag = false; + break; + } + if (point1 == ban[i][1] && point3 == ban[i][0]) + { + + flag = false; + break; + } + } + return flag; +} + +void dfs(int cnt, int point) +{ + if (cnt == n) + { + result++; + return; + } + for (int i = 1; i <= 6; i++) + { + if (judge(point, i)) + { + cnt++; + dfs(cnt, i); + cnt--; + } + } +} + +long long quickpow(int x, int N) +{ + int reg = x; + int sum = 1; + while (N) + { + if (N & 1) + { + sum = sum * reg; + } + reg *= reg; + N = N >> 1; + } + return sum; +} +int main() +{ + + cin >> n >> m; + for (int i = 0; i < m; i++) + { + cin >> ban[i][0] >> ban[i][1]; + } + dfs(0, 0); + + long long temp = quickpow(4, n); + cout << result * temp % MOD; + return 0; +} ``` ## 选项 @@ -77,17 +156,253 @@ CPU消耗 < 2000ms ### A ```cpp - +#define MOD 1000000007 + +typedef long long LL; +LL dp[2][7]; +int n, m; +bool conflict[7][7]; +map<int, int> op; + +void init() +{ + op[1] = 4; + op[4] = 1; + op[2] = 5; + op[5] = 2; + op[3] = 6; + op[6] = 3; +} + +struct M +{ + LL a[6][6]; + + M() + { + for (int i = 0; i < 6; ++i) + { + for (int j = 0; j < 6; ++j) + { + a[i][j] = 1; + } + } + } +}; + +M mMultiply(M m1, M m2) +{ + M ans; + + for (int i = 0; i < 6; ++i) + { + for (int j = 0; j < 6; ++j) + { + ans.a[i][j] = 0; + for (int k = 0; k < 6; ++k) + { + ans.a[i][j] = (ans.a[i][j] + m1.a[i][k] * m2.a[k][j]) % MOD; + } + } + } + return ans; +} + +M mPow(M m, int k) +{ + M ans; + for (int i = 0; i < 6; ++i) + { + for (int j = 0; j < 6; ++j) + { + if (i == j) + ans.a[i][j] = 1; + else + ans.a[i][j] = 0; + } + } + while (k) + { + if (k & 1) + { + ans = mMultiply(ans, m); + } + m = mMultiply(m, m); + k >>= 1; + } + return ans; +} + +int main() +{ + init(); + scanf("%d%d", &n, &m); + M cMatrix; + for (int i = 0; i < m; ++i) + { + int a, b; + scanf("%d%d", &a, &b); + cMatrix.a[op[a] - 1][b - 1] = 0; + cMatrix.a[op[b] - 1][a - 1] = 0; + } + + M cMatrix_n_1 = mPow(cMatrix, n - 1); + + LL ans = 0; + for (int j = 0; j < 6; ++j) + { + for (int i = 0; i < 6; ++i) + { + ans = (ans + cMatrix_n_1.a[i][j]) % MOD; + } + } + + LL t = 1; + LL tmp = 4; + LL p = n; + while (p) + { + if (p & 1) + { + t = t * tmp % MOD; + } + tmp = tmp * tmp % MOD; + p >>= 1; + } + printf("%lld", ans * t % MOD); + + return 0; +} ``` ### B ```cpp - +#define MOD 1000000007 + +typedef long long LL; +LL dp[2][7]; +int n, m; +bool conflict[7][7]; +map<int, int> op; + +void init() +{ + op[1] = 4; + op[4] = 1; + op[2] = 5; + op[5] = 2; + op[3] = 6; + op[6] = 3; +} + +int main() +{ + init(); + scanf("%d%d", &n, &m); + for (int i = 0; i < m; ++i) + { + int a, b; + scanf("%d%d", &a, &b); + conflict[a][b] = true; + conflict[b][a] = true; + } + + for (int j = 1; j <= 6; ++j) + { + dp[0][j] = 1; + } + + int cur = 0; + + for (int level = 2; level <= n; ++level) + { + cur = 1 - cur; + + for (int j = 1; j <= 6; ++j) + { + dp[cur][j] = 0; + + for (int i = 1; i <= 6; ++i) + { + if (conflict[op[j]][i]) + continue; + dp[cur][j] = (dp[cur][j] + dp[1 - cur][i]) % MOD; + } + } + } + + LL sum = 0; + for (int k = 1; k <= 6; ++k) + { + sum = (sum + dp[cur][k]) % MOD; + } + + LL ans = 1; + LL tmp = 4; + LL p = n; + + while (p) + { + if (p & 1) + ans = (ans * tmp) % MOD; + tmp = (tmp * tmp) % MOD; + p >>= 1; + } + printf("%lld\n", (sum * ans) % MOD); + return 0; +} ``` ### C ```cpp - +#define MOD 1000000007 + +int op[7]; +bool confilct[7][7]; +void init() +{ + op[1] = 4; + op[4] = 1; + op[2] = 5; + op[5] = 2; + op[3] = 6; + op[6] = 3; +} +int n, m; + +long long int f(int up, int count) +{ + if (count == 0) + return 4; + long long ans = 0; + for (int upp = 1; upp <= 6; ++upp) + { + if (confilct[op[up]][upp]) + continue; + ans = (ans + f(upp, count - 1)) % MOD; + } + return ans; +} + +int main() +{ + init(); + scanf("%d%d", &n, &m); + for (int i = 0; i < m; ++i) + { + int x, y; + scanf("%d%d", &x, &y); + confilct[y][x] = true; + confilct[x][y] = true; + } + long long ans = 0; + for (int up = 1; up <= 6; ++up) + { + ans = (ans + 4 * f(up, n - 1)) % MOD; + } + printf("%lli\n", ans); + return 0; +} ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/66.\351\227\250\347\211\214\345\210\266\344\275\234/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/66.\351\227\250\347\211\214\345\210\266\344\275\234/solution.md" index 375fb35b17c345eb6610c6a919dad528e98eeaa1..288118e0ccf79fe431c77fa85810b93534de4b7f 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/66.\351\227\250\347\211\214\345\210\266\344\275\234/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/66.\351\227\250\347\211\214\345\210\266\344\275\234/solution.md" @@ -23,7 +23,7 @@ ## ç”案 ```cpp - +624 ``` ## 选项 @@ -31,17 +31,17 @@ ### A ```cpp - +626 ``` ### B ```cpp - +622 ``` ### C ```cpp - +628 ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/68.\345\271\263\351\235\242\345\210\207\345\210\206/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/68.\345\271\263\351\235\242\345\210\207\345\210\206/solution.md" index 7849c8b4779fb5f99459bf2e1c7121599f8299ed..b572b894eb500fb1f827ca6cec80c78ad98a69f5 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/68.\345\271\263\351\235\242\345\210\207\345\210\206/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/68.\345\271\263\351\235\242\345\210\207\345\210\206/solution.md" @@ -35,6 +35,51 @@ 6 ``` +以下程åºå®žçŽ°äº†è¿™ä¸€åŠŸèƒ½ï¼Œè¯·ä½ 补全空白处的内容: + +```cpp +#include <bits/stdc++.h> +using namespace std; + +long double s[1010][2]; +long long ans; +bool st[1010]; +pair<long double, long double> p; + +int main() +{ + int n; + cin >> n; + for (int i = 0; i < n; i++) + { + cin >> s[i][0] >> s[i][1]; + set<pair<long double, long double>> points; + for (int j = 0; j < i; j++) + { + if (st[j]) + continue; + if (s[i][0] == s[j][0]) + { + if (s[i][1] == s[j][1]) + { + st[i] = true; + break; + } + else + continue; + } + __________________ + p.second = s[i][0] * p.first + s[i][1]; + points.insert(p); + } + if (!st[i]) + ans += points.size() + 1; + } + cout << ans + 1; + return 0; +} +``` + ## aop ### before @@ -52,7 +97,7 @@ ## ç”案 ```cpp - +p.first = (s[j][1] - s[i][1]) / (s[i][0] - s[j][0]); ``` ## 选项 @@ -60,17 +105,17 @@ ### A ```cpp - +p.first = (s[j][1] - s[i][1]) / (s[i][1] - s[j][1]); ``` ### B ```cpp - +p.first = (s[j][0] - s[i][0]) / (s[i][0] - s[j][0]); ``` ### C ```cpp - +p.first = (s[j][0] - s[i][0]) / (s[i][1] - s[j][1]); ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/70.\346\266\210\351\231\244\345\260\276\344\270\200/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/70.\346\266\210\351\231\244\345\260\276\344\270\200/solution.md" index f3b493702740f5774a1e3f13c646f5ac6a064be1..ae398616edec7df161335b18e2733348d0e022a2 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/70.\346\266\210\351\231\244\345\260\276\344\270\200/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/70.\346\266\210\351\231\244\345\260\276\344\270\200/solution.md" @@ -27,6 +27,31 @@ 00000000000000000000000000001100 ``` +è¯·ä½ å¡«è¡¥ç©ºç™½å¤„çš„å†…å®¹ï¼š + +```cpp +#include <stdio.h> + +void f(int x) +{ + int i; + for (i = 0; i < 32; i++) + printf("%d", (x >> (31 - i)) & 1); + printf(" "); + __________________ + for (i = 0; i < 32; i++) + printf("%d", (x >> (31 - i)) & 1); + printf("\n"); +} + +int main() +{ + f(103); + f(12); + return 0; +} +``` + ## aop ### before @@ -44,7 +69,7 @@ ## ç”案 ```cpp - +x = x & (x + 1); ``` ## 选项 @@ -52,17 +77,17 @@ ### A ```cpp - +x = x & (x - 1); ``` ### B ```cpp - +x = x && (x - 1); ``` ### C ```cpp - +x = x && (x + 1); ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/71.\345\233\233\345\271\263\346\226\271\345\222\214/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/71.\345\233\233\345\271\263\346\226\271\345\222\214/solution.md" index b1b044ace117d4415ebbbd8f406eecdb11accfa8..b655863adf51ed5dda407ac00f8543cd3d068e46 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/71.\345\233\233\345\271\263\346\226\271\345\222\214/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/71.\345\233\233\345\271\263\346\226\271\345\222\214/solution.md" @@ -46,6 +46,60 @@ 1 1 267 838 ``` +以下程åºå®žçŽ°äº†è¿™ä¸€åŠŸèƒ½ï¼Œè¯·ä½ 补全空白处内容: + +```cpp +#include <bits/stdc++.h> +using namespace std; + +typedef long long LL; +const int MAXN = 2500010; +struct Node +{ + int s, c, d; + bool operator<(const Node &t) const + { + if (s != t.s) + return s < t.s; + if (c != t.c) + return c < t.c; + return d < t.d; + } +} sum[MAXN]; +int n, m; +int main() +{ + cin >> n; + for (int c = 0; c * c <= n; c++) + for (int d = c; c * c + d * d <= n; d++) + sum[m++] = {c * c + d * d, c, d}; + sort(sum, sum + m); + for (int a = 0; a * a <= n; a++) + { + for (int b = 0; a * a + b * b <= n; b++) + { + int t = n - a * a - b * b; + int l = 0, r = m - 1; + while (l < r) + { + __________________ + if (sum[mid].s >= t) + r = mid; + else + l = mid + 1; + } + + if (sum[l].s == t) + { + printf("%d %d %d %d", a, b, sum[l].c, sum[l].d); + return 0; + } + } + } + return 0; +} +``` + ## aop ### before @@ -63,7 +117,7 @@ ## ç”案 ```cpp - +int mid = l + r >> 1; ``` ## 选项 @@ -71,17 +125,17 @@ ### A ```cpp - +int mid = l + (r >> 1); ``` ### B ```cpp - +int mid = l + r; ``` ### C ```cpp - +int mid = l + r + 1; ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/72.\345\205\260\351\241\277\350\232\202\350\232\201/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/72.\345\205\260\351\241\277\350\232\202\350\232\201/solution.md" index 48cf7372ec004b78575b0c57ea9ec4e329edfca1..6dc0e7a91096e7573597545160ee329e6f46bf3e 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/72.\345\205\260\351\241\277\350\232\202\350\232\201/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/72.\345\205\260\351\241\277\350\232\202\350\232\201/solution.md" @@ -59,6 +59,91 @@ 0 0 ``` +以下程åºå®žçŽ°äº†è¯¥åŠŸèƒ½ï¼Œè¯·ä½ 补全空白处内容: + +```cpp +#include <bits/stdc++.h> +using namespace std; + +typedef enum _direction +{ + Dup, + Dright, + Ddown, + Dleft +} Direction; + +void SolveNextDirection(Direction direction, int **arr, int nRow, int nCol, int move) +{ + int n = 0; + while (n < move) + { + if (arr[nRow][nCol] == 1) + { + if (direction == Dleft) + { + direction = Dup; + } + else + direction = (Direction)(direction + 1); + + arr[nRow][nCol] = 0; + } + else + { + if (direction == Dup) + { + direction = Dleft; + } + else + direction = (Direction)(direction - 1); + arr[nRow][nCol] = 1; + } + __________________ + ++n; + } + + cout << nRow << " " << nCol << endl; +} + +int main() +{ + int m, n; + int nRow, nCol, move; + char Dre; + Direction direction; + cin >> m >> n; + int **arr = new int *[m]; + for (int i = 0; i < m; ++i) + { + arr[i] = new int[n]; + } + for (int i = 0; i < m; ++i) + for (int j = 0; j < n; ++j) + { + cin >> arr[i][j]; + } + cin >> nRow >> nCol >> Dre >> move; + if (Dre == 'U') + { + direction = Dup; + } + else if (Dre == 'R') + { + direction = Dright; + } + else if (Dre == 'D') + { + direction = Ddown; + } + else + direction = Dleft; + + SolveNextDirection(direction, arr, nRow, nCol, move); + delete[] arr; + return 0; +} +``` ## aop @@ -77,7 +162,14 @@ ## ç”案 ```cpp - +if (direction == Dup) + nRow -= 1; +else if (direction == Dright) + nCol += 1; +else if (direction == Ddown) + nRow += 1; +else + nCol -= 1; ``` ## 选项 @@ -85,17 +177,39 @@ ### A ```cpp - +if (direction == Dup) + nRow += 1; +else if (direction == Dright) + nCol -= 1; +else if (direction == Ddown) + nRow += 1; +else + nCol -= 1; +++n; ``` ### B ```cpp - +if (direction == Dup) + nRow += 1; +else if (direction == Dright) + nCol -= 1; +else if (direction == Ddown) + nRow -= 1; +else + nCol += 1; ``` ### C ```cpp - +if (direction == Dup) + nRow -= 1; +else if (direction == Dright) + nCol += 1; +else if (direction == Ddown) + nRow -= 1; +else + nCol += 1; ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/73.\345\256\214\347\276\216\345\271\263\346\226\271\346\225\260/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/73.\345\256\214\347\276\216\345\271\263\346\226\271\346\225\260/solution.md" index 5f782166dca1ba47349f462fc545cb58400d73dd..3764a2f9dac2da8a5dc09ce243f290872cb75fd9 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/73.\345\256\214\347\276\216\345\271\263\346\226\271\346\225\260/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/73.\345\256\214\347\276\216\345\271\263\346\226\271\346\225\260/solution.md" @@ -23,7 +23,7 @@ ## ç”案 ```cpp - +1499441040 ``` ## 选项 @@ -31,17 +31,17 @@ ### A ```cpp - +1949990009 ``` ### B ```cpp - +914140441 ``` ### C ```cpp - +1101001 ``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/74.\345\255\227\347\254\246\344\270\262\347\274\226\347\240\201/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/74.\345\255\227\347\254\246\344\270\262\347\274\226\347\240\201/solution.md" index cae266b625b53b71dd601dbcea7617120e4f5d2e..e5134c39c0f55716364dfeaff62134eaaa12590c 100644 --- "a/data_backup/3.\350\223\235\346\241\245\346\235\257/74.\345\255\227\347\254\246\344\270\262\347\274\226\347\240\201/solution.md" +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/74.\345\255\227\347\254\246\344\270\262\347\274\226\347\240\201/solution.md" @@ -45,6 +45,38 @@ LCXYZ 对于所有评测用例,输入的长度ä¸è¶…过 200000。 ``` +以下程åºå®žçŽ°äº†è¿™ä¸€åŠŸèƒ½ï¼Œè¯·ä½ 补全空白处内容: + +```cpp +#include <bits/stdc++.h> +using namespace std; + +int main() +{ + string in; + string re = ""; + cin >> in; + int len = in.length(); + + in = in + 'Z'; + for (int i = 0; i < len;) + { + int temp = int(in[i] - '0') * 10 + int(in[i + 1] - '0'); + if (temp > 26) + { + re = re + char(in[i] - '0' + 'A' - 1); + i++; + } + else + { + __________________ + } + } + cout << re; + return 0; +} +``` + ## aop ### before @@ -62,7 +94,8 @@ LCXYZ ## ç”案 ```cpp - +re = re + char(temp + 'A' - 1); +i += 2; ``` ## 选项 @@ -70,17 +103,20 @@ LCXYZ ### A ```cpp - +re = re + char(temp + 'A' - 1); +i += 1; ``` ### B ```cpp - +re = re + char(temp + 'A'); +i += 1; ``` ### C ```cpp - +re = re + char(temp + 'A'); +i += 2; ``` diff --git a/leetcode_helper.py b/leetcode_helper.py index 1301b1b5036c98969f24c3b928d523ddff946383..a4ef1636d1319cbf6a853b6ca221ffbf8a2f2b2e 100644 --- a/leetcode_helper.py +++ b/leetcode_helper.py @@ -514,8 +514,33 @@ def add_solution_md_template_for_lanqiao(): pass -def check_need_to_add_exercises_dir(): - pass +def check_exercises_is_duplicate(): + count = 0 + + dirs = ['data/2.算法ä¸é˜¶', 'data/3.算法高阶', 'data/1.算法åˆé˜¶'] + exercises_ids = [] + for dir in dirs: + exercises_check_list = [] + dirs_ = os.listdir(dir) + algo_floor_dirs = [] + for algo_floor_dir in dirs_: + leetcode_class_dir = os.path.join(dir, algo_floor_dir) + if os.path.isdir(leetcode_class_dir): + algo_floor_dirs.append(leetcode_class_dir) + + for algo_floor_dir in algo_floor_dirs: + exercises_dirs_ = os.listdir(algo_floor_dir) + exercises_dirs = [] + for exercises_dir_ in exercises_dirs_: + exercises_dir = os.path.join(algo_floor_dir, exercises_dir_) + if os.path.isdir(exercises_dir): + exercises_dirs.append(exercises_dir) + for idx, tem_dir in enumerate(exercises_dirs): + # print(tem_dir) + title = tem_dir.split('/')[-1].split('.')[-1] + exercises_check_list.append(title) + print(collections.Counter(exercises_check_list)) + @@ -533,6 +558,8 @@ add_solution_md_template_for_lanqiao() add_color_for_special_exercises() +# check_exercises_is_duplicate() + # leetcode_helper_update_md() # leetcode_helper_update_config()