首页 > 代码库 > Codeforces Round #422 (Div. 2) A-C
Codeforces Round #422 (Div. 2) A-C
A. I‘m bored with life
水题
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <queue>#include <vector>#include <iomanip>#include <math.h>#include <map>using namespace std;#define FIN freopen("input.txt","r",stdin);#define FOUT freopen("output.txt","w",stdout);#define INF 0x3f3f3f3f#define INFLL 0x3f3f3f3f3f3f3f#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1typedef long long LL;typedef pair<int, int> PII;using namespace std;int main() { int a, b; cin >> a >> b; int c = min(a, b); int ans = 1; for(int i = 1; i <= c; i++) ans *= i; cout << ans << endl; return 0;}
B. Crossword solving
字符串匹配
英语太差题意花了很久才读懂.....
题意:上面的字符串要把多少个字符变为?才可以变为下面字符串的子串 要变得数量尽可能的小
直接暴力匹配就可以做了
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <queue>#include <vector>#include <iomanip>#include <math.h>#include <map>using namespace std;#define FIN freopen("input.txt","r",stdin);#define FOUT freopen("output.txt","w",stdout);#define INF 0x3f3f3f3f#define INFLL 0x3f3f3f3f3f3f3f#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1typedef long long LL;typedef pair<int, int> PII;using namespace std;const int maxn = 1000 + 5;char a[maxn];char b[maxn];int p[maxn];int p1[maxn];int main() { //FIN int n, m; scanf("%d%d", &n, &m); scanf("%s", a); scanf("%s", b); int mx = -1; int c = 0; for(int i = 0; i <= m - n; i++) { int num = 0; int cnt = 0; for(int j = 0; j < n; j++) { if(b[i+j] == a[j]) { num++; } else { p[cnt] = j + 1; cnt++; } } //cout << num << endl; if(num > mx) { mx = num; for(int j = 0; j < cnt; j++) { p1[j] = p[j]; } c = cnt; } } printf("%d\n", n - mx); for(int i = 0; i < c; i++) printf("%d ", p1[i]); return 0;}
C. Hacker, pack your bags!
结构体一顿瞎做
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <queue>#include <vector>#include <iomanip>#include <math.h>#include <map>using namespace std;#define FIN freopen("input.txt","r",stdin);#define FOUT freopen("output.txt","w",stdout);#define INFLL 0x3f3f3f3f3f3f3f#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1typedef long long LL;typedef pair<double, double> PII;const long long INF = 1e16;const int maxn = 1e6 + 5;int n, x;LL money[maxn];struct node { int st, ed, cost, time, flag;}a[maxn];int cmp(node aa, node bb) { if(aa.st == bb.st) return aa.flag > bb.flag; else return aa.st < bb.st;}bool check(node aa, node bb) { if(aa.st < bb.st && aa.ed > bb.st) return 0; else if(aa.st < bb.st && aa.ed > bb.ed) return 0; else if(bb.st < aa.st && bb.ed > aa.st) return 0; else if(bb.st < aa.st && bb.ed > aa.ed) return 0; else if(bb.st == aa.st || bb.st == aa.ed || bb.ed == aa.st || bb.ed == aa.ed) return 0; if(aa.time + bb.time != x) return 0; return 1;}int main() { //FIN while(cin >> n >> x) { int cas = 0; for(int i = 1; i <= n; i++) { cin >> a[cas].st >> a[cas].ed >> a[cas].cost; a[cas].time = a[cas].ed - a[cas].st + 1; a[cas].flag = 1; cas++; a[cas].st = a[cas-1].ed; a[cas].ed = -1; a[cas].flag = -1; a[cas].time = a[cas-1].time; a[cas].cost = a[cas-1].cost; cas++; } //memset(money, INF, sizeof(money)); for(int i = 0; i <= x; i++) { money[i] = INF; } LL ans = INF; sort(a, a + cas, cmp); for(int i = 0; i < cas; i++) { if(a[i].flag == 1) { if(x - a[i].time > 0) ans = min(ans , money[x - a[i].time] + (LL)a[i].cost); //cout <<"i="<<i<<" "<<money[x-a[i].time]<<endl; //cout << "ans="<<ans<<endl; } else { //cout <<"i="<<i<<" "<<money[x-a[i].time]<<endl; money[a[i].time] = min(money[a[i].time], (LL)a[i].cost); } } if(ans == INF) cout << "-1" << endl; else cout << ans << endl; } return 0;}
Codeforces Round #422 (Div. 2) A-C
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。