蓝桥杯哦2010第一届大赛试题
蓝桥杯试题标准答案(练习)
1、亲密数:假设有a、b两个数,若 a 的所有因子之和等于b,b 的所有因子之和等于a ,并且 a 不等于b ,则称 a 和 b 是一对亲密数。
如284 和 220 就是一对亲密数。
#include<stdio.h>int main(){int a,b,i,n;for(a=1;a<=10000;a++){for(b=0,i=1;i<=a/2;i++)if(a%i==0)1b+=i;for(n=0,i=1;i<=b/2;i++)if(b%i==0)n+=i;1if(n==a&&a!=b&&a<b)printf("%d-%d\n",a,b);}return 0;}2、世纪末的星期:曾有邪教称 1999 年 12 月 31 日是世界末日。
当然该谣言已经不攻自破。
还有人称今后的某个世纪末的12 月 31 日如果是星期一则会....有趣的是任何一个世纪末的年份的12 月 31 日都不可能是星期一!!于是“谣言制造商”又修改为星期日 ......1999 年的 12 月 31 日是星期五,请问,未来哪一个离我们最近的一个世纪末年即xx99 年的12 月 31 日正好是星期天,即星期日请回答该年份,只写这个4 位整数,不要写 12 月 31 等多余信息#include<stdio.h>2int main(){long days = 5; /*1999 年的最后一天为周5,把下一年加上 5天对 7 取余为 0 的,则是周日*/int i = 2000;for(;;) /*无循环终止条件,可以利用break 语句终止循环*/{if(i%4==0&&i%100!=0||i%400==0){days = days%7+366;else{days = days%7+365;3}if(days%7==0&&i%100==99) {printf("%d",i);break;}i++;}return 0;}3、马虎的算式:小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。
【蓝桥杯】历届试题连号区间数(运行超时)
【蓝桥杯】历届试题连号区间数(运⾏超时)历届试题连号区间数时间限制:1.0s 内存限制:256.0MB问题描述⼩明这些天⼀直在思考这样⼀个奇怪⽽有趣的问题:在1~N的某个全排列中有多少个连号区间呢?这⾥所说的连号区间的定义是:如果区间[L, R] ⾥的所有元素(即此排列的第L个到第R个元素)递增排序后能得到⼀个长度为R-L+1的“连续”数列,则称这个区间连号区间。
当N很⼩的时候,⼩明可以很快地算出答案,但是当N变⼤的时候,问题就不是那么简单了,现在⼩明需要你的帮助。
输⼊格式第⼀⾏是⼀个正整数N (1 <= N <= 50000), 表⽰全排列的规模。
第⼆⾏是N个不同的数字Pi(1 <= Pi <= N),表⽰这N个数字的某⼀全排列。
输出格式输出⼀个整数,表⽰不同连号区间的数⽬。
样例输⼊143 24 1样例输出17样例输⼊253 4 2 5 1样例输出29这道题运⾏超时了!以下是超时代码:Java源代码:1import java.util.Arrays;2import java.util.Scanner;34public class Main {56public static void main(String[] args) {7 Scanner in = new Scanner(System.in);8int n = in.nextInt();9int[] a = new int[n];10for (int i = 0; i < a.length; i++) {11 a[i] = in.nextInt();12 }13int count = 0;14for (int i = 0; i < a.length; i++) {15for (int j = i; j < a.length; j++) {16if (isRight(a, i, j)) {17 count++;18 }19 }20 }21 System.out.println(count);22 }2324// 是否符合连号区间25private static boolean isRight(int[] a, int i, int j) {26if (i == j) {27return true;28 }29int[] b = new int[j - i + 1];30for (int k = 0; k < b.length; k++) {31 b[k] = a[i + k];32 }33 Arrays.sort(b);34for (int k = 0; k < b.length - 1; k++) {35if (b[k] + 1 != b[k + 1])36return false;37 }38return true;39 }40 }评测点序号评测结果得分CPU使⽤内存使⽤下载评测数据1正确20.00109ms23.51MB2正确20.00234ms24.41MB3正确20.00530ms35.26MB4运⾏超时0.00运⾏超时76.81MB5运⾏超时0.00运⾏超时77.48MB以下是4和5输⼊输出的数据,因为数据太⼤了所以超时了,以后有时间再去优化代码:输⼊4为:550261 244 182 351 395 279 513 431 239 163 36 152 206 468 140 5 143 35 407 108 72 141 18 405 26 174 333 190 426 303 486 443 328 38 215 483 28 90 445 412 288 409 518 546 343 212 188 3 354 228 404 376 478 82 175 221 27 55 97 233 511 211 156 349 126 323 154 47 40 236 282 324 99 51 331 306 52 230 487 216 79 214 205 325 259 94 107 130 232 297 403 350 519 400 289 275 201 336 284 371 535 498 444 362 7 95 548 450 196 322 319 100 271 25 481 63 353 189 424 248 436 23 222 326 137 144 515 128 191 253 372 168 547 249 534 269 251 408 135 101 171 131 435 488 477 302 193 452 442 69 417 118 44 361 70 522 66 453 157 332 192 520 462 418 219 195 88 294 6 208 187 516 496 165 476 430 112 50 320 347 153 84 466 475 92 489 455 420 499 34 300 399 122 227 359 46 276 528 318 305 53 17 423 463 185 262 502 75 56 265 387 235 146 290 382 334 414 448 8 506 231 247 301 258 524 13 494 341 162 167 299 427 1 255 296 413 521 523 270 245 340 159 484 93 200 508 273 123 22 416 491 136 346 385 186 224 87 514 86 366 283 83 179 286 176 223 183 155 256 15 345 71 531 472 517 252 537 308 80 490 391 398 166 254 504 264 291 120 525 150 177 454 19 295 218 469 85 298 394 338 509 532 542 500 335 229 479 4 497 543 132 425 181 161 533 103 550 538 530 60 544 465 467 164 311 285 105 178 432 41 30 421 268 383 48 124 428 64 24 266 422 440 396 207 390 368 160 375 170 549 241 464 379 89 104 197 280 393 419 389 287 139 406 339 411 378 410 113 169 381 310 539 401 213 184 29 281 267 173 370 377 14 314 57 172 198 21 151 96 12 459 62 374 225 32 545 129 458 202 277 510 148 65 111 501 142 119 503 194 125 81 220 98 505 337 388 68 446 234 240 355 199 315 437 397 43 480 45 358 357 250 485 59 492 2 78 121 74 356 495 392 457 304 226 330 384 317 451 238 180 460 415 364 367 373 433 58 67 441 526 203 540 242 482 439 307 109 243 512 102 344 470 461 272 11 73 106 145 363 49 493 527 91 348 114 237 352 536 529 260 263 149 127 31 386 210 217 438 365 434 117 147 360 110 309 327 293 20 402 447 292 204 116 456 134 16 321 449 209 429 316 474 278 380 313 257 9 274 33 329 541 507 138 10 77 312 39 115 37 54 133 369 471 42 246 158 342 61 76 473输出4为:552输⼊5为:3984913 3601 3029 3283 2142 1973 1617 378 91 3162 3642 1829 2319 1363 2265 1154 3423 3379 2115 226 2633 379 3394 550 2706 2885 608 3380 1744 2234 2354 408 3197 511 1098 2524 2020 41 1626 3025 366 2901 3929 74 1307 282 281 2229 1860 2214 1688 3372 3204 655 1037 618 3053 1180 2848 2888 1709 2710 1747 659 3289 3672 1799 3706 1927 447 3439 3063 1962 1082 2501 2984 356 1500 1941 64 138 **** **** 587 1222 2391 3071 1978 1039 450 813 2075 733 713 3775 3435 3428 682 508 970 2621 589 3476 2149 1643 1821 1879 152 **** **** 3575 1398 1317 502 2953 2822 475 2757 2375 1657 1054 3324 2859 3854 3300 3921 2294 3826 2514 3269 3817 1677 3615 3537 2813 2130 2380 1969 1654 2732 1570 342 1915 3225 3603 1100 1666 3354 2330 3546 1423 1703 2688 773 89 917 3360 196 1959 772 3833 3543 388 1189 3535 3485 403 2824 3798 2243 3248 525 3454 2310 962 3478 1719 3052 2648 2630 510 712 3873 3569 752 3362 3560 3572 3949 888 2029 993 3752 269 731 2305 98 1442 3237 2504 3098 193 3135 2737 3217 1970 2148 2 2006 3430 3403 387 868 1378 991 1944 3034 3542 1755 2898 1454 1281 3132 3827 1936 3220 1047 3761 2646 3965 380 1477 1547 1166 1052 3659 2455 3953 1046 3191 1945 1253 106 3373 2069 2871 253 988 847 1897 3845 284 3704 1951 777 2908 2193 2899 564 1652 3794 2049 310 3278 615 3429 3591 1955 267 2024 446 391 238 2263 2709 2172 3008 665 2749 2144 3057 3638 1212 1723 357 3875 3799 1450 1390 371 3508 1305 2445 1006 1531 1049 2702 3740 3737 2526 3010 198 325 192 2174 3240 1312 549 522 976 1728 432 2141 1456 3755 3046 2272 3357 3518 3449 3705 1568 2417 2770 562 2877 1346 1234 961 1594 1950 3151 2977 339 2548 2891 2606 2740 2661 1938 3099 3452 3421 2369 164 302 2790 2185 959 2165 2897 2077 2815 3075 3023 1099 3869 133 **** **** 912 1977 1491 875 1022 2093 1329 3294 903 968 2346 2367 2066 81 594 2096 3940 667 760 1699 1169 496 2003 1712 3608 1205 1372 84 1139 574 108 1789 3306 1258 799 3229 1791 3222 1996 1268 2301 2857 2689 2920 3400 1823 3319 2065 946 3083 1932 1298 3330 2284 322 2041 1055 1844 864 1051 2302 1604 600 482 85 504 1002 190 1966 915 3017 678 3767 3137 2439 139 458 349 3588 2154 1920 3652 3959 3697 1185 2933 1539 2905 335 747 3858 691 3557 3943 2324 2207 817 2178 2199 1560 2316 1032 1382 2136 1865 2507 652 1830 1851 3779 2459 2643 2373 394 3930 788 2465 2186 3315 487 998 2632 1494 2189 1998 3426 3944 3365 369 869 3107 822 3169 2318 1908 1342 3166 1834 894 3004 3550 2043 166 **** **** 3409 1459 2774 3519 3679 1289 2281 2705 1001 714 114 12 3964 457 473 1496 2202 658 2970 5 1586 790 2675 3133 851 3126 168 107 2562 352 3613 1380 1681 2332 1619 711 2476 346 3649 292 3743 718 1062 2637 3629 3690 2512 2769 3468 883 3196 3291 3179 1684 627 2275 3243 3718 1135 2973 2157 3707 3152 1625 399 1704 846 1503 2574 784 1598 3471 3181 690 1571 3818 1359 1178 1501 1489 842 2858 1722 3058 2254 1208 3051 29 1671 3130 867 2421 2826 1647 2536 1545 3548 1581 879 2986 1618 2934 2238 244 2693 130 340 2788 1176 3444 1136 3678 2649 622 2287 740 2832 1692 2609 2948 2353 1077 181 982 336 1861 351 1552 1990 79 1591 2699 1021 2915 1737 3839 3860 2181 1330 2050 542 3729 3865 3270 3651 3926 2094 1109 3856 1805 2598 126 3541 3529 2657 2292 288 1114 926 1934 15891968 2480 2729 592 3966 527 254 1112 1335 1211 2773 3251 3209 3253 2700 472 1864 885 914 3633 1825 393 56 1069 2126 593 3015 2209 3969 1634 180 931 3103 2466 2242 3797 641 1859 18 3195 2414 2554 1407 2694 375 47 1670 1318 2926 3864 645 3585 456 2360 1101 3206 3958 1649 2122 3974 3246 625 1928 2358 3030 2838 3482 617 494 580 222 693 154 3390 1123 503 2523 1311 3547 3298 53 2435 657 2055 3811 624 520 2978 2236 664 1320 1196 3632 178 1779 865 263 1170 2805 3887 1804 1036 2564 1517 3442 3532 909 3363 2880 2119 643 808 2204 2297 2565 3774 3555 1875 2731 3664 221 1786 1246 99 289 2893 1397 1070 577 2886 3673 3968 3238 268 1713 3787 3744 2549 2879 3933 985 2502 873 3089 3701 3474 17 2313 2325 400 3618 2726 1613 3722 2798 2746 2356 2078 1574 1308 3822 3682 1108 237 3739 303 3599 3407 1124 1511 452 1243 3041 3458 3947 113 22 1371 3593 1582 934 720 2910 1174 1632 3980 277 1470 1365 3813 3487 3937 3671 50 1764 103 485 1452 1527 721 229 2135 301 1714 2300 3090 3459 1796 797 2919 1765 372 3141 359 555 3840 240 850 258 1436 3623 383 2084 1600 3756 1204 2911 374 1876 330 1993 436 1528 521 2412 298 595 905 537 2428 1939 3657 3230 2654 1236 3801 1162 1758 2427 489 3325 1664 1102 1770 368 3340 2073 3391 996 316 2995 158 **** **** 1071 3806 3016 3173 2394 1035 1832 2957 3279 3138 2608 2588 220 2596 2810 1651 2074 1992 2741 3345 2110 1753 1326 2928 942 102 3668 3726 3804 1300 1854 2000 3164 1011 3732 1563 557 3880 2802 1921 3889 1980 2890 297 3006 2352 401 1924 2750 1389 3250 3879 1909 3952 2171 2458 3148 941 3265 122 2293 2862 2152 2487 2687 3838 3829 568 3005 3366 3814 3558 3438 1199 3515 2309 1362 899 3895 2754 2416 324 2852 1734 2946 3666 874 1299 2669 182 **** **** 1094 2715 2212 3104 561 3536 2228 2146 3910 3226 1297 2830 3309 463 2468 2940 2395 1886 1368 513 841 3479 3645 3344 3770 3312 1202 1237 1627 2755 217 2001 1271 938 2845 2034 82 3909 2387 2996 1443 2697 1045 2506 534 1460 2072 234 830 753 765 1352 1584 3035 28 2966 3234 2400 3473 3897 2734 2493 3631 3108 2108 3509 3984 1429 3758 2937 1357 439 2117 2550 30 131 236 3961 1063 384 3714 1374 653 1177 3174 3815 3437 3215 1636 1660 754 3122 1012 1347 698 97 129 295 3308 3183 2213 3047 1148 3484 2290 3210 1576 3134 1018 460 3561 2533 1466 3398 112 3142 1769 3606 2617 3348 769 3772 825 2593 1597 3832 3828 3028 425 1954 2420 312 1943 3620 2177 3507 3342 2530 1622 2260 338 187 **** **** 210 3093 2092 1537 3140 1262 3834 3297 3231 3727 3261 3514 3863 3874 3307 532 923 3369 1672 679 716 3326 2235 1294 2273 506 2048 548 939 2656 2767 3725 3323 3129 2027 3891 2104 2976 279 1092 2081 3597 966 1067 2329 1088 3936 2875 2359 3505 1344 2736 3445 2206 863 2895 1768 3281 3182 120 3413 3393 2484 90 2927 1857 1972 1718 1530 1735 2344 2415 3303 500 1521 3604 3773 2535 1792 381 2779 3513 882 3120 3156 3760 3232 3032 2730 276 385 1853 105 1656 2666 1206 1404 423 2563 3489 136 **** **** 3825 935 1667 3136 1056 2256 634 802 2762 2032 1473 1013 1916 1840 2801 2311 412 2385 1349 2842 2097 2944 516 3044 701 2370 2051 1383 2443 3914 2053 3492 2266 3280 1947 449 943 1134 828 15 3296 2714 2993 2759 1155 1783 1198 742 484 3579 1113 794 3717 1043 3022 2298 3416 3894 2105 3290 952 1293 1064 3877 1165 177 789 2768 3691 3695 2079 433 1822 2560 671 3080 2807 3503 1520 1679 1416 1200 1133 719 756 1025 260 1880 2900 3160 3549 3979 3768 2812 2128 1395 1516 3927 723 3208 3079 2994 3712 337 1550 2161 862 3424 3957 315 1931 1053 3193 3566 3320 3723 529 2470 1942 893 2334 3753 242 1387 2323 3074 2963 526 2708 783 2860 2010 370 3106 1759 3848 3663 170 1315 3843 2196 2103 3576 1263 2784 270 1856 3795 1881 1008 1040 2139 1495 2626 1937 1610 327 2701 866 3328 213 71 93 454 3314 2519 3660 1448 2587 3045 3571 2312 3221 3113 958 2894 3163 287 676 2624 3859 1090 3841 3404 2941 1487 928 3318 3466 1871 2337 2785 1358 2594 1093 727 1515 3824 770 2631 844 2619 3788 967 2430 3564 581 3087 3636 1648 1159 2627 265 421 906 560 3524 3898 144 2600 2225 2745 2219 2625 1078 1228 2283 3724 161 350 406 1475 2668 1418 3559 480 402 3239 3159 3731 541 2258 2063 1579 890 1514 201 887 3190 3689 1214 505 1690 1173 2684 2191 2698 1742 2031 3785 57 3893 554 286 185 1602 309 3060 2288 3941 1192 2379 3734 2082 2100 1060 686 1462 333 3917 2437 2781 1167 3464 3867 3976 3715 2912 1408 3754 348 2473 2496 1142 3422 1336 3849 629 2607 3385 1269 2686 1803 318 1074 3693 3249 2276 283 878 2249 1437 2462 543 2200 1026 1492 1917 3223 3951 623 3523 3085 838 3665 1923 895 3384 3812 3610 2153 3322 2823 2642 896 2116 3517 2308 2814 1485 2085 2431 3161 364 3955 3097 223 995 1332 3971 1391 3056 1143 2486 1828 1420 3418 66 1994 512 936 3082 2262 2577 280 2183 3776 2925 1883 2592 3374 1987 3915 3884 73 311 320 36 2205 3594 373 1749 3741 3878 3844 997 3683 219 707 3453 451 63 3001 1623 839 2450 252 490 1435 1156 1658 1267 2982 853 377 601 1888 2539 2752 3791 855 2120 3885 2727 46 3121 2850 531 1815 2347 523 3420 26 3158 3187 818 3892 827 3698 104 820 2348 3842 3188 2362 1997 1743 3213 1925 437 2406 2176 25 1254 44 1449 1519 1453 1898 1698 2652 179 3573 2251 951 804 728 3336 125 932 2527 1903 1731 2192 607 2872 1682 3978 1982 1877 118 1522 1140 1354 2150 1085 1103 3212 2828 345 2720 2485 2922 3463 800 2268 2060 344 2118 3713 2195 1772 730 1862 2844 1411 1956 3026 3481 299 755 699 1748 3109 167 2950 2804 1379 3293 3719 2248 1468 3643 1239 491 146 1802 153 2156 956 1740 2255 343 2411 1766 3653 3259 3792 654 2681 524 1940 2929 382 3112 1353 1377 519 2985 3145 2451 149 937 60 2320 1771 1790 2645 3528 2947 965 2444 1590 2542 3020 3520 1250 725 3072 3650 632 2062 2303 306 1843 1195 250 1445 2390 786 2930 2280 1256 840 638 1788 3247 203 3901 1595 2939 1227 2184 1892 2924 739 24 195 429 957 1741 2061 1319 3414 3199 1350 3469 606 2345 927 3131 2967 3292 1005 3194 1534 2820 13 2644 1076 3019 38 2743 1160 1612 3216 919 2556 2691 173 684 3857 3275 410 1497 3273 2046 498 3556 2792 741 621 980 2121 3441 1413 2138 3911 1106 3945 1555 795 3116 2778 1210 2321 2777 2585 553 1486 21 3639 3688 1203 3167 2007 1615 872 2170 3228 2717 1536 3115 1807 814 3207 1906 3062 1846 2601 2495 812 2811 3011 1150 572 1708 3381 355 2019 673 3918 3321 231 614 3972 2907 2703 1068 1276 197 1710 3574 2232 824 20 3677 1493 921 2241 1817 471 1678 155 559 88 134 **** **** 3800 2035 1599 3255 907 453 1193 1275 362 1606 398 1137 1044 462 3506 2422 3596 2854 999 1179 3451 972 1427 3658 1808 3692 2744 3545 3655 767 479 1946 1512 2614 3920 1499 3127 1229 1611 2011 3696 3906 964 3095 3612 3465 1122 3939 908 1961 1422 1392 1588 466 2723 924 3143 3317 948 386 1544 2575 1756 1836 331 1929 3049 1116 2111 3757 3626 3491 1763 3313 611 1848 2384 685 2076 1457 1724 3377 2909 1689 1301 1232 1561 3784 1481 1504 831 2615 2921 1578 1394 1360 1323 2376 2448 596 1351 3554 1020 188 **** **** 1417 45 435 2131 1641 495 2518 1635 646 3510 704 1896 2938 852 1778 672 2168 1608 2162 2436 2129 1285 547 1337 3192 933 1913 1338 1775 3425 32 2818 3472 52 1650 1621 444 3766 256 3720 2992 1533 2059 710 3061 1455 2739 2559 290 963 940 2364 1257 1465 1524 1596 2843 3003 3295 3617 3630 2218 4 1310 1546 3587 551 3088 1033 2197 1476 764 3769 214 3950 3786 3928 1640 3796 3494 2403 1773 3402 1638 3245 2522 1059 100 141 2244 884 183 705 2935 3102 2090 1620 3823 1800 1696 2707 2968 1247 1548 2603 1551 3872 984 1244 2340 2008 264 2534 42 1105 2151 293 2015 171 3378 2404 870 3417 1543 2665 3674 2397 2841 2918 2246 474 1388 2211 1328 2568 758 3110 1290 1009 186 **** **** 2002 2772 2771 556 1217 1421 2425 2343 2233 3871 1985 2317 2203 3311 2840 891 2383 75 3084 3904 3913 860 2045 2182 3850 947 1261 3710 2578 2326 160 2902 1038 848 3899 2408 3501 3256 1776 1569 636 422 2864 3050 2399 3447 582 715 1874 1161 1086 2355 1564 3277 1745 3286 2208 821 2227 137 3448 732 1900 530 1171 150 650 584 1265 2333 448 2432 1963 3304 1117 3916 1701 3446 1415 3747 762 119 1887 1984 1535 2955 1842 2488 23 2295 897 780 573 3708 2545 1031 2407 2378 2800 2981 2083 2553 2972 1872 2481 3627 3007 2492 2584 3475 2881 2571 2555 2998 208 2914 3361 2401 750 2071 708 2482 1717 583 3975 3963 528 630 1814 1738 2873 1303 3461 3819 1665 3406 1685 1096 2573 3042 751 3443 2239 2296 2440 3176 1566 1118 2590 3198 1726 363 3117 2882 3331 2567 2285 1072 1439 1882 1334 2761 2054 2586 294 2589 2704 409 1532 3412 1683 3962 199 **** **** 1370 1752 2724 3789 1274 1637 1158 30273942 83 881 3456 1705 3462 2091 2616 2834 1007 854 3091 2304 3694 390 3018 973 2089 647 2780 3497 2974 2597 2374 1240 3266 2969 3483 1601 1218 3539 726 992 918 1119 2410 759 1952 819 2679 175 **** **** 2529 1507 156 407 2463 2042 1702 2472 806 2382 1393 1863 1248 515 776 2847 3516 613 1855 2223 1325 2988 544 1478 1132 602 1510 1273 275 445 661 2398 1912 467 735 2576 954 3700 3154 3748 3853 3640 218 1079 291 2341 1781 2220 1282 2099 1129 975 3419 3488 176 836 509 1181 856 1774 889 546 207 3368 1017 1513 1451 2997 1283 1806 313 1794 1183 1219 3233 2799 1975 2336 3477 3177 1364 54 3783 1097 3149 3607 2037 977 501 3337 1583 3096 3553 2991 2663 2887 3932 579 1014 2803 1444 1629 465 1463 2971 1858 3807 1957 332 2849 668 3186 3922 2511 307 2816 2983 2711 644 2180 3009 2640 2521 2503 649 695 2962 140 211 2009 389 2424 419 2371 455 1989 2328 1130 1616 2179 2247 1895 3069 202 469 604 1653 3333 2044 3902 441 3073 3257 1479 3327 3699 2835 1674 6 3852 3310 816 1425 3040 55 2314 1428 702 1809 1057 1812 1066 1624 1241 2478 1410 900 3339 3185 3793 194 1019 2396 585 749 1110 3805 147 1430 2350 2289 571 3595 2979 2240 1948 2112 2368 1127 2747 2572 746 1986 1811 902 2477 3742 2716 3900 1419 2490 3370 2892 2464 771 1190 619 1798 2903 2471 2611 766 1147 3125 3271 61 2965 1631 2719 2460 1010 1541 3931 3670 845 2109 1224 1327 2853 239 3948 2433 3512 3276 2446 431 518 2221 162 3316 1691 1905 308 1058 3054 1953 232 507 811 3128 981 2201 1030 2806 2434 2217 1949 3525 3332 1270 1424 1483 1146 3544 2827 3624 724 2016 2634 3616 2595 1847 2547 1000 1152 477 206 1849 3000 930 1529 778 2252 2057 257 86 1073 3605 886 1785 2581 3938 3305 3611 2787 2441 563 3039 2682 3376 1396 3067 3570 2004 3480 3577 3876 87 616 2405 2557 1711 1469 2674 1366 2167 832 3496 2107 1172 2989 1482 1446 2386 1575 94 2831 1084 3846 775 2500 2095 3172 2306 1287 779 2509 2725 2517 2990 3224 2809 3272 2230 960 157 **** **** 2173 434 3851 3810 2673 353 249 1187 2489 2299 1431 2018 2728 2863 2278 416 2751 3 610 3912 703 1304 2022 3427 1686 798 92 2226 3036 558 1284 2064 626 2721 3356 2672 787 2286 803 3171 2030 2475 877 987 3285 662 2175 3778 3180 1278 1523 2570 3244 2456 950 829 2322 3274 2033 1488 2442 461 3973 3499 1242 3346 1313 1964 612 3242 1091 3066 706 3883 911 1213 3227 189 **** **** 255 631 77 305 2160 1767 3771 3502 3835 184 **** **** 3033 3522 810 3358 70 2377 3625 2245 590 3592 807 216 1587 80 2363 1869 648 2114 2623 2791 3790 2264 329 2508 1376 2647 3118 2856 1605 227 2605 2817 1850 2796 3101 3252 1542 3527 3982 1153 1976 1633 2904 2426 3934 1695 3759 743 127 1827 598 3802 859 2718 620 1235 1694 2961 1902 2140 1835 1223 251 3119 1331 1343 132 **** **** 483 2923 3662 3498 910 3831 2125 833 2659 1138 3821 2515 3598 2036 1498 3396 1245 3355 3816 2797 768 261 1797 404 172 1693 2964 235 1386 3552 1526 34 1230 2040 1341 1967 3750 2622 835 858 640 440 2498 1697 570 1746 1182 1149 10 974 793 116 2222 3526 67 565 285 1075 1095 1558 418 892 2372 468 1894 2098 1401 1286 1207 1995 2889 2021 3299 1 3351 1220 1426 19 1292 3562 861 2959 1260 1438 2013 2224 1309 3364 1801 744 642 2469 2650 1810 438 2671 774 3861 27 123 3721 1168 3836 517 2479 360 677 2544 3335 3763 3762 628 2776 2613 666 2038 1467 413 1991 539 3076 2855 376 1186 1041 3383 3868 2874 3686 3749 1639 3267 663 1899 1751 1845 2499 3563 1585 3534 2086 2134 3341 2561 62 700 245 314 979 8 687 2690 651 1302 1322 1820 3434 3105 1472 40 1553 3551 1593 1141 3287 3728 76 929 2342 1024 2188 3386 3600 2270 2551 459 3967 805 3055 1238 3635 1663 3716 1816 603 669 117 2402 2696 2956 3584 3408 1015 248 3460 2418 2917 1914 215 174 2080 1818 3924 3888 2793 2505 2510 3684 681 709 3349 417 2758 2610 2014 2164 1736 2351 1023 2159 476 578 3263 748 1447 2760 3214 3219 3619 3338 1958 2618 2532 3457 1918 1614 2670 3254 3165 1209 538 1668 1884 1983 2748 815 1646 1889 3388 1461 169 1216 321 2361 3470 411 1572 354 2635 2250 2846 1603 2068 2931 1291 3680 3064 1003 3013 3262 1458 3092 396 1061 3395 3124 3586 2052 3685 1824 2155 427 148 3389 2187 2712 145 3258 2257 1716 1081 7 3282 3641 1191 2541 1508 1839 2540 43 1157 3581 983 1314 535 1201 660 1087 3387 1367 2357 3896 1111 635 33 2958 121 637 110 317 1295 688 3347 3960 3202 2975 849 3765 2825 837 2836 2789 272 165 1720 3764 2315 3565 1669 3521 319 533 3703 633 2381 442 2210 1567 395 2764 1277 3954 1225 2906 2145 3450 2579 3170 2819 3907 1188 656 2829 2916 2980 3981 3870 2765 58 1525 1339 3780 1750 3935 488 1266 1707 3654 2058 420 3648 31 1867 3411 955 246 1406 492 2365 3440 1538 3925 430 3353 2602 1933 3622 3500 1126 2861 3490 2123 3301 2497 2865 2794 781 3002 101 2878 1440 1782 3711 278 692 1480 2658 1890 1375 1251 792 1904 3043 2447 326 2259 3830 1316 35 3809 1549 1333 1659 2795 2143 2339 2883 566 1131 428 3751 1971 545 3782 1907 2837 1385 2667 3687 2651 2629 3150 2494 586 1400 1121 717 609 1645 1233 575 670 1518 2943 2951 3078 552 1272 683 3582 2457 414 2867 1628 1144 3367 2520 791 367 65 3905 2124 3111 69 2028 2628 1730 3211 347 536 2438 3157 3644 3189 3401 3200 328 3068 323 757 2753 1607 1761 2884 1910 3590 738 3175 2088 2528 675 2516 1120 3983 68 3855 1733 1104 300 2876 2169 124 971 2039 3702 576 588 901 857 2936 3178 1441 1042 296 3580 597 925 680 3504 3923 876 3956 2389 1795 1125 3153 2660 920 1833 2839 1107 2215 3890 1434 3168 696 274 464 225 1405 1027 1715 209 1252 763 2190 1868 2821 3647 3533 2538 2558 3614 486 2474 365 1878 2763 3397 1004 3218 2087 470 3455 2163 1433 481 2452 1732 3583 1673 1922 1725 1999 1780 826 2454 3881 2106 109 3637 1034 1609 2017 3203 567 978 2158 1175 1505 2543 228 1164 3350 1184 922 1838 2409 3609 1556 1831 1793 2307 2025 3081 1919 1490 1680 2599 1826 3343 3977 1819 2653 2695 1873 1369 2945 2331 674 2664 3511 1974 2620 2513 990 2012 1777 341 2267 3184 2101 2733 1960 3284 478 3531 2987 1356 2676 3235 3359 3302 1221 1837 1676 3886 262 2639 1471 2866 3946 880 2147 3908 3746 1739 3205 135 2113 591 3241 2896 3628 1432 2393 3745 3735 51 834 78 737 230 3139 1029 843 1757 2582 259 1644 2913 3114 3048 2999 1028 3578 761 2419 3031 2067 729 986 1562 2335 1979 722 11 3155 2537 3681 2833 3433 2198 3260 2047 159 **** **** 1288 3065 271 2713 14 599 2954 415 1231 2766 1409 2388 569 2870 142 1841 2253 1226 1484 945 2026 694 2056 3882 1559 3201 1321 1577 3371 1573 3540 2366 3123 1655 3493 2070 9 2678 1381 1280 1852 3589 1115 953 2775 1259 1048 2133 405 809 3862 3733 3432 3866 796 1145 3709 1965 2005 1885 2735 3037 1700 2552 3070 639 204 2453 3467 871 823 697 2932 1901 2423 1893 1687 514 3236 2274 3024 2102 3661 1264 397 2756 3436 994 3059 334 2680 2569 304 3399 1760 2960 949 424 2738 143 128 1151 3147 1630 39 1306 2742 2722 2282 3146 969 1016 3602 2392 2127 3288 898 605 2851 1249 59 1662 2467 3567 2349 3329 1414 3736 37 1981 3382 443 2279 111 243 3086 2782 2338 2692 3431 2291 1373 1727 1399 785 151 **** **** 3405 2461 241 2231 3077 426 2641 72 3646 266 1065 1762 273 3667 1592 2808 358 497 115 2583 1557 2869 2271 224 3847 1194 233 916 2662 904 3375 247 1215 1340 3781 2525 734 3352 2491 1706 16 3410 1080 801 191 96 2261 1255 736 1384 3777 3919 1540 48 1661 2636 1935 745 3268 2683 1675 3621 3808 3144 1050 95 499 1787 392 1403 1348 361 2655 1128 3803 2413 3676 1324 3656 205 1565 1355 3530 2580 163 3820 2868 1506 493 2591 2216 2269 1988 2023 689 1866 3903 3415 2677 944 540 3495 2137 3675 1474 3094 1930 2952 2429 2949 2783 1784 1926 3334 2638 49 2277 1402 1089 3730 2531 782 1729 2685 2942 989 1083 212 1891 200 1509 1412 2449 1580 2166 1345 2327输出5为:3988。
蓝桥杯历届试题题目总结
蓝桥杯历届试题题⽬总结后天就是蓝桥杯省赛了,今天总结⼀下这段时间做的蓝桥杯历届试题,还是⼀个⼀个题⽬的来吧1,历届试题矩阵翻硬币 这个题⽬说真的,我不会,在⽹上看了某神⽜的题解答案为 ans=sqrt(n)*sqrt(m),具体怎么证明的我也不知道2,历届试题兰顿蚂蚁 这个题⽬怎么说呢,应该是送分题,直接模拟就可以了,这⾥就不说了。
3,历届试题分糖果 这个题⽬好像之前在哪⾥做过,也是⼀道模拟题,弄两个数组搞⼀下就可以了 下⾯是代码#include<bits/stdc++.h>using namespace std;#define maxn 100+10int a[2][maxn],n;bool ok(int cur){for (int i=2;i<=n;i++) if (a[cur][i]!=a[cur][i-1]) return0;return1;}int main(){while(scanf("%d",&n)!=EOF){int cur=0,ans=0;for (int i=1;i<=n;i++) scanf("%d",&a[cur][i]);while(!ok(cur)){for (int i=1;i<=n;i++) {if (a[cur][i]%2) {a[cur][i]++; ans++;}}for (int i=1;i<n;i++) a[1-cur][i]=a[cur][i+1]/2; a[1-cur][n]=a[cur][1]/2;for (int i=1;i<=n;i++) a[1-cur][i]+=(a[cur][i]/2);cur=1-cur;}printf("%d\n",ans);}return0;}View Code4,历届试题⼩朋友排队 这个题让我想起了去年武⼤校赛的⼀道题,我永远忘不了,求最⼩交换次数就是求逆序对数,⽽这个题要算出每个⼩朋友交换的次数,故我们从前⾯求⼀次,再从后⾯求⼀次就可以了,我这⾥⽤树状数组来求#include<bits/stdc++.h>using namespace std;#define maxn 1000000+10#define LL long longint a[maxn],n,b[maxn],num[maxn],c[maxn];LL sum[maxn];void init(){sum[0]=0;for (LL i=1;i<maxn;i++) sum[i]=sum[i-1]+i;}int lowbit(int x){return x&(-x);}void add(int x){while(x<maxn){a[x]++;x+=lowbit(x);}}int get_sum(int x){int ans=0;while(x>0){ans+=a[x];x-=lowbit(x);}return ans;}int main(){init();while(scanf("%d",&n)!=EOF){memset(a,0,sizeof(a));memset(num,0,sizeof(num));for (int i=1;i<=n;i++) scanf("%d",&b[i]),c[i]=b[i];sort(c+1,c+n+1);int m=unique(c+1,c+n+1)-c;for (int i=1;i<=n;i++) b[i]=lower_bound(c+1,c+m+1,b[i])-c;for (int i=1;i<=n;i++){num[i]+=get_sum(maxn-1)-get_sum(b[i]);add(b[i]);}memset(a,0,sizeof(a));for (int i=n;i>=1;i--){num[i]+=get_sum(b[i]-1);add(b[i]);}LL ans=0;//for (int i=1;i<=n;i++) printf("%d ",num[i]); printf("\n");for (int i=1;i<=n;i++) ans+=sum[num[i]];printf("%I64d\n",ans);}return0;}View Code5,历届试题波动数列 这个题⽬⼀看,就知道是枚举a出现的次数和b出现的次数,⽹上有⼈⽤BFS和DFS来做,想都不想,肯定超时可以设第⼀个数为x,则 S=n*x+sgm i*(a or -b),则知道a和b的数⽬为n*(n-1)/2,则可以枚举a的数⽬A,知道A后,就看组成A有多少种⽅法,⽽我们只能⽤1,2,。
蓝桥杯第一届初赛题目
for(i=3; i>=0; i–)
n_max = n_max * 10 + N[i];
return n_max-n_min;
}
第五题,假设有m+n个人,其中,
m个人手持面额为5角的硬币,
n个人手持面额为1元的硬币,
他们都要乘车买票,
现假设售票员手中无零钞,
票价为5角,
下面这个函数就可以算出这m+n个人所有可能的买票情况,
}
switch(type)
{
case 0:
sprintf(answer, “%s %c (%s %c (%s %c %s))”,
p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);
break;
case 1:
注:最后一题的编程题对参赛者的要求相当高,以下代码在你提交自己的程序设计思路前是不可见的。
求二十四点:
// Calcu24.cpp : Defines the entry point for the console application.
//
#include “stdafx.h”
#include “conio.h”
sprintf(answer, “%s %c ((%s %c %s) %c %s)”,
p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);
break;
case 2:
sprintf(answer, “(%s %c %s) %c (%s %c %s)”,
历届蓝桥杯试题及答案
历届蓝桥杯试题及答案蓝桥杯是中国最有影响力的计算机竞赛之一,每年都会吸引众多计算机科学爱好者的参与。
本文将回顾历届蓝桥杯的试题,并给出相应的答案。
通过了解历届试题,可以帮助读者更好地准备参加蓝桥杯竞赛。
(此处省略介绍部分)第一届蓝桥杯试题及答案:试题一:(试题内容)(解答步骤)试题二:(试题内容)(解答步骤)试题三:(试题内容)(解答步骤)......第二届蓝桥杯试题及答案:试题一:(试题内容)(解答步骤)试题二:(试题内容)(解答步骤)试题三:(试题内容)(解答步骤)......随着届数的增加,蓝桥杯的试题逐渐增加了难度和复杂程度。
参赛者需要有扎实的计算机基础知识和编程技能才能应对这些挑战。
以下是蓝桥杯历届试题的一些特点总结:1. 试题内容涵盖广泛:蓝桥杯试题从计算机基础知识到算法设计,从编程练习到系统设计,几乎涵盖了计算机科学的各个领域。
2. 试题形式多样:蓝桥杯试题不仅有传统的选择题和编程题,还有设计题、开放题等形式。
这样的设计旨在考察参赛者的创新能力和综合运用能力。
3. 解答步骤详细:对于编程题和算法设计题,蓝桥杯试题答案中往往会给出详细的解答步骤,包括思路分析、代码实现等。
这对于参赛者来说是很好的学习资料。
通过研究历届蓝桥杯试题和答案,我们可以总结出以下参加蓝桥杯竞赛的一些建议:1. 扎实的基础知识:参赛者应该有扎实的计算机基础知识,包括数据结构、算法、编程语言等方面。
只有基础知识扎实,才能更好地应对复杂的试题。
2. 练习编程技巧:编程技巧是参赛者必备的能力,需要不断进行练习和实践。
可以通过刷题、参加编程比赛等方式来提高编程技巧。
3. 团队合作能力:蓝桥杯竞赛有团队赛和个人赛两种形式,参赛者可以选择适合自己的方式。
无论是个人赛还是团队赛,团队合作能力都是必不可少的。
在团队中合理分工、有效沟通,可以提高比赛的效果。
4. 多方面准备:蓝桥杯试题范围广泛,参赛者应该在各个方面进行准备,包括理论知识、实践能力、应试技巧等。
蓝桥杯试题及答案
蓝桥杯试题及答案一、选择题1. 在Java中,以下哪个关键字用于定义类?A. classB. interfaceC. enumD. struct答案:A2. 下列哪个不是Python的内置数据类型?A. intB. floatC. stringD. list答案:D二、填空题1. 在C语言中,定义一个整型变量的关键字是________。
答案:int2. 在JavaScript中,用于定义函数的关键字是________。
答案:function三、简答题1. 请简述什么是算法的时间复杂度,并给出一个例子。
答案:算法的时间复杂度是指算法执行时间随输入规模增长的变化趋势。
例如,对于一个简单的线性搜索算法,如果数组中有n个元素,最坏情况下需要比较n次,因此其时间复杂度是O(n)。
2. 请解释什么是栈,并给出一个栈的应用场景。
答案:栈是一种后进先出(LIFO)的数据结构,允许在一端进行数据的添加和删除操作。
一个常见的栈的应用场景是函数调用的实现,在编程中,每当调用一个函数,就会将函数的返回地址和局部变量压入栈中,待函数执行完毕后再从栈中弹出。
四、编程题1. 编写一个函数,实现对一个整数数组进行排序。
答案:```javapublic static void sort(int[] array) {for (int i = 0; i < array.length - 1; i++) {for (int j = 0; j < array.length - i - 1; j++) {if (array[j] > array[j + 1]) {int temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;}}}}```2. 编写一个程序,实现计算一个字符串中所有元音字母的数量。
答案:```pythondef count_vowels(s):vowels = "aeiouAEIOU"return sum(1 for char in s if char in vowels)# 示例print(count_vowels("Hello World")) # 输出应该是 3```五、案例分析题1. 描述一个场景,其中使用二叉搜索树(BST)比使用数组更有效,并解释原因。
蓝桥杯c组试题及答案
蓝桥杯c组试题及答案一、选择题(每题5分,共20分)1. 下列关于C语言的描述,错误的是:A. C语言是一种高级语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言支持函数式编程答案:B2. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 下列关于指针的描述,正确的是:A. 指针可以存储变量的地址B. 指针可以存储变量的值C. 指针不能存储数组的地址D. 指针不能存储函数的地址答案:A4. 在C语言中,用于定义一个函数的关键字是:A. functionB. defC. voidD. int答案:D二、填空题(每题5分,共20分)1. 在C语言中,表示逻辑与的运算符是______。
答案:&&2. 用于声明一个整型变量的关键字是______。
答案:int3. 在C语言中,数组的索引是从______开始的。
答案:04. C语言中,用于结束一个程序的语句是______。
答案:return三、编程题(每题30分,共60分)1. 编写一个C语言程序,实现计算并输出100以内所有偶数的和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 2; i <= 100; i += 2) {sum += i;}printf("Sum of even numbers from 1 to 100 is: %d\n", sum); return 0;}```2. 编写一个C语言程序,实现一个简单的计算器,可以计算两个整数的加、减、乘、除。
```c#include <stdio.h>int main() {int a, b;char op;float result;printf("Enter first number: ");scanf("%d", &a);printf("Enter operator (+, -, *, /): ");scanf(" %c", &op);printf("Enter second number: ");scanf("%d", &b);switch (op) {case '+':result = a + b;break;case '-':result = a - b;break;case '*':result = a * b;break;case '/':if (b != 0)result = (float)a / b;else {printf("Division by zero error!\n"); return 1;}break;default:printf("Invalid operator!\n");return 1;}printf("Result: %.2f\n", result);return 0;}```。
蓝桥杯小学测试题及答案
蓝桥杯小学测试题及答案一、选择题(每题2分,共20分)1. 以下哪个选项是正确的?A. 蓝桥是红色的B. 蓝桥是蓝色的C. 蓝桥是绿色的D. 蓝桥是黄色的答案:B2. 蓝桥杯小学测试题的总分是多少?A. 50分B. 60分C. 70分D. 80分答案:B3. 以下哪个选项是蓝桥杯小学测试题的题型?A. 选择题B. 填空题C. 判断题D. 所有以上答案:D4. 蓝桥杯小学测试题的选择题部分共有多少题?A. 10题B. 15题C. 20题D. 25题答案:A5. 蓝桥杯小学测试题的填空题部分共有多少题?A. 5题B. 10题C. 15题D. 20题答案:A二、填空题(每题2分,共10分)1. 蓝桥杯小学测试题的选择题部分占总分的______%。
答案:33.332. 蓝桥杯小学测试题的填空题部分占总分的______%。
答案:16.673. 如果一个学生在选择题部分得了满分,那么他在填空题部分至少需要得______分才能达到总分的80%。
答案:64. 蓝桥杯小学测试题的总分是______分。
答案:605. 如果一个学生在选择题部分得了10分,在填空题部分得了5分,那么他的总分是______分。
答案:15三、判断题(每题1分,共10分)1. 蓝桥杯小学测试题的总分是100分。
()答案:×2. 选择题和填空题是蓝桥杯小学测试题的两种题型。
()答案:√3. 蓝桥杯小学测试题的选择题部分有20题。
()答案:×4. 蓝桥杯小学测试题的填空题部分有10题。
()答案:×5. 蓝桥杯小学测试题的总分是50分。
()答案:×四、简答题(每题5分,共20分)1. 请简述蓝桥杯小学测试题的目的。
答案:蓝桥杯小学测试题的目的是检验学生的基础知识掌握情况,并通过测试来激发学生的学习兴趣和提高学习效果。
2. 蓝桥杯小学测试题的评分标准是什么?答案:蓝桥杯小学测试题的评分标准是每题的分值乘以学生答对的题目数量,最后将所有题目的分数相加得出总分。
蓝桥杯试题(真题)训练
蓝桥杯试题(真题)训练1. 运算符难度:5颗星c语⾔的compare函数⽐较两字符串⼤⼩1//使⽤c语⾔的compare函数⽐较两字符串⼤⼩返回值为-1,0,12string s1 = "asd",s2 = "asd";3int t = pare(s2);//逐个⽐较字母,若t=-1,说明 s1<s2 ; 若t=1,说明 s1>s2 ; 若t=0,说明 s1=s2 ;4 cout<<t<<endl;思路:使⽤两个函数:toNumber(string s,int c)、toString(long long n,int c)对于toNumber(string s,int c)函数作⽤:将c进制的s2字符串转为10进制的数字对于toString(long long n,int c)函数作⽤:将10进制的n数字转为c进制的字符串对于该题,我们运算中的数字都转为10进制去运算,所以我们的数字平时都以10进制保存(输⼊s2之后,使⽤toNumber(s2,c)转为10进制)当我们需要输出答案时,再将运算结果⽤c进制输出(toString(res,c))代码:注明:易错点都已在源代码中标出。
#include<iostream>#include<cstdio>#include<algorithm>using namespace std;//将c进制的s字符串转换为10进制的数字long long toNumber(string s,int c){ //第四处:返回数据应为long long型int len = s.length();long long n = 0;for(int i = 0;i<len;i++){if(s[i] >= 'A') n = (s[i]-'A'+10) + n*c;else n = (s[i]-'0') + n*c;}return n;}//将10进制的数字n转换为c进制的字符串sstring toString(long long n,int c){string s;if(n == 0) return"0"; //第⼀处:忘记考虑n=0的情况while(n){long long t = n%c; //第⼆处:t的数据范围错误写成intif(t>=10) s.push_back(t-10+'A');else s.push_back(t+'0');n/=c;}reverse(s.begin(),s.end());return s;}int main(){//n表⽰操作数,c表⽰当前进制单位,isclear标记前⾯的数是否被清除//p表⽰操作符序号int n,c=10,isclear = 1,p=0;cin>>n;//s1表⽰操作,s2表⽰数字string s1,s2;long long res,num;while(n--){cin>>s1;if(!pare("NUM")){cin>>s2;if(isclear){//说明前⾯的数已经被清除res = toNumber(s2,c);//说明s2为c进制的数,将s2转为10进制的数字isclear = 0; //第六处:记得将isclear的值设为0}else{ //说明前⾯有数num = toNumber(s2,c);if(p==1) res+=num;else if(p==2) res-=num;else if(p==3) res*=num;else if(p==4) res/=num;else if(p==5) res%=num;p=0; //第7处:记得将p的值设为0}}else if(!pare("ADD")){p=1;}else if(!pare("SUB")){p=2;}else if(!pare("MUL")){p=3;}else if(!pare("DIV")){p=4;}else if(!pare("MOD")){p=5;}else if(!pare("CHANGE")){cin>>c;}else if(!pare("EQUAL")){ //平时计算都以10进制,输出将res化为c进制cout<<toString(res,c)<<endl; //第三处:输出没加换⾏}else if(!pare("CLEAR")){//表⽰将前⾯的数清除isclear = 1; //第五处:总容易误写成将isclear=1写成c=1,导致样例输出结果为40 }}return0;}2. 求“连通块数⽬”题tarjan算法或者并查集需复习并查集解法:#include<iostream>#include<cstdio>#include<algorithm>using namespace std;//并查集算法 find and union函数#define maxn 1000010int pre[maxn];int m,n,k,cnt;void Init(){for(int i = 1;i<=m*n;i++){pre[i]=i;}cnt = m*n; //cnt表⽰刚开始的根节点数⽬}int myFind(int a){if(a == pre[a]) return a;else return pre[a]=myFind(pre[a]);}void myunion(int a,int b){int aroot = myFind(a);int broot = myFind(b);if(aroot != broot){pre[broot] = aroot;//易错点:需注意,不要写成pre[b]=a;cnt--;}}int main(){cin>>m>>n;Init();cin>>k;while(k--){int a,b;cin>>a>>b;myunion(a,b);}cout<<cnt<<endl;}3. 回溯搜索每次可以进⾏两种操作:新建考场或者某⼀个之前的考场需复习1 #include<iostream>2 #include<cstdio>3 #include<algorithm>4using namespace std;56#define maxn 1057int n,m,ans=99999;8int f[maxn][maxn]={0};9int a[maxn]={0};//a[i]存第i个⼈所在的考场1011bool Judge(int x,int room){ //判断第x个⼈是否能使⽤第room个考场12for(int i=1;i<=n;i++){13if((f[x][i]==1)&&(a[i]==room)){ //说明该考场存在与x有关系的⼈14return false;15 }16 }17return true;18}1920void solve(int x,int room_num){21if(room_num>=ans){ //剪枝注意:我这⾥如果少了=,评测机会判断超时...22return;23 }24if(x>n){ //说明安排考场任务结束25 ans=min(ans,room_num);26return;27 }28//判断是否可以使⽤之前的某个考场29for(int i=1;i<=room_num;i++){30if(Judge(x,i)==true){31 a[x]=i;32 solve(x+1,room_num);33 a[x]=0;34 }35 }36//前⾯那些考场⽆法使⽤,需新建考场37 a[x]=room_num+1;38 solve(x+1,room_num+1);39 a[x]=0;40}4142int main(){43int x,y;44 cin>>n>>m;45while(m--){46 cin>>x>>y;47 f[x][y]=f[y][x]=1;48 }4950 solve(1,0);51 cout<<ans<<endl;52 }4.⼩数第n位思维题:模拟除法需复习注意:我们需判断是否需要对代码进⾏优化,不优化是否会超数据范围,超时之类的...很明显,该题需进⾏优化,对数据逼近防⽌超时---------易错点:注意变量的数据类型,int与long long的区别#include <iostream>using namespace std;int main(){long long i,a,b,n;cin>>a>>b>>n;a=a%b;//若n过⼤,加⼀个while快速逼近⼩数点后第n位的位置while(n>10){a*=1e10;n-=10;a%=b;}for(i=1;i<=n+2;i++) //注意:i的数据类型{a*=10;if(i>=n){cout<<a/b;}a%=b;}return0;}⼆分查找⽅法:这个要记住背诵binary_search(a,a+N,t)==true//表明在数组a中存在t这个数字下标=lower_bound(a,a+N,t)-a;//得到>=t这个数的下标5.对局匹配需复习算法思想:动态规划求:最多可以存在多少名(任意两名⽤户积分差不等于K)我们对⽤户的积分进⾏整理(对k取余,余数相同的积分在同⼀分组):0,0+k,0+2k...1,1+k,1+2k...2,2+k,2+2k...只有在同⼀个分组的⽤户才可能积分差等于K所以我们先求出每⼀个分组的最多可存在⽤户⼈数最后总和分组得到答案对每⼀个分组进⾏状态转移⽅程:f[j]=max(f[j-1],f[j-2]+num[j]);f[j]:表⽰ [该分组] 到第i个元素的最⼤⽤户⼈数对于积分i我们选或者不选完全取决于它的⽤户个数,⽽如果选积分i,那么积分i-k与积分i+k是不可选的,⽽如果不选积分i,那么积分i-k与积分i+k是可选的,所以:num[i]=max(num[i-k],num[i]+num[i+k])1 #include<iostream>2 #include<algorithm>3using namespace std;4#define maxn 1000015int n,k,ans;6//hsh[i]表⽰积分为i的⽤户⼈数7//下⾯两个数组每在⼀个分组中就重新赋值; 同⼀分组的余数t相同:t,k+t,2*k+t,3*k+t...8//num[i]存该分组的第i个元素的⽤户⼈数9//f[i]存该分组到第i个元素的最⼤⽤户⼈数 , 最⼤⽤户⼈数的关系:a,a+k,a+2*k , max(num[a]+num[a+2*k],num[a+k])10int hsh[maxn]={0},num[maxn]={0},f[maxn]={0};11int main(){12 cin>>n>>k;13 ans=0;14int t,i,j;15for(i=0;i<n;i++){16 cin>>t;17 hsh[t]++;18 }19if(k==0){//重复积分只取⼀个20for(i=1;i<maxn;i++){21if(hsh[i]!=0){22 ans++;23 }24 }25 }26else{27for(i=0;i<k;i++){//k个分组28int m=1;29for(j=i;j<maxn;j+=k){ //j为该分组的积分值,范围在(i,maxn)30 num[m++]=hsh[j];//hsh[j]为积分值为j时的⽤户⼈数31 }32 f[1]=num[1];33for(j=2;j<=m;j++){ //注意:这⾥的j⼀定要从2开始,否则下⾯的j-2会下标越界34 f[j]=max(f[j-1],f[j-2]+num[j]);35 }36 ans+=f[m];37 }38 }39 cout<<ans<<endl;40return0;41 }2.递推写法#include<iostream>#include<algorithm>using namespace std;#define maxn 100001int has[maxn]={0},d[maxn]={0};int main(){int n,k;cin>>n>>k;for(int i=0;i<n;i++){int x;cin>>x;has[x]++;}int ans=0;if(k==0){for(int i = 1; i < maxn; i++)ans += (bool)has[i];}else{for(int i=0;i<k;i++){//k个分组int sum=0;d[i]=has[i],d[i+k]=has[i+k];for(int j=i+2*k;j<maxn;j+=k){d[j]=max(d[j-k],d[j-2*k]+has[j]);//递推关系式sum=max(d[j],sum);}ans+=sum;}}cout<<ans<<endl;return0;}View Code6.发现环并查集+dfs思路:并查集找到环上的某点之后,进⾏递归求该环上的所有点代码:#include <cstdio>#include<iostream>#include <algorithm>#include<vector>using namespace std;const int maxn = 100001;int n;int f[maxn],flag,vis[maxn]={0};vector<int> g[maxn],ans;int Find(int x){return f[x]==x?x:f[x]=Find(f[x]);}bool dfs(int x){if(vis[x]){if(x==flag){ //说明递归结束return true;}else{ //说明回溯到前⾯经过的某节点return false;}}vis[x]=1;for(int i=0;i<g[x].size();i++){if(dfs(g[x][i])){ans.push_back(g[x][i]);return true;}}return false;}int main(){cin>>n;int x,y;//并查集⼀定要记得初始化for(int i=0;i<n;i++) f[i]=i;for(int i=0;i<n;i++){cin>>x>>y;g[x].push_back(y);g[y].push_back(x);int rootx=Find(x), rooty=Find(y);//并查集找到环的某点if(rootx!=rooty){f[rootx]=rooty;}else{//两个祖宗节点相同,说明是环节点flag=x;dfs(x);//找到环上的点后进⾏递归}}sort(ans.begin(),ans.end());for(int i=0;i<ans.size();i++)cout<<ans[i]<<"";return0;}7. 简单题#include<cstdio>#include<iostream>#include<cstring>using namespace std;#define maxn 1001int main(){char a[maxn],b[maxn];scanf("%s%s",&a,&b);int len=strlen(a),cnt=0;for(int i=0;i<len;i++){if(a[i]==b[i]) continue;else{ //遍历过去,发现两个字符不相等的话,操作加⼀,把后⾯字符b[i+1]反转即可 cnt++;if(b[i+1]=='o') b[i+1]='*';else b[i+1]='o';}}cout<<cnt<<endl;return0;}7.错误票据简单题读题+简单哈希#include<iostream>using namespace std;#define maxn 100001int has[maxn]={0};int main(){int n,x;cin>>n;int A=maxn,B=0;for(int i=0;i<n;i++){while(cin>>x){has[x]++;if(x<A) A=x;if(x>B) B=x;char ch = getchar();if(ch=='\n') break;}}int d,c;//从题意可知,只有⼀个断数和重复数,总的数⽬为B-A+1个数字for(int i=A;i<=B;i++){if(has[i]==2) c=i;//hash值为2.说明这个数有重复if(has[i]==0) d=i;//hash值为0.说明这个数没有输⼊过}cout<<d<<""<<c<<endl;return0;}-------------------continue--------------------。
蓝桥杯题库的历届真题
1.历届试题矩阵翻硬币时间限制:1.0s 内存限制:256.0MB问题描述小明先把硬币摆成了一个n 行m 列的矩阵。
随后,小明对每一个硬币分别进行一次Q 操作。
对第x行第y列的硬币进行Q 操作的定义:将所有第i*x 行,第j*y 列的硬币进行翻转。
其中i和j为任意使操作可行的正整数,行号和列号都是从1开始。
当小明对所有硬币都进行了一次Q 操作后,他发现了一个奇迹——所有硬币均为正面朝上。
小明想知道最开始有多少枚硬币是反面朝上的。
于是,他向他的好朋友小M寻求帮助。
聪明的小M告诉小明,只需要对所有硬币再进行一次Q操作,即可恢复到最开始的状态。
然而小明很懒,不愿意照做。
于是小明希望你给出他更好的方法。
帮他计算出答案。
输入格式输入数据包含一行,两个正整数n m,含义见题目描述。
输出格式输出一个正整数,表示最开始有多少枚硬币是反面朝上的。
样例输入2 3样例输出1数据规模和约定对于10%的数据,n、m <= 10^3;对于20%的数据,n、m <= 10^7;对于40%的数据,n、m <= 10^15;对于10%的数据,n、m <= 10^1000(10的1000次方)。
2.历届试题兰顿蚂蚁时间限制:1.0s 内存限制:256.0MB问题描述兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种。
平面上的正方形格子被填上黑色或白色。
在其中一格正方形内有一只“蚂蚁”。
蚂蚁的头部朝向为:上下左右其中一方。
蚂蚁的移动规则十分简单:若蚂蚁在黑格,右转90度,将该格改为白格,并向前移一格;若蚂蚁在白格,左转90度,将该格改为黑格,并向前移一格。
规则虽然简单,蚂蚁的行为却十分复杂。
刚刚开始时留下的路线都会有接近对称,像是会重复,但不论起始状态如何,蚂蚁经过漫长的混乱活动后,会开辟出一条规则的“高速公路”。
蚂蚁的路线是很难事先预测的。
你的任务是根据初始状态,用计算机模拟兰顿蚂蚁在第n步行走后所处的位置。
蓝桥杯所有题目
1.A+B问题问题描述输入A、B,输出A+B。
说明:在“问题描述”这部分,会给出试题的意思,以及所要求的目标。
输入格式输入的第一行包括两个整数,由空格分隔,分别表示A、B。
输出格式输出一行,包括一个整数,表示A+B的值。
样例输入12 45样例输出57数据规模与约定-10000 <= A, B <= 10000。
2.序列求和问题描述求1+2+3+...+n的值。
输入格式输入包括一个整数n。
输出格式输出一行,包括一个整数,表示1+2+3+...+n的值。
样例输入4样例输出10样例输入100样例输出5050数据规模与约定1 <= n <= 1,000,000,0003.圆的面积问题描述给定圆的半径r,求圆的面积。
输入格式输入包含一个整数r,表示圆的半径。
输出格式输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。
样例输入4样例输出50.2654825数据规模与约定1 <= r <= 10000。
提示本题对精度要求较高,请注意π的值应该取较精确的值。
你可以使用常量来表示π,比如PI=3.14159265358979323,也可以使用数学公式来求π,比如PI=atan(1.0)*4。
4.Fibonacci数列问题描述Fibonacci数列的递推公式为:F n=F n-1+F n-2,其中F1=F2=1。
当n比较大时,F n也非常大,现在我们想知道,F n除以10007的余数是多少。
输入格式输入包含一个整数n。
输出格式输出一行,包含一个整数,表示F n除以10007的余数。
说明:在本题中,答案是要求F n除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出F n的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。
样例输入10样例输出55样例输入22样例输出7704数据规模与约定1 <= n <= 1,000,000。
第1~3届蓝桥杯决赛试题及答案
2011年暑假蓝桥杯决赛题附答案1.四方定理数论中有著名的四方定理:所有自然数至多只要用四个数的平方和就可以表示。
我们可以通过计算机验证其在有限范围的正确性。
对于大数,简单的循环嵌套是不适宜的。
下面的代码给出了一种分解方案。
请仔细阅读,填写空缺的代码(下划线部分)。
注意:请把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
直接写在题面中不能得分。
int f(int n, int a[], int idx){if(______________) return 1; // 填空1if(idx==4) return 0;for(int i=(int)sqrt(n); i>=1; i--){a[idx] = i;if(_______________________)return 1; // 填空2}return 0;}int main(int argc, char* argv[]){for(;;){int number;printf("输入整数(1~10亿):");scanf("%d",&number);int a[] = {0,0,0,0};int r = f(number, a, 0);printf("%d: %d %d %d %d\n", r, a[0], a[1], a[2], a[3]);}return 0;}2.加密在对文本进行简单加密的时候,可以选择用一个n位的二进制数,对原文进行异或运算。
解密的方法就是再执行一次同样的操作。
加密过程中n位二进制数会循环使用。
并且其长度也可能不是8的整数倍。
下面的代码演示了如何实现该功能。
请仔细阅读,填写空缺的代码(下划线部分)。
注意:请把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
直接写在题面中不能得分。
蓝桥杯历届试题幸运数
蓝桥杯历届试题幸运数题⽬如下:问题描述幸运数是波兰数学家乌拉姆命名的。
它采⽤与⽣成素数类似的“筛法”⽣成。
⾸先从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)。
样例输⼊11 20样例输出15样例输⼊230 69样例输出28-----分割线----- 题⽬已经提⽰⽤堆了,所以⽤上了以前上课写的堆排序:#include <stdio.h>#define max 1e9int a[1000000];void sift_down(int H[],int n,int i){int done =0;if((2*i)<=n){while(!done&&((i=2*i)<=n)){if((i+1<=n)&&(H[i+1]>H[i]))i=i+1;if(H[i/2]<H[i]){H[i]=H[i]^H[i/2];H[i/2]=H[i]^H[i/2];H[i]=H[i]^H[i/2];}else done=1;}}}void make_heap(int A[],int n){int i;for(i=(n-1)/2;i>=0;i--)sift_down(A,n,i);}void heap_sort(int A[],int n){int i;make_heap(A,n-1);for(i=n-1;i>0;i--){A[i]=A[i]^A[0];A[0]=A[i]^A[0];A[i]=A[i]^A[0];sift_down(A,i-1,0);}}void delete(int A[],int n,int x) {int i;for(i=1;i*x-1<n;i++)A[i*x-1]=max;}int main(){int i,j,n,m,x,count=0;scanf("%d%d",&m,&n); x=n-n/2;for(i=0;i<n;i++)a[i]=i*2+1;i=1;while(a[i]<=x){delete(a,x,a[i]);heap_sort(a,x);x=x-x/a[i];i++;}i=0;while(a[i]<=m)i++;for(;a[i]<n;i++)count++;printf("%d",count); return0;}。
2010-2013蓝桥杯预赛真题及详细答案
第三届蓝桥桥杯预赛真题及详细答案一、微生物增殖假设有两种微生物X和Y, X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。
一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。
现在已知有新出生的X=10, Y=89,求60分钟后Y的数目。
如果X=10,Y=90呢?本题的要求就是写出这两种初始条件下,60分钟后Y的数目。
把答案写在“解答.txt”中,不要写在这里!答案:0 和94371840(此题比较简单就不写程序了,以下均有程序)二、古堡算式福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。
请你利用计算机的优势,找到破解的答案。
把ABCDE 所代表的数字写出来。
答案写在“解答.txt”中,不要写在这里!参考答案:21978参考程序:#include<stdio.h>void main(){int k,t1 ,t;for(k=10234;k<50000;k++){bool flag[10]={0};t=k;t1=0;while(t){if(flag[t%10])break ;flag[t%10] = true ;t1 = t1*10 + t%10 ;t /= 10 ;}if( t==0 && t1%k==0){printf("%d * %d = %d\n",k,t1/k,t1);}}}三、比酒量有一群海盗(不多于20人),在船上比拼酒量。
过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。
再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。
当第4瓶酒平分喝下后,大家都倒下了。
蓝桥杯基础试题及答案
蓝桥杯基础试题及答案1. 题目:给定一个整数数组,请找出数组中第二大的数。
答案:首先对数组进行排序,然后取出倒数第二个元素即可。
2. 题目:编写一个函数,实现字符串的反转。
答案:可以使用栈的数据结构,将字符串中的字符依次压入栈中,再依次弹出即可得到反转后的字符串。
3. 题目:判断一个整数是否是回文数。
答案:将整数转换为字符串,然后比较字符串与其反转后的字符串是否相等。
4. 题目:给定一个链表,删除链表的倒数第n个节点。
答案:使用双指针法,一个指针先走n步,然后两个指针一起走,直到第一个指针到达链表末尾,此时第二个指针指向的就是需要删除的节点的前一个节点。
5. 题目:实现一个函数,计算两个整数相加的和。
答案:使用位运算,模拟加法运算的过程,考虑进位的情况。
6. 题目:给定一个二维矩阵,找出矩阵中从左上角到右下角的最短路径,路径上的数字之和最小。
答案:使用动态规划,从左上角开始,每次向下或向右移动,选择路径和最小的方向。
7. 题目:实现一个函数,判断一个整数是否是素数。
答案:从2到该整数的平方根进行遍历,如果该整数能被遍历中的任何一个数整除,则不是素数。
8. 题目:给定一个字符串,找出其中不重复的最长子串的长度。
答案:使用滑动窗口的方法,维护一个窗口,窗口内的字符串都是不重复的,每次向右扩展窗口,并更新最长不重复子串的长度。
9. 题目:给定一个排序数组,找出数组中没有出现的最小正整数。
答案:从1开始遍历,如果当前数字不在数组中,则返回当前数字;如果遍历完数组还没有找到,则返回数组最后一个数字加1。
10. 题目:实现一个函数,计算一个整数的阶乘。
答案:使用递归或循环,从1乘到该整数,注意处理大数的情况。
蓝桥杯初赛b组试题
蓝桥杯初赛b组试题————————————————————————————————作者:————————————————————————————————日期:第一题结果填空3‘奖券数目有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。
虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。
某抽奖活动的奖券号码是5位数(10-99),要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。
请提交该数字(一个整数),不要写任何多余的内容或说明性文字。
-题解:考试的时候写了个回溯法,然后屁颠屁颠的开始做下面一题了。
结果错了→_→1 #include <iostream>2using namespace std;3bool fuck(int t)4 {5while(t)6 {7if(t%10==4)return false;8 t/=10;9 }10return true;11 }12int main()13 {14int ans = 0, t = 10;15while(t<100)16if(fuck(t++))ans++;17 cout<<ans<<endl;18return0;19 }第一题正确答案:52488(我居然上来第一题就错了居然写了13440→_→)//cout<<8*9*9*9*9; →_→第二题结果填空5‘星系炸弹在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,2014年11月9日放置,定时为1天,请你计算它爆炸的准确日期。
请填写该日期,格式为yyyy-mm-dd 即4位年份2位月份2位日期。
比如:2015-02-19 请严格按照格式书写。
蓝桥杯等级考试题库
蓝桥杯等级考试题库题目1:请解释什么是二分查找算法,并简要说明其应用场景。
答案1:二分查找算法是一种在有序数组中查找指定元素的算法,它通过不断将数组分成两半来缩小查找范围,直到找到目标元素或确定元素不存在。
二分查找算法的时间复杂度为O(logn),适用于数据量较大且已排序的场景,如数据库索引、二分搜索树等。
题目2:什么是图的遍历?请举例说明深度优先搜索(DFS)和广度优先搜索(BFS)的区别。
答案2:图的遍历是指沿着图中的边访问所有节点的过程。
深度优先搜索(DFS)和广度优先搜索(BFS)是两种常见的图遍历算法。
DFS采用栈的数据结构,沿着一条路径尽可能深地搜索,直到达到目标节点或无法继续搜索为止;而BFS采用队列的数据结构,按照层次顺序逐层遍历节点。
两种算法的时间复杂度均为O(n+m),其中n为节点数,m为边数。
题目3:请简要说明什么是动态规划,并举例说明其应用场景。
答案3:动态规划是一种通过把原问题分解为相对简单的子问题的方式来求解复杂问题的方法。
动态规划通常用于求解最优化问题,如背包问题、最长公共子序列等。
动态规划的基本思想是将问题的解保存下来,避免重复计算,从而提高算法效率。
题目4:请解释什么是哈希表,并简要说明其特点和应用场景。
答案4:哈希表是一种根据键(key)直接访问值(value)的数据结构,它通过哈希函数将键映射到一个位置,然后在该位置存储对应的值。
哈希表的特点包括插入、删除和查找操作的时间复杂度接近O(1),但需要解决哈希冲突问题。
哈希表的应用场景包括缓存、字典、关联数组等。
题目5:请简要说明什么是堆(Heap),并举例说明其应用场景。
答案5:堆是一种特殊的树形数据结构,它满足堆属性:父节点的值大于或等于其子节点的值(最大堆),或者父节点的值小于或等于其子节点的值(最小堆)。
堆通常用于实现优先队列,例如任务调度、Dijkstra算法等。
堆的时间复杂度为O(logn),其中n为节点数。
第一届蓝桥杯大赛试题
第一届蓝桥杯大赛试题第一题,以下函数的功能是将任意整数进行因式分解,请完成该程序的空缺使函数能够正常运算void f(int n){for(int i=2; i<="" p="">{//———–(1)————{printf(“%d “, i);n = n / i;}}if(n>1) printf(“%d\n”, n);}第二题,以下函数的功能是将给定字符串进行倒序输出,请完成该函数空缺部分。
char* p = “abcdef”;char* q = (char*)malloc(strlen(p)+1);for(int i=0, int len=strlen(p); i<="" p="">q__1__ = p[i+1];q[len-1] = p[0];—–(2)—-;printf(“%s\n”, q);第三题,(这题的题目到底是要干啥,本人到现在沿未明了,数学学统计好,但可以确定原题给出的代码就是如此)int f(int m, int n){int a = 1;int m1 = m;//—–(3)—-a *= m1–-;int b = 1;while(n>1)b *= n–-;return a / b;}第四题,任意给出一个四位数,把它重新组成一个四位的最大数和一个最小数,算出两者间的差。
例如:3721这个数,可以重组成:7321和1237,相数之差为7321-1237请完善下面这个函数,以实现此功能int f(int n){int N[4];for(int i=0; i<4; i++){N[3-i] = n % 10;—-(4)—-}for(i=0; i<3; i++)for(int j=0; j<3-i; j++)if(N[j]>N[j+1]){int t = N[j+1]; N[j+1] = N[j]; N[j] = t;}int n_min=0;for(i=0; i<4; i++)n_min = n_min * 10 + N[i] ;int n_max = 0;for(i=3; i>=0; i–)n_max = n_max * 10 + N[i];return n_max-n_min;}第五题,假设有m+n个人,其中,m个人手持面额为5角的硬币,n个人手持面额为1元的硬币,他们都要乘车买票,现假设售票员手中无零钞,票价为5角,下面这个函数就可以算出这m+n个人所有可能的买票情况,请完善此函数。
蓝桥杯试题及答案
蓝桥杯试题及答案蓝桥杯是面向全国高校计算机专业学生的程序设计竞赛,由工业和信息化部人才交流中心主办,旨在提高学生的编程能力、算法设计能力以及团队合作能力。
以下是一份蓝桥杯试题及答案的示例,供参考。
### 蓝桥杯程序设计竞赛试题及答案#### 题目一:求最大公约数题目描述:给定两个正整数 a 和 b,请编写一个程序计算它们的最大公约数(GCD)。
输入格式:输入包含两个整数 a 和 b,用空格分隔。
输出格式:输出 a 和 b 的最大公约数。
样例输入:```24 36```样例输出:``````答案:```c#include <stdio.h>int gcd(int a, int b) {while (b != 0) {int temp = b;b = a % b;a = temp;}return a;}int main() {int a, b;scanf("%d %d", &a, &b);printf("%d\n", gcd(a, b));return 0;}```#### 题目二:字符串反转题目描述:编写一个程序,实现对输入的字符串进行反转。
输入格式:输入一个字符串。
输出格式:输出反转后的字符串。
样例输入:```Hello World```样例输出:`````ldrow olleH```答案:```c#include <stdio.h>#include <string.h>int main() {char str[1000];scanf("%s", str);int len = strlen(str);for (int i = len - 1; i >= 0; i--) { printf("%c", str[i]);}return 0;}```#### 题目三:二分查找题目描述:在一个已排序的数组中,使用二分查找算法找出一个特定元素的位置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一题,以下函数的功能是将任意整数进行因式分解,请完成该程序的空缺使函数能够正常运算void f(int n){for(int i=2; i<n/2; i++){//———–(1)————{printf(“%d “, i);n = n / i;}}if(n>1) printf(“%d\n”, n);}第二题,以下函数的功能是将给定字符串进行倒序输出,请完成该函数空缺部分。
char* p = “abcdef”;char* q = (char*)malloc(strlen(p)+1);for(int i=0, int len=strlen(p); i<len-1; i++)q__1__ = p[i+1];q[len-1] = p[0];—–(2)—-;printf(“%s\n”, q);第三题,(这题的题目到底是要干啥,本人到现在沿未明了,数学学统计好,但可以确定原题给出的代码就是如此)int f(int m, int n){int a = 1;int m1 = m;//—–(3)—-a *= m1–;int b = 1;while(n>1)b *= n–;return a / b;}第四题,任意给出一个四位数,把它重新组成一个四位的最大数和一个最小数,算出两者间的差。
例如:3721这个数,可以重组成:7321和1237,相数之差为7321-1237请完善下面这个函数,以实现此功能int f(int n){int N[4];for(int i=0; i<4; i++){N[3-i] = n % 10;—-(4)—-}for(i=0; i<3; i++)for(int j=0; j<3-i; j++)if(N[j]>N[j+1]){int t = N[j+1]; N[j+1] = N[j]; N[j] = t;}int n_min=0;for(i=0; i<4; i++)n_min = n_min * 10 + N[i] ;int n_max = 0;for(i=3; i>=0; i–)n_max = n_max * 10 + N[i];return n_max-n_min;}第五题,假设有m+n个人,其中,m个人手持面额为5角的硬币,n个人手持面额为1元的硬币,他们都要乘车买票,现假设售票员手中无零钞,票价为5角,下面这个函数就可以算出这m+n个人所有可能的买票情况,请完善此函数。
//m: 持有5角币的人数//n: 持有1元币的人数//返回:所有顺利完成购票过程的购票次序的种类数int f(int m, int n){if(m < n) return 0;if(n==0) return 1;return ___________(5)____________;}最后一题:编程题:注:最后一题的编程题对参赛者的要求相当高,以下代码在你提交自己的程序设计思路前是不可见的。
求二十四点:// Calcu24.cpp : Defines the entry point for the console application. //#include “stdafx.h”#include “conio.h”#include “stdlib.h”#include “time.h”#include “math.h”#include “string.h”/*从一副扑克牌中,任取4张。
2-10 按其点数计算(为了表示方便10用T表示),J,Q,K,A 统一按 1 计算要求通过加减乘除四则运算得到数字 24。
本程序可以随机抽取纸牌,并用试探法求解。
*/void GivePuzzle(char* buf){char card[] ={‘A’,’2′,’3′,’4′,’5′,’6′,’7′,’8′,’9′,’T',’J',’Q' ,’K'};for(int i=0; i<4; i++){buf = card[rand() % 13];}}void shuffle(char * buf){for(int i=0; i<5; i++){int k = rand() % 4;char t = buf[k];buf[k] = buf[0];buf[0] = t;}}int GetCardValue(int c){if(c==’T') return 10;if(c>=’0′ && c<=’9′) return c –’0′;return 1;}char GetOper(int n){switch(n){case 0:return ‘+’;case 1:retur n ‘-’;case 2:return ‘*’;case 3:return ‘/’;}return ‘ ‘;}double MyCalcu(double op1, double op2, int oper){switch(oper){case 0:return op1 + op2;case 1:return op1 – op2;case 2:return op1 * op2;case 3:if(fabs(op2)>0.0001)return op1 / op2;elsereturn 100000;}return 0;}void MakeAnswer(char* answer, int type, char* question, int* oper){char p[4][3];for(int i=0; i<4; i++){if( question == ‘T’ )strcpy(p, “10″);elsesprintf(p, “%c”, question);}switch(type){case 0:sprintf(answer, “%s %c (%s %c (%s %c %s))”,p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);break;case 1:sprintf(answer, “%s %c ((%s %c %s) %c %s)”,p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);break;case 2:sprintf(answer, “(%s %c %s) %c (%s %c %s)”,p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);break;case 3:sprintf(answer, “((%s%c %s) %c %s) %c %s”,p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);break;case 4:sprintf(answer, “(%s %c (%s %c %s)) %c %s”,p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);break;}}bool TestResolve(char* question, int* oper, char* answer){// 等待考生完成}return true;//return false;}/*采用随机试探法:就是通过随机数字产生加减乘除的组合,通过大量的测试来命中的解法提示:1. 需要考虑用括号控制计算次序的问题比如:( 10 – 4 ) * ( 3 + A ), 实际上计算次序的数目是有限的:A*(B*(c*D))A*((B*C)*D)(A*B)*(C*D)((A*B)*C)*D(A*(B*C))*D2. 需要考虑计算结果为分数的情况:( 3 + (3 / 7) ) * 73. 题目中牌的位置可以任意交换*/bool TryResolve(char* question, char* answer){int oper[3]; // 存储运算符,0:加法 1:减法 2:乘法 3:除法for(int i=0; i<1000 * 1000; i++){// 打乱纸牌顺序shuffle(question);// 随机产生运算符for(int j=0; j<3; j++)oper[j] = rand() % 4;if( TestResolve(question, oper, answer) ) return true; }return false;}int main(int argc, char* argv[]){// 初始化随机种子srand( (unsigned)time( NULL ) );char buf1[4]; // 题目char buf2[30]; // 解答printf(“***************************\n”);printf(“计算24\n”);printf(“A J Q K 均按1计算,其它按牌点计算\n”);printf(“目标是:通过四则运算组合出结果:24\n”);printf(“***************************\n\n”);for(;;){GivePuzzle(buf1); // 出题printf(“题目:”);for(int j=0; j<4; j++){if( buf1[j] == ‘T’ )//、、、、初始化buf1[];printf(“10 “);elseprintf(“%c “, buf1[j]);}printf(“\n按任意键参考答案…\n”);getch();if( TryResolve(buf1, buf2) ) // 解题{// //printf(“a\n”);//for(int i=0;i<17;i++)// printf(“%c”,buf2);printf(“参考:%s\n”, buf2);}elseprintf(“可能是无解…\n”);printf(“按任意键出下一题目,x 键退出…\n”);if( getch() == ‘x’ ) break;}return 0;}。