1、

拿到题目一定要读懂题意,不要看到这题目就上来模拟什么闰年,一月的天数啥的。这个题目问你当天的时间,就说明年月日跟你都没关系,直接无视就好了。

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>using namespace std;#define ll long long//能开long long就开,避免爆数据 int main()
{ll n;cin >> n;n /= 1000;//先把毫秒转化为秒 ll hour = (n / 60 / 60) % 24;//求出小时数,一定要记得取模 ll minute = (n % 3600 / 60) % 60;//分钟数 ll s = n % 3600 % 60;//秒数 if (hour < 10) cout << 0;//记得处理好零的输出 cout << hour << ':';if (minute < 10) cout << 0;cout << minute << ':';if (s < 10) cout << 0;cout << s;return 0;
}

2、

(1)动态规划:

闫氏dp分析法:

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <cmath>using namespace std;#define N 1010000int f[150][N] ,n ,w[N] ,ans ,sum; int main()
{cin >> n;for (int i = 1 ;i <= n ;i ++) cin >> w[i] ,sum += w[i];//拿sum存储砝码的重量之和 f[0][0] = 1;//初始化,零个砝码测出质量为0的方案有一个 for (int i = 1 ;i <= n ;i ++){for (int j = 0 ;j <= sum ;j ++){f[i][j] = f[i - 1][j];//第i个砝码没有用 f[i][j] += f[i - 1][abs(j - w[i])];//第i个砝码放左边 f[i][j] += f[i - 1][j + w[i]];//第i个砝码放右边 }}for (int i = 1 ;i <= sum ;i ++)if (f[n][i]) ans ++;//如果有值,说明前n个砝码可以测出来重量为i的物品,答案加一 cout << ans;return 0;
}

(2)dfs暴力,拿一半分

如果这道题实在没时间做或者说想不到思路,那么我们就可以考虑暴力拿分

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <cmath>using namespace std;#define N 1010000int n ,w[N] ,ans;
bool vis[N];void dfs(int k ,int g)
{if (k > n){if (g > 0 && !vis[g]){ans ++;vis[g] = true;}return;}dfs(k + 1 ,g);dfs(k + 1 ,g + w[k]);dfs(k + 1 ,abs(g - w[k]));
}int main()
{cin >> n;for (int i = 1 ;i <= n ;i ++){cin >> w[i];}dfs(0 ,0);cout << ans; return 0;
}

3、

这一届的题目从这一题开始往后,难度就起来了。

1、先说暴力做法吧,可以拿四十分,直接预处理一千行

#include<iostream>
#include<algorithm>
#include<cstring>using namespace std;const int N = 1e3 + 10;int n = 1000;
int  a[N][N];int main() {a[1][1] = 1;for (int i = 2; i <= n; i ++) // 预处理for (int j = 1; j <= i; j ++)a[i][j] = a[i - 1][j] + a[i - 1][j - 1];int x; cin >> x;int cnt = 0;for (int i = 1; i <= n; i ++) // 枚举for (int j = 1; j <= i; j ++) {cnt ++;if (a[i][j] == x) {cout << cnt;return 0;}}       return 0;
}

2、正解

关于这道题我们需要明白:杨辉三角其实就是组合数!如图:

从图中我们可以观察出两个性质:

1、以中间的紫色分割线为界,左右两边的数值是相等的。那么右边存在的某一个值左边一定也存在,并且根据题目的排序方式来看左边相对而言更加靠前,也就是说某一个数N第一次一定是在左边先出现。因此,我们要找的结果一定是在左边部分中。

2、中间一列数从上往下是在递增的,每一横排从左往右也在递增,每一斜行从上往下也在递增。所以每个斜行都保持了单调性。

