• 倒计时37天


    23春季选拔开学测补题:

    1.题目大致就是给t个n,求n!然后对123456789取模,主要是n的范围比较大,到1e11,当时用数组求得来着,数组开到1e5,之后就不行了,12/25还是12/20,,反正肯定后面段错误,其实有一个点:

    1. #include
    2. using namespace std;
    3. #define int long long
    4. const int N = 2e5 + 6;
    5. const int inf = 0x3f3f3f3f;
    6. const int mod = 123456789;
    7. int counting(int x) {
    8. int result = 1;
    9. for (int i = 1; i <= x; i++) {
    10. result = result * i % mod;
    11. }
    12. return result;
    13. }
    14. void solve() {
    15. for (int i = 0; i <= 4000; i++) {
    16. //cout << counting(i) << endl;
    17. if (counting(i) == 0) {
    18. cout << i;
    19. break;
    20. }
    21. }
    22. }
    23. signed main() {
    24. ios_base::sync_with_stdio(false);
    25. cin.tie(nullptr), cout.tie(nullptr);
    26. int t = 1;
    27. //cin>>t;
    28. while (t--) {
    29. solve();
    30. }
    31. return 0;
    32. }

    所以到3803之后就都是0了,,,

    2.L1-094 剪切粘贴 - 团体程序设计天梯赛-练习集 (pintia.cn)

    1. //主要还是理解题意,,,
    2. #include
    3. using namespace std;
    4. #define int long long
    5. const int N = 2e5 + 6;
    6. const int inf = 0x3f3f3f3f;
    7. const int mod = 123456789;
    8. void solve()
    9. {
    10. int n;
    11. string s;
    12. cin>>s>>n;
    13. while(n--)
    14. {
    15. int st,en;
    16. string s1,s2;
    17. cin>>st>>en>>s1>>s2;
    18. string str=s.substr(st-1,en-st+1);//是剪切,,T T
    19. s.erase(st-1,en-st+1);
    20. string ss=s1+s2;
    21. int pos=s.find(ss);
    22. if(pos!=-1)s.insert(pos+s1.size(),str);
    23. else s+=str;
    24. }
    25. cout<
    26. }
    27. signed main()
    28. {
    29. ios_base::sync_with_stdio(false);
    30. cin.tie(nullptr), cout.tie(nullptr);
    31. int t = 1;
    32. //cin>>t;
    33. while (t--) {
    34. solve();
    35. }
    36. return 0;
    37. }

    L2-048 寻宝图 - 团体程序设计天梯赛-练习集 (pintia.cn)

    主要就是n,m都到1e5了来着,头来想用二维数组,然后【二维数组最大到1e4】,然后就想用string来着,但不知道哪里错了,,陷入沉思,当时怎么写的来着(・∀・(・∀・(・∀・*)...

    想起来了,,,按题意主要是求连通的岛屿个数,但当时的理解就是一个岛屿四周都必须是水才是岛屿,,题目挺简单,主要是理解题意T T,笨蛋,,,题目都看不懂啊啊啊啊啊、、

    1. //用string直接写也可以,这个是dfs的,,老子就不信了,,,每天默念三遍,,不要浮躁,不要浮躁,不要浮躁,,
    2. #include
    3. using namespace std;
    4. #define int long long
    5. const int N = 2e5 + 6;
    6. const int inf = 0x3f3f3f3f;
    7. const int mod = 123456789;
    8. vector<int>ve1[N],ve2[N];
    9. int n,m,sum1=0,sum2=0;
    10. int flag=0;
    11. int dir[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
    12. void dfs(int x,int y)
    13. {
    14. ve2[x][y]=1;
    15. if(ve1[x][y]>1)flag=1;
    16. for(int i=0;i<4;i++)
    17. {
    18. int xx=x+dir[i][0],yy=y+dir[i][1];
    19. if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&ve1[xx][yy]&&!ve2[xx][yy])
    20. {
    21. if(ve2[xx][yy]>1)flag=1;
    22. dfs(xx,yy);
    23. }
    24. }
    25. }
    26. void solve()
    27. {
    28. cin>>n>>m;
    29. for(int i=1;i<=n;i++)
    30. {
    31. ve1[i].push_back(0);
    32. ve2[i].push_back(0);
    33. for(int j=1;j<=m;j++)
    34. {
    35. char a;//不能是int型,要一个一个输入
    36. cin>>a;
    37. ve1[i].push_back(a-'0');
    38. ve2[i].push_back(0);
    39. }
    40. }
    41. for(int i=1;i<=n;i++)
    42. {
    43. for(int j=1;j<=m;j++)
    44. {
    45. if(ve1[i][j]&&!ve2[i][j])
    46. {
    47. flag=0;
    48. sum1++;
    49. dfs(i,j);
    50. if(flag)sum2++;
    51. }
    52. }
    53. }
    54. cout<' '<
    55. }
    56. signed main()
    57. {
    58. ios_base::sync_with_stdio(false);
    59. cin.tie(nullptr), cout.tie(nullptr);
    60. int t = 1;
    61. //cin>>t;
    62. while (t--) {
    63. solve();
    64. }
    65. return 0;
    66. }

    待续,,题目名忘了T T...

  • 相关阅读:
    【面试复习】Python基础复习
    Apache HTTPD 多后缀解析漏洞复现
    用户登录错误次数太多锁定账号
    【SLAM】4李群&李代数
    Windows AD域报表
    算法:轮转数组---循环取模运算
    MATLAB中的矩阵的重构和重新排列
    数据库约束
    Linux 内核启动分析
    记录下跑VUE+webpack-dev-server安装使用的问题
  • 原文地址:https://blog.csdn.net/fkuelntxgt/article/details/136423692