Math
文章平均质量分 61
yurio7r
ipy8pyp
展开
-
CodeForces 625A - Guest From the Past
贪心#include int main(){ __int64 n, a, b, c; scanf("%I64d%I64d%I64d%I64d",&n, &a, &b, &c); __int64 res = 0; if (n >= b && b - c <= a) { res = (n - b) / (b - c) + 1; } printf("%I64d\n", res原创 2016-03-15 22:51:15 · 420 阅读 · 0 评论 -
Codeforces 665A - Buses Between Cities
题目的意思就是给出一个区间, 然后让你找出与这个区间相交的情况有多少种,区间是个开区间。#include #include #include #include #include #include using namespace std;inline void file(){ freopen("D:\\go.txt", "r", stdin); freopen原创 2016-04-30 22:11:13 · 592 阅读 · 0 评论 -
codeforces 662D International Olympiad
没想出来,看了官方给的题解才算懂了吧。 首先是通过后面的数字的长度,可以判断出是在10年以内,100年以内,1000年以内等等,然后保存下来末尾的数字,然后通过末位的数和在哪个范围内一直加,然后就可以判断出答案,官方给出的链接:http://codeforces.com/blog/entry/44408#include #include #include #include #inclu原创 2016-04-30 23:33:04 · 692 阅读 · 0 评论 -
codeforces 660C Hard Process
又不会,又去看了官方的题解。 题目的意思是,给出一个由0和1构成的数组,然后替换其中的k个数字,使得有一个连续由1构成的字串长度最长。用了两个数,表示当前最优的范围,声明了一个变量cnt,用来记录在前一个字串中0的个数,每一次循环结束后,要判断这一次的开头的那个数是否是0,不是0就减1,因为是利用cnt这个在for循环之外的变量来维护的区间中的数,所以要减去旧的区间中开头的那个数。#i原创 2016-05-01 14:30:38 · 485 阅读 · 0 评论 -
HDU 2094 产生冠军
给你一些点,找出其中点的入度为0的个数,#include #include #include #include #include #include #include using namespace std;map tmp;set ans;void file(){ freopen("D:\\in.txt", "r", stdin); // freopen("原创 2016-04-19 23:58:03 · 454 阅读 · 0 评论 -
codeforces 670A Holidays
题目的意思就是给出一年的天数,求最少和最多有多少天的假。最多有5天工作,2天放假,先求最多可能有多少个完整的周,然后在把多余的天数算作工作或者是放假就好了。#include using namespace std;void file(){ freopen("C:\\Users\\MrZis\\Desktop\\input.txt", "r", stdin); freo原创 2016-05-06 11:35:54 · 493 阅读 · 0 评论 -
codeforces 670B Game of Robots
题目意思是由题目给出的数列按照等差数列的方式算出一个新的数列,然后给出一个位置k,问在k位的数是多少。等差数列求和运用,从头开始,一直求和,直到大于等于k就可以判断位置了。#include using namespace std;typedef __int64 ll;ll m, n;const int MAX = 1e6 + 5;ll arr[MAX];void file(原创 2016-05-06 11:38:55 · 627 阅读 · 0 评论 -
codeforces 670C Cinema
题目的意思是,每个人熟悉一门语言,然后给出了两个数列,第一个数列代表的是电影的声音语言,第二个数列代表的是字幕语言,问选择序号为多少的电影,使得感到pleased的人最多,若pleased人一样多,再比较熟悉字幕语言的人数。利用map存熟悉每种语言的人数,然后先比较熟悉声音的人,若熟悉声音的人相等,再比较熟悉字幕的人。#include #include #include #inclu原创 2016-05-06 11:42:53 · 944 阅读 · 0 评论 -
codeforces 670D1 - Magic Powder - 1
题目的意思,就是给出制作一种食物的每种材料所需的量,然后再给出每种材料目前总共的数量,问最多可以制作多少个这样的食物。贪心。首先求出每种材料是总共有多少个这样的材料,然后由小到大排序,然后再用一个数组存那个后一个大的量的材料减去前面所有小的量的差,因为比如,有3种材料,每种材料的量分别是1, 2,4, 就需要sum[1] = 1, sum[2] = 3,然后就是贪心的计算了。#includ原创 2016-05-06 11:51:18 · 1156 阅读 · 0 评论 -
codeforces 670D2 - Magic Powder - 2
和前面的那道题一样,就只改了数组的大小和数据类型。#include using namespace std;const int MAX = 1e5 + 5;//int a[MAX], b[MAX], c[MAX];typedef __int64 ll;struct NODE{ ll a, b, c;}node[MAX];ll sum[MAX];bool comp(NODE原创 2016-05-06 11:53:09 · 1031 阅读 · 0 评论 -
Codeforces 667A Pouring Rain 667B Coat of Anticubism
A题列个方程就解决了。#include #include #include #include #include #include #include using namespace std;typedef long long ll;#define pi 3.14159265359inline void file(){ freopen("D:\\go.txt",原创 2016-04-30 20:57:47 · 505 阅读 · 0 评论 -
Codeforces 665B - Shopping
这道题太直白了,直接用双端队列就解决了。意思是#include #include #include #include using namespace std;typedef deque::iterator iterator_t;int main(){ deque que; int n, m, k; scanf("%d%d%d", &n, &m, &k);原创 2016-04-27 23:57:29 · 616 阅读 · 0 评论 -
hdu 4589 Special equations
求一个数x,使得f(x) % (pri * pri) == 0。暴力,数学题。写完了去找了下题号= =#include #include using namespace std;long long arr[6];int main(){ int t, cas = 0; scanf("%d", &t); while (t--) { in原创 2016-04-09 23:00:22 · 445 阅读 · 0 评论 -
CodeFOrces 625C - K-special Tables
k列的左边都是比第k列小的数,右边从左到右从上到下依次排就行了#include #include const int MAX = 505;int arr[MAX][MAX];int main(){ int n, k, t = 1; scanf("%d%d", &n, &k); for (int i = 1; i <= n; ++i) { for (int j = 1原创 2016-03-15 22:58:08 · 711 阅读 · 0 评论 -
CodeForces 624B - Making a String
贪心#include #include #include using namespace std;const int MAX = 30;__int64 arr[MAX];int main(){ int n; scanf("%d", &n); for (int i = 1; i <= n; ++i) scanf("%I64d", &arr[i]); sort(ar原创 2016-03-16 20:39:25 · 486 阅读 · 0 评论 -
CodeForces 624A - Save Luke
因为tv1 + tv2 + d #include #include #include int main(){ double d, l, v1, v2; //scanf("%f%f%f%f", &d, &l, &v1, &v2); std::cin >> d >> l >> v1 >> v2; //printf("%.6lf\n", (l - d) / (v1 + v2));原创 2016-03-16 20:38:28 · 380 阅读 · 0 评论 -
FZU 2147 A-B Game
关键是找出规律,其次再说贪心吧= =#include #include using namespace std;int main(){ int t, cas = 0; scanf("%d", &t); while (t--) { __int64 a, b; scanf("%I64d%I64d", &a, &b);原创 2016-03-30 22:59:56 · 460 阅读 · 0 评论 -
lightOJ 1214 Largest Division
#include #include #include #include const int MAX = 1e3 + 5;char arr[MAX];int main(){ int t, cas = 0; std::cin >> t; while (t--) { long long n, res = 0; std::cin >> arr >> n; int le原创 2016-03-08 19:04:20 · 428 阅读 · 0 评论 -
poj 2299 Ultra-QuickSort
求逆序数对#include #include #include using namespace std;const int MAX = 5e5 + 5;int arr[MAX], tmp[MAX];__int64 res;void merge_sort(int* arr, int* tmp, int l, int r){ if (l == r) re原创 2016-03-21 17:20:47 · 276 阅读 · 0 评论 -
HDU 1029 Ignatius and the Princess IV
用数组记录次数就行了。#include #include #include using namespace std;const int MAX = 1e6 + 5;int arr[MAX];int main(){ int n; while (scanf("%d", &n) != EOF) { int tmp, res;原创 2016-04-05 21:54:58 · 334 阅读 · 0 评论 -
CodeForces 622A Infinite Sequence
等差数列问题#include #include int main(){ __int64 n; scanf("%I64d", &n); __int64 i = 1; while (i * (1 + i) / 2 < n) { ++i; } __int64 tmp = (i - 1) * i / 2; //std::cout << tmp << std::endl;原创 2016-03-14 16:33:50 · 283 阅读 · 0 评论 -
CodeForces 622B - The Time
输出的技巧#include #include int main(){ int h, m; int num; scanf("%d:%d", &h, &m); scanf("%d", &num); m += num; h += m / 60; printf("%02d:%02d\n", h % 24, m % 60); return 0;}原创 2016-03-14 16:35:01 · 286 阅读 · 0 评论 -
hihocoder 1501 补提交卡
描述给出一个数组,求两个数之间最大的差距。解决贪心遍历#include <iostream>#include <vector>using namespace std;int main(){ int n; cin >> n; while (n--) { int N, M; cin >> N >> M; vector<i原创 2016-10-23 21:15:41 · 307 阅读 · 0 评论