现在知道了这两个性质,我们可以想想怎么从左边中找到N。直接枚举的复杂度太高,不可取,而根据第二条中所提到的单调性,我们可以很自然的想到二分法。那么该如何二分?竖着?横着?这都不可取,因为不论是哪一种我们都无从下手。所以我们需要斜着来!每一个斜行从紫色部分开始,也就是C(k,2*k)的形式,到C(k ,n)结束(为什么从n结束?可以思考一下,倘若想不明白可以私信问我)。由于n最大1e9,C(34, 17) > 1e9, C(32, 16) < 1e9,因此只要枚举前16个斜行即可。

C(k, r)对应的顺序值为:(r + 1) * r / 2 + k + 1

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>using namespace std;#define ll long longll n;ll c(int a ,int b)
{ll res = 1;for (int i = a ,j = 1 ;j <= b ;i -- ,j ++)//求组合数的过程 {res = res * i / j;if (res > n) return res;//如果res已经大于n就不用在求了,肯定不是答案,直接返回。这样也可以避免爆数据 }return res;
}bool h(int k)
{int l = 2 * k ,r = n;while (l < r){ll mid = (l + r) / 2;if (c(mid ,k) >= n) r = mid;elsel = mid + 1;}if (c(l ,k) != n) return false;cout << 1ll * (l + 1) * l / 2 + k + 1;//如果找到了,输出位置 return true;
}int main()
{cin >> n;for (int i = 16 ; ;i --)//枚举前十六个斜行 if (h(i)) break;return 0;
}

4、

我也不会。。。

5、

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>using namespace std;#define ll long long
#define N 5500const int mod = 1000000007;ll f[N][N] ,len;
char s[N];ll hu()
{memset(f ,0 ,sizeof(f));f[0][0] = 1;for (int i = 1 ;i <= len ;i ++){if (s[i] == '('){for (int j = 1 ;j <= len ;j ++)f[i][j] = f[i - 1][j - 1];}else {f[i][0] = (f[i - 1][0] + f[i - 1][1]) % mod;for (int j = 1 ;j <= len ;j ++)f[i][j] = (f[i - 1][j + 1] + f[i][j - 1]) % mod;}}for (int i = 0 ;i <= len ;i ++)if (f[len][i]) return f[len][i];return -1;}int main()
{scanf("%s" ,s + 1);len = strlen(s + 1);ll l = hu();reverse(s + 1 ,s + len + 1);for (int i = 1 ;i <= len ; i ++){if (s[i] == '(') s[i] = ')';elses[i] = '(';}ll r = hu();printf("%lld" ,l * r % mod);return 0;
}

