关注
/*
我对题目2的思路:
根据每个字母的约束条件,找到满足条件的最长子串,答案就是长度减去这个最长子串的长度。
*/
#include <cstdio>
#include <string.h>
#include <algorithm>
using namespace std;
const int MAX = 100010;
char str[MAX];
int invalid[30][30], dp[26];
int main()
{
int n, m;
while (scanf("%d", &n) != EOF){
scanf("%s", str);
scanf("%d", &m);
memset(invalid, 0, sizeof(invalid));
memset(dp, 0, sizeof(dp));
for (int i = 0; i<m; i++){
char ch1, ch2;
getchar();
scanf("%c%c", &ch1, &ch2);
invalid[ch1 - 'a'][ch2 - 'a'] = invalid[ch2 - 'a'][ch1 - 'a'] = 1;
}
for (int i = 0; i<n; i++){
char a = str[i];
int tmp = 1;
for (int j = 0; j<26; j++){
if (invalid[a - 'a'][j]) continue;
tmp = max(tmp, dp[j] + 1);
}
//printf("%d ", tmp);
dp[a - 'a'] = tmp;
}
sort(dp, dp + 26);
printf("%d\n", n - dp[25]);
}
}
/*
我对题目3的思路:
用队列模拟注册流程,需要判断到达时间,决定办理先后顺序
*/
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
const int N = 10010;
const int INF = 0x3f3f3f3f;
int n, m, k;
struct node
{
int now; //arrive time Ti
int id; //student number Si;
int index;
int len; //visit number of Pi offices
int v; //index
vector<int> s; //Oij offices
vector<int> t; //Wij processing time
node(){
now = id = index = len = v = 0;
};
};
node *pNode[N];
int res[N], beg[105];
struct mycmp
{
bool operator()(node *a, node *b){
if (a->now == b->now)
return a->id > b->id;
return a->now>b->now;
}
};
priority_queue<node*, vector<node*>, mycmp> q;
int main()
{
scanf("%d %d %d", &n, &m, &k);
for (int i = 0; i<n; i++){
int num; //num is Pi offices
pNode[i] = new node();
scanf("%d %d %d", &pNode[i]->id, &pNode[i]->now, &num);
pNode[i]->v = i;
pNode[i]->len = num;
int a, b; //Oij and Wij
for (int j = 0; j<num; j++){
scanf("%d %d", &a, &b);
pNode[i]->s.push_back(a);
pNode[i]->t.push_back(b);
}
pNode[i]->index = 0;//start from first office
pNode[i]->now += k;//from gate to first office
q.push(pNode[i]);
}
while (!q.empty()){
node *tmp = q.top();
q.pop();
int b = max(tmp->now, beg[tmp->s[tmp->index]]);
tmp->now = beg[tmp->s[tmp->index]] = b + tmp->t[tmp->index];
if (tmp->index == tmp->len - 1){
//end of registration
res[tmp->v] = tmp->now;
}
else{
tmp->now += k;//from one office to another
tmp->index++;
q.push(tmp);
}
}
for (int i = 0; i<n; i++)
printf("%d\n", res[i]);
return 0;
}
查看原帖
点赞 评论
相关推荐
03-10 08:50
门头沟学院 Java
沉淀小子:可能一个月8-10K的双非普通人才是我们的常态,不是每个人都可以去那些知名的大厂拿高薪资。比较是偷走幸福的小偷,我们只需要跟过去的自己竞争。博主讲的也折射到了我最近谈恋爱也会焦虑的地方,不过女朋友说我们都是普通人,现在已经很好了。 点赞 评论 收藏
分享
03-13 09:29
温州理工学院 运营 点赞 评论 收藏
分享
点赞 评论 收藏
分享
远航_随风:感谢大佬的面经,这个拷打的很深入啊。我当时挂的京东一面也是面了半个小时没手撕,但是是KPI面,和别人在同一个部门问到的问题基本差不多。加油
查看29道真题和解析 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你感受到金三银四了嘛? #
70803次浏览 613人参与
# 美团笔试 #
696038次浏览 4625人参与
# 虽然0面试,但今天___,夸夸自己 #
8842次浏览 172人参与
# 米哈游笔试 #
551904次浏览 1088人参与
# 春招 / 实习投递,你最焦虑的一件事 #
53053次浏览 1026人参与
# vivo笔试 #
13029次浏览 122人参与
# 27届实习投递记录 #
863次浏览 23人参与
# AI岗位暴涨12倍,你会转AI赛道吗? #
4693次浏览 91人参与
# 今天你投了哪些公司? #
145309次浏览 2603人参与
# 金三银四,你的春招进行到哪个阶段了? #
18648次浏览 254人参与
# 运营每日一题 #
127448次浏览 900人参与
# 美团秋招笔试 #
194683次浏览 1066人参与
# 小米编程考试 #
31515次浏览 151人参与
# 字节7000实习来了,你投了吗? #
4360次浏览 20人参与
# 刚工作的你,踩过哪些坑? #
6123次浏览 137人参与
# AI项目实战 #
6574次浏览 312人参与
# 小米笔试 #
139075次浏览 994人参与
# 找工作,你都让AI帮你做什么? #
6792次浏览 214人参与
# 软件开发春招备战日记 #
93011次浏览 611人参与
# vivo求职进展汇总 #
277862次浏览 1558人参与