蓝桥杯刷题十四
创始人
2025-05-31 14:16:43
0

1.C 循环

线性同余方程

#include 
#include using namespace std;typedef long long LL;LL exgcd(LL a, LL b, LL &x, LL &y) {if (b == 0) {x = 1, y = 0;return a;}LL d = exgcd(b, a % b, y, x);y -= a / b * x;return d;
}int main() {LL a, b, c, k;while (scanf("%lld%lld%lld%lld", &a, &b, &c, &k), a || b || c || k) {LL x, y, z = 1ll << k;LL d = exgcd(c, z, x, y);if ((b - a) % d)  printf("FOREVER\n");else {x *= (b - a) / d;z /= d;printf("%lld\n", (x % z + z) % z);}}return 0;
}

2.正则问题

理解了这个正则表达式的含义以后,就可以做了,类似于简单的表达式求值的算法,递归和栈都可以

#include 
#include using namespace std;int k;
string s;int dfs() {int res = 0;while (k < s.size()) {if (s[k] == '(') {k ++;res += dfs();k ++;}else if (s[k] == '|') {k ++;res = max(res, dfs());}else if (s[k] == ')') break;else {k ++;res ++;}}return res;
}int main() {cin >> s;return cout << dfs() << endl, 0;
}

3.糖果

IDA*+剪枝(每次选分值最少+去重)

#include 
#include 
#include 
#include using namespace std;const int N = 110, M = 1 << 20;int n, m, k;
vector col[N];
int log2[M];int lowbit(int x)
{return x & -x;
}int h(int state)  // 最少需要再选几行
{int res = 0;for (int i = (1 << m) - 1 - state; i; i -= lowbit(i)){int c = log2[lowbit(i)];res ++ ;for (auto row : col[c]) i &= ~row;}return res;
}bool dfs(int depth, int state)
{if (!depth || h(state) > depth) return state == (1 << m) - 1;// 找到选择性最少的一列int t = -1;for (int i = (1 << m) - 1 - state; i; i -= lowbit(i)){int c = log2[lowbit(i)];if (t == -1 || col[t].size() > col[c].size())t = c;}// 枚举选哪行for (auto row : col[t])if (dfs(depth - 1, state | row))return true;return false;
}int main()
{cin >> n >> m >> k;for (int i = 0; i < m; i ++ ) log2[1 << i] = i;for (int i = 0; i < n; i ++ ){int state = 0;for (int j = 0; j < k; j ++ ){int c;cin >> c;state |= 1 << c - 1;}for (int j = 0; j < m; j ++ )if (state >> j & 1)col[j].push_back(state);}for (int i = 0; i < m; i ++ ){sort(col[i].begin(), col[i].end());col[i].erase(unique(col[i].begin(), col[i].end()), col[i].end());}int depth = 0;while (depth <= m && !dfs(depth, 0)) depth ++ ;if (depth > m) depth = -1;cout << depth << endl;return 0;
}

4.鸣人的影分身

dp题捏

#include 
#include using namespace std;const int N = 11;int main() {int t;  scanf("%d", &t);while (t --) {int n, m;  scanf("%d%d", &m, &n);int f[N][N] = {0}; f[0][0] = 1;for (int i = 0; i <= m; i ++) {for (int j = 1; j <= n; j ++) {f[i][j] = f[i][j - 1];if (i >= j)  f[i][j] += f[i - j][j];}}printf("%d\n", f[m][n]);}return 0;
}

5.糖果

背包问题捏

#include
using namespace std;
typedef pairPII;
typedef long long ll;
const int N=110;
int n,k;
int f[N][N];
int main()
{scanf("%d%d",&n,&k);int w;memset(f,-0x3f,sizeof f);f[0][0]=0;for(int i=1;i<=n;i++){scanf("%d",&w);for(int j=0;j

相关内容

热门资讯

走进小城看消费丨江西资溪:低碳...   夏日时节下午4点,江西省抚州市资溪县大觉山景区漂流终点依然热闹。来自南昌的游客余鑫漂流结束后没有...
【中原晨会0625】市场分析专... 来源:市场资讯 (来源:中原证券研究所) 本期重点研报目录 【中原策略】市场分析:电子半导体领涨 ...
南向资金连买4日!低费率+可月... 6月25日早盘,港股红利资产震荡整理。截至11时14分,港股红利低波ETF招商(520550)下跌0...
618成交破百万!紫荆花用一套... 一年一度的618年中大促,是消费市场的晴雨表,也是品牌间最激烈的角力场。当各大品牌在直播间里铆足了劲...
原创 黄... 2026年6月25日的国际金价已经从前期的5500美元高点跌到4200美元下方,累计跌幅超过22%,...
英伟达CEO:Vera Rub... 截至9:38,中证半导体材料设备主题指数(931743)涨2.36%创新高;权重股中,中微公司涨3....
再被催债16亿!“钢铁大王”戴... 澎湃新闻记者 贺梨萍 因“铁本事件”入狱五年的戴国芳重返钢铁行业,但他并没有完成从阶下囚再到“钢铁大...
周三原油价格下跌 随着美国和伊朗在和平谈判中取得进展,越来越多的油轮公开穿越霍尔木兹海峡,原油在战时的价格上涨已经蒸发...
这种蛋白是大脑衰老的开关 这种蛋白是大脑衰老的开关 清晨,假设一位五十岁左右的王女士发现自己常常把手机放在熟悉的抽屉里又找不到...
信通院牵头算力Token出海生... 盘面上,截至11:04,中证科创创业50指数(931643)涨1.68%,创历史新高;权重股中,芯原...
海外 774 亿营收背后:日本... 文 | 游戏价值论 6月23日,彭博社报道了腾讯正在围绕出售多家日本游戏工作室少数股权开展谈判,包...
餐饮“抢人”大战:把店开到公交... 作者 |餐饮老板内参 内参君 医院、公交站、演唱会…餐饮品牌,正在无孔不入 在北京儿童医院,肯德基...
快讯 | 外资扫货!陈翊庭:港... 港交所行政总裁陈翊庭在接受《中国证券报》专访时指出,国际资本对中国资产的看法已彻底扭转,布局中国市场...
2777.77元!A股“股王”... 25日早盘,昨天创下历史新高的A股“股王”联讯仪器,今天上午继续走强,盘中股价再度刷新历史新高。 截...
原创 今... 欧洲自己的媒体直接下结论,欧盟衰退躲不掉,内部分裂拦不住,现在就连欧洲顶尖工业巨头,都偷偷在用中国的...
黄仁勋股东大会放言:本轮AI基... 在当地时间6月24日的英伟达(NVDA.O)2026年度股东大会上,股东批准了该公司全部10名董事会...
国际油价大跌 新华社消息, 纽约原油期货主力合约价格24日盘中跌破每桶70美元,为伊朗战事爆发以来首次。 市场分析...
马云带队插秧,什么信号? 一场别开生面的“务农”,让外界看到了一个不一样的阿里巴巴。 近日,阿里巴巴合伙人、高德董事长刘振飞在...
全球最大产能,最高丰度达99.... 本文转自【科技日报】; 6月23日,高丰度硼-10同位素技术暨产业化成果发布会在山东省东营市举办,全...
黄金大跳水!金饰克价年内暴跌近... 25日,现货黄金盘中震荡,截至发稿,报3985.070美元/盎司,跌0.17%。 当地时间24日,...