十二届蓝桥杯省赛c++(下)相关推荐

  1. 2021年软件类第十二届蓝桥杯 省赛 python组 F-J题解

    2021年软件类第十二届蓝桥杯 省赛 python组 F-J题解 文章目录 2021年软件类第十二届蓝桥杯 省赛 python组 F-J题解 试题 F:时间显示 题目描述 输入描述 输出描述 输入输出 ...

  2. 第十二届蓝桥杯省赛C/C++B组2021

    第十二届蓝桥杯省赛C/C++B组2021 A:空间(5分) 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可. 小蓝准备用 256MB256MB 的内存空间开一个数组,数组的每个 ...

  3. 2021年第十二届蓝桥杯省赛B组(C/C++)第二场题解

    文章目录 2021年第十二届蓝桥杯省赛B组(C/C++)第二场题解 1.求余 2.双阶乘 3.格点 4.整数分解 5.城邦 6.特殊年份 7.小平方 8.完全平方数 9.负载均衡 10.国际象棋 20 ...

  4. 2021第十二届蓝桥杯省赛JAVA B组 题目+答案(复现赛)

    2021第十二届蓝桥杯省赛JAVA B组 题目+答案(复现赛) A:ASC B:卡片 C:直线 D:货物摆放 E:路径 Floyed Dijkstra F:时间显示 G:最少砝码 H:杨辉三角形 I: ...

  5. 十二届蓝桥杯省赛B组C++解析(填空题部分)

    十二届蓝桥杯省赛B组C++解析(填空题部分) 目录 十二届蓝桥杯省赛B组C++解析(填空题部分) A:空间 B:卡片 C:直线 D:货物摆放 E:路径 A:空间 该题是一道计算机基础原理题,这里需要了 ...

  6. 2021年第十二届蓝桥杯 - 省赛 - C/C++大学A组 - D.路径

    2021年第十二届蓝桥杯 - 省赛 - C/C++大学A组 - D.路径 Ideas 算法:最短路径 数据结构:图 思路:根据规则构图,单源最短路径Dijkstra算法. 首先构图其实很简单,就是按照 ...

  7. 2021年第十二届蓝桥杯 - 省赛 - C/C++大学B组 - I.双向排序

    2021年第十二届蓝桥杯 - 省赛 - C/C++大学B组 - I.双向排序 Ideas 题目中给出了两种操作: 当 pi = 0 时,表示将 a1, a2, · · · , aqi 降序排列: 当 ...

  8. 第十二届蓝桥杯省赛JAVA B组杨辉三角形个人题解

    第十二届蓝桥杯省赛JAVA B组杨辉三角形个人题解(非满分) import java.util.Scanner; public class Main {public static void main( ...

  9. 2021年第十二届蓝桥杯省赛C/C++B组题解总结

    前几天(2021.4.18)刚刚比完了2021年第十二届蓝桥杯省赛,本人参加的是软件组C++B组的比赛,本文包括了这一届C++B组的题目以及部分题解.感悟和总结. 目录 试题A.空间 试题B.卡片 试 ...

  10. 第十二届蓝桥杯省赛详解

    试题A:空间 1B是8位,32位二进制数占用4B空间,1MB=2^10KB=2^20B 那么可以存放32位二进制数的个数为256*2^20*8/32=67108864 试题B:卡片 分析:因为数据只有 ...

最新文章

  1. 2022-2028年中国PET基膜行业市场发展规模及市场分析预测报告
  2. MMU关闭时Cache的缓存策略是怎样的
  3. 商城报表系统html5,关于html5:推荐这几款主流报表产品
  4. Chrome 开发工具 (Chrome Developer Tools):Network Panel说明
  5. asp.net 2.0 下的一个小技巧
  6. 二十五.SLAM中Mapping和Localization区别和思考
  7. 京东健康上线“新冠病毒”核酸检测 在线预约服务
  8. ffmpeg解码到opencv Mat中
  9. 【iOS系列】-iOS中内存管理
  10. dta乱码_DTA是自动化索引的出色工具
  11. mysql清除旧版本_MYSQL使用INNODB时及时清理旧版本数据
  12. php ‘\n‘ 与 “\n“的区别
  13. 前端开发_HTML5_布局-div+css布局
  14. 产品经理必须要掌握的数据分析能力
  15. 运动控制器用c语言编程吗,中文可编程运动控制器
  16. Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day17】—— 数据库4
  17. HTTPS安全通讯 6. 安卓 使用BKS实现SSL/TLS安全协议
  18. 利用SwipeRefreshLayout实现类似知乎客户端的一打开界面就自动刷新的效果
  19. 面试-JVM-类加载-类加载器--自定义类加载器-JVM调优
  20. 网络技术摘抄(入门需知)

热门文章

  1. Unity新手入门必备书籍和教程推荐
  2. 实训总结-3g-王帅
  3. 拉普拉斯算子原理 图像增强
  4. 洛谷题库P1765手机C语言,[模拟] [洛谷] P1765 手机
  5. window.load和window.onload
  6. 三亚将建智慧旅游大数据应用平台
  7. CDMA系统的UIM卡介绍 ,IMSI,ESN,MDN
  8. Unity使用leancloud开发弱数据联网游戏(注册、登录和云端数据存读)
  9. win linux双系统 启动菜单,通过EasyBCD制作Windows7和Ubuntu双系统启动菜单
  10. 陆金所MySQL_独家揭秘陆金所去Oracle全过程:18个月将90%数据库业务换到MySQL