Codeforces Round #246 (Div. 2)
题目链接:Codeforces Round #246 (Div. 2)
A:直接找满足的人数,然后整除3就是答案
B:开一个vis数组记录每一个衣服的主场和客场出现次数。然后输出的时候主场数量加上反复的,客场数量减掉反复的
C:原来是YY乱搞的。原来是哥德巴赫猜想,一个合数能够表示为3个质数相加,然后就先打个素数表,然后从最小的数字一个个模拟往前放就可以。放的时候走的步数直接拆成都是质数就可以
D:KMP算法,利用next数组性质求前缀和后缀匹配,然后在利用累加求和求出每一个串相应的出现次数
代码:
A:
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std; int n, k, num, i; int main() {
scanf("%d%d", &n, &k);
int ans = 0;
for (i = 0; i < n; i++) {
scanf("%d", &num);
if (5 - num >= k) ans++;
}
printf("%d\n", ans / 3);
return 0;
}
B:
#include <stdio.h>
#include <string.h> const int N = 100005;
int vis[N][2];
int n, x[N], y[N], i; int main() {
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d%d", &x[i], &y[i]);
vis[x[i]][0]++;
vis[y[i]][1]++;
}
for (i = 0; i < n; i++) {
printf("%d %d\n", (n - 1) + vis[y[i]][0], (n - 1) - vis[y[i]][0]);
}
return 0;
}
C:
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
const int N = 100005; int pri[N], ans[5 * N][2], ansn = 0; void init() {
int vis[N];
memset(vis, 0, sizeof(vis));
for (int i = 2; i < N; i++) {
if (vis[i]) continue;
pri[i] = 1;
for (int j = i; j < N; j += i)
vis[j] = 1;
}
} int n, num[N], v[N], i, snum[N]; void swap(int &a, int &b) {
a ^= b;
b ^= a;
a ^= b;
} int main() {
init();
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &num[i]);
snum[i] = num[i];
v[num[i]] = i;
}
sort(snum, snum + n);
i = 0;
while (i < n) {
while (v[snum[i]] != i) {
for (int j = i; ;j++) {
if (pri[v[snum[i]] - j + 1]) {
ans[ansn][0] = j + 1;
ans[ansn][1] = v[snum[i]] + 1;
ansn++;
int t = v[snum[i]];
v[snum[i]] = j;
v[num[j]] = t;
swap(num[j], num[t]);
break;
}
}
}
i++;
}
printf("%d\n", ansn);
for (i = 0; i < ansn; i++)
printf("%d %d\n", ans[i][0], ans[i][1]);
return 0;
}
D:
#include <stdio.h>
#include <string.h>
#define INF 0x3f3f3f3f
const int N = 100005; char s[N];
int next[N], n, ans[N], ansn = 0; void get_next(char *seq, int m) {
next[1] = 0;
int j = next[1];
for (int i = 2; i <= m; i++) {
while (j && seq[i] != seq[j + 1]) j = next[j];
if (seq[i] == seq[j + 1]) j++;
next[i] = j;
}
} int vis[N]; int main() {
int i = 0;
scanf("%s", s + 1);
n = strlen(s + 1);
get_next(s, n);
int t = next[n];
while (t) {
ans[ansn++] = t;
t = next[t];
}
for (i = n; i > 0; i--)
vis[next[i]]++;
for (i = n; i > 0; i--)
vis[next[i]] += vis[i];
printf("%d\n", ansn + 1);
for (i = ansn - 1; i >= 0; i--)
printf("%d %d\n", ans[i], vis[ans[i]] + 1);
printf("%d %d\n", n, vis[n] + 1);
return 0;
}
Codeforces Round #246 (Div. 2)的更多相关文章
- Codeforces Round #246 (Div. 2) D. Prefixes and Suffixes
D. Prefixes and Suffixes You have a string s = s ...
- Codeforces Round #246 (Div. 2) C. Prime Swaps(贪心,数论)
题目链接:http://codeforces.com/contest/432/problem/C 首先由题意分析出:这些数是从1到n且各不相同,所以最后结果肯定是第i位的数就是i. 采用这样一种贪心策 ...
- Codeforces Round #246 (Div. 2) B. Football Kit
题目的意思是求出每个队穿主场衣服和客场衣服的次数 每个队作为主场的次数是n-1,作为客场的次数是n-1 当每个队打主场的时候肯定穿的主场衣服 当每个队打客场时,如果客场与主场的衣服不同,则穿客场衣服 ...
- Codeforces Round #246 (Div. 2) A. Choosing Teams
给定n k以及n个人已参加的比赛数,让你判断最少还能参加k次比赛的队伍数,每对3人,每个人最多参加5次比赛 #include <iostream> using namespace std; ...
- Codeforces Round #246 (Div. 2)——D题
KMP算法,没写出来,完全不理解NEXT数组.现在理解了很多 答案都在程序中 ,不过这个思想真的很神奇, 还有毛语不好,一直没看懂题目,现在懂了, 大概是:S中前缀等于后缀,求其长度,和其在S中出现了 ...
- Codeforces Round #246 (Div. 2) —B. Football Kit
B. Football Kit time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- Codeforces Round #246 (Div. 2) D. Prefixes and Suffixes(后缀数组orKMP)
D. Prefixes and Suffixes time limit per test 1 second memory limit per test 256 megabytes input stan ...
- Codeforces Round #246 (Div. 2) D E
这题说的是给了一个字符串当前缀和后缀相同的时候就计算此时的 整个串种拥有这样的子串友多少个,没想到用KMP解 用0开头的那种类型的 KMP 今天刚好也学了一下,因为KMP的作用是找出最长前缀 KMP ...
- Codeforces Round #366 (Div. 2) ABC
Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...
随机推荐
- EasyUI的使用步骤
(1) 将easyui-1.4.3中jquery.min.js\jquery.easyui.min.js复制到工程的script下 (2) 将themes复制到工程中 (3) 在页面中引入2个JS 2 ...
- DCI架构
提出的文章:DCI架构:一个面向对象编程的新图景 http://wenku.baidu.com/view/a7b5e401de80d4d8d15a4fed.html http://www.360doc ...
- MVC 优缺点
MVC是一个架构,或者说是一个设计模式,它就是强制性使应用程序的输入,处理和输出分开.将一个应用程序分为三个部分:Model,View,Controller. 1. MVC的优点 (1) 可以为一个模 ...
- [Windows编程] 开发DLL必读《Best Practices for Creating DLLs》
开发DLL的时候,需要十分注意 DllMain 函数,因为在多线程环境下DLLMain里面的代码很容易引发线程死锁. 这篇MSDN文章<Best Practices for Creating D ...
- HDU 2610 Sequence one
题目大意:在给定的序列中找到固定个数的递增的子序列,如果子序列的总个数少于要求的个数,那么就把所有的子序列输出即可. 题解:本来题目也不太看得懂,在别人的博客看了许久才懂,剪枝和判重也不大会,于是暂时 ...
- jQuery.merge 源码阅读
jQuery.merge(first,second) 概述 合并两个数组 返回的结果会修改第一个数组的内容——第一个数组的元素后面跟着第二个数组的元素. 参数 first:第一个待处理数组,会改变其中 ...
- Hierarchical Storage structure
1.hierarchical storage structure This notion of inserting a smaller, faster storage device (e.g ...
- out/target/common/obj/PACKAGING/public_api.txt android.view.KeyEvent.KEYCODE_has changed value from
编译出错: out/target/common/obj/PACKAGING/public_api.txt:22549: error 17: Field android.view.KeyEvent.KE ...
- rebol高速入门
看了Java夜未眠之后,我也有点想学习其它语言了,希望能够完毕Python在写GUI程序和Web的程序的缺陷,写GUI程序比較看好VB,写Web程序看好PHP,不过首先想玩玩rebol. 翻译的Reb ...
- Ext JS学习第十三天 Ext基础之 Ext.Element
•Ext.Element提供了181个方法,嗯,还没完,只是在4.1版本中是这样,最新的4.2版本貌似又增加了新方法,可谓是相当丰富给力.那么根据操作类型基本可以分为查询系.DOM操作系.样式操作系. ...