c++
weixin-1111111
这个作者很懒,什么都没留下…
展开
-
Acwing-二分法-Dijkstra
通信线路题目提交记录讨论题解视频讲解在郊区有 N 座通信基站,P 条 双向 电缆,第 i 条电缆连接基站Ai和Bi。特别地,1 号基站是通信公司的总站,N 号基站位于一座农场中。现在,农场主希望对通信线路进行升级,其中升级第 i 条电缆需要花费Li。电话公司正在举行优惠活动。农产主可以指定一条从 1 号基站到 N 号基站的路径,并指定路径上不超过 K 条电缆,由电话公司免费提供升级服务。农场主只需要支付在该路径上剩余的电缆中,升级价格最贵的那条电缆的花费即可。求至少用多少钱可以完.原创 2021-02-07 16:39:45 · 135 阅读 · 0 评论 -
字符串-背单词-P209
#include<iostream>#include<cstring>#include<cstdio>using namespace std;int dp[200];int mod=20071034;char str[200];struct tire{ int ch[200][200]; int val[200]; int sz; void reset() { memset(ch[0],0,sizeof(ch[0])); sz=1;原创 2021-02-04 23:04:38 · 87 阅读 · 0 评论 -
二叉索引树P195
#include<iostream>using namespace std;int a[16]={100,1,2,3,4,5,6,7,8,9,10,11,12,13,14};int c[16];int lowbit(int x){ return x&(-x);}int sum(int x){ int ret=0; while(x>0) { ret+=c[x]; x=x-lowbit(x); } return ret;}int ad原创 2021-02-04 18:33:26 · 100 阅读 · 0 评论 -
并查集-易爆物P191
#include<cstdio>#include<iostream>#include<vector>#include<map>using namespace std;int p[200];int findset(int x){ return p[x]!=x?p[x]=findset(p[x]):x;//并查集 }int main(){ int x,y; int result=0; while(cin>>x) {原创 2021-02-04 13:39:05 · 143 阅读 · 0 评论 -
dijkstra模板题
#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>using namespace std;const int N=510;int st[N];int g[N][N];int dist[N];int n,m;int dijkstra(){ int i,j; memset(dist,0x3f,sizeof(dist)); dist[1]=0;原创 2020-07-28 14:38:26 · 37 阅读 · 0 评论 -
trie-最短前缀问题
字符串的前缀是从给定字符串开头开始的子字符串。“碳"的前缀是:“c”,“ca”,“汽车”,“碳水化合物”,“碳水化合物"和"碳”。请注意,在此问题中,空字符串不被视为前缀,但每个非空字符串都被视为其前缀。在日常语言中,我们倾向于用前缀缩写单词。例如,“碳水化合物"通常缩写为"碳水化合物”。在此问题中,给定一组单词,您将在每个单词中找到唯一标识它表示的单词的最短前缀。在下面的示例输入中,“碳水化合物"可以缩写为"carboh”,但不能缩写为"carbo”(或任何较短的词),因为列表中有以"carbo"为首的原创 2020-07-23 23:04:34 · 120 阅读 · 0 评论 -
trie-字符串-电话号码问题
给定电话号码列表,确定其一致性,即没有号码是另一个号码的前缀。假设电话目录列出了以下号码:紧急 911爱丽丝 97 625 999鲍勃 91 12 54 26在这种情况下,无法致电 Bob,因为当您拨打 Bob 电话号码的前三位数字后,中心会立即将呼叫呼叫呼叫呼叫呼叫呼叫呼叫呼叫呼叫。因此,此列表不一致。输入第一行输入给出一个整数,1 + t = 40,测试用例数。每个测试用例以n开头,电话号码号在单独的线路上,1 = n = 10000。然后按照n行,每行上有一个唯一的电话号码。电话号码是最多原创 2020-07-23 23:03:44 · 305 阅读 · 0 评论 -
八皇后问题
简单八皇后问题#include<iostream>#include<cstring>using namespace std;int visited[20][20]={false};char pos[20][20];int ans=0;int search(int i,int j,int n,int m)//i是行,j是列{ if(i<0||i>=n||j<0||j>=m||visited[i][j]||pos[i][j]=='#')原创 2020-07-18 17:20:31 · 48 阅读 · 0 评论 -
对称顺序111
在信天翁马戏团管理工作(是的,它由一群小丑运行),你刚刚写完一个程序,其输出是按长度排列的名称列表(因此每个名称至少和前面的名字一样长)。但是,您的老板不喜欢输出的外观,而是希望输出看起来更对称,顶部和底部的字符串较短,中间的字符串较长。他的规则是,每对名字都属于列表的两端,并且该列表中的第一个名字始终位于列表的顶部。在下面的第一个示例中,博和帕特是第一对,让和凯文是第二对,等等。输入输入由一组或多组字符串组成,后跟仅包含值 0 的最后一行。每个集合以一个包含整数 n 的行开头,该线是集合中的字符串数,原创 2020-07-18 17:11:21 · 58 阅读 · 0 评论 -
放苹果
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。Input第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。Output对输入的每组数据M和N,用一行输出相应的K。Sample Input17 3Sample Output8#include<iostream>using namespace std;原创 2020-07-18 17:09:30 · 51 阅读 · 0 评论 -
彩票
卢上周输掉了彩票,但他还是打算买一张本周抽奖的彩票。他还在为所有亲戚买票。他们都是数学家(他们了解概率),永远不会为自己买票。卢坚持他们每人选择自己的号码。当他看这些数字时,似乎他所有的亲戚都拿他开玩笑。他们似乎通过挑选一对共生整数来选择数字,将它们串联起来,然后将数字拆分成彩票上的编号点。如果两个整数不共享任何大于 1 的积极因素,则两个整数称为 coprimes 或相对因数。(这就是笑话——他们是他亲戚的"亲戚"。image.png这些是卢热爱数学的亲戚彩票中的彩票号码。数字 169 和 7203原创 2020-07-18 17:01:31 · 134 阅读 · 0 评论 -
Pac 人为您的新手机
您正在为好友的新手机新手机"新手机"编写应用程序。既然你在 Pac Man 上长大, 你想写一个简化版本的游戏。在这个游戏里,棋盘是一个矩形网格,Pac Man 从左上角开始。他的目标是到达右下角。他总是把一个方块向右边移动,或者向下移动一个正方形。他去的每个方块都有一个 “好东西”, 值得一定量的积分。您的分数只是您访问过的每个正方形中好东西分数的总和。例如,如果游戏板看起来像这样(P 表示 Pac Man 的起始位置,E 表示其结束位置):image.png则 Pac Man 的最佳策略是右移、原创 2020-07-18 16:58:56 · 133 阅读 · 0 评论 -
计蒜客--积极五角星!
五个随机整数放置在五边形的角上。通常,其中一些数字为负数,但保证其总和为正数。目标是通过减法和否定的平衡过程来消除所有负数。从负数的下一个开始,我们否定数字(因此使它为正数),然后从两个邻域的每个位置减去该值。新数字的总和将保持不变,因此五边形仍然是"平衡的"。然后重复此过程(查找负数中最低的,否定它,并从其邻居中减去它),直到所有数字都是非负数。image.png在任何步骤中,如果最低负数出现在多个角,请使用首先找到的负数,如果从顶角开始,顺时针方向遍历。问题:给定五角大楼角的原始五个数字,输出可以通原创 2020-07-18 16:54:02 · 53 阅读 · 0 评论 -
计蒜客---它是多么甜蜜啊!
奥鲁吉博士的双胞胎麦克和扎克喜欢电子游戏。我们将假设所有游戏50. M/Z节省他们得到的所有钱,当他们有50.M/Zsaveallthe moneyyheygetnd,whenteyh ave50 或更多, 他们买了一个游戏, 说 "甜蜜!如果M/Z一次得到大量的钱(例如,在他们生日),他们可以买两个或更多的游戏,他们买两个或更多的游戏(尽可能多的,他们可以)并说"完全甜蜜!当M/Z购买游戏时,他们把剩下的钱存到下一次购买。问题:鉴于钱(各种金额)M/Z接收,你要写一个程序,告诉博士O,当甜蜜或完全甜即原创 2020-07-18 16:51:52 · 55 阅读 · 0 评论 -
洛谷【深基2.例8】再分肥宅水
题目描述现在有 t 毫升肥宅快乐水,要均分给 n 名同学。每名同学需要 2 个杯子。现在想知道每名同学可以获得多少毫升饮料(严格精确到小数点后 3 位),以及一共需要多少个杯子。输入一个实数 t 和一个整数 n,使用空格隔开。输出两个数字表示答案,使用换行隔开。0\leq t\leq 100000≤t≤10000且不超过3位小数,1\leq n\leq 10001≤n≤1000输入格式无输出格式无输入输出样例输入 #1复制500.0 3输出 #1复制166.6676在这里插入代码片原创 2020-07-16 16:47:44 · 750 阅读 · 0 评论