Problem_A(CodeForces 686A):
题意:
\[ 有n个输入, +\space d_i代表冰淇淋数目增加d_i个, -\space d_i表示某个孩纸需要d_i个, 如果你现在手里没有\space d_i个冰淇淋, 那么这个孩纸就会失望的离开。\]
你初始有x个冰淇淋。
问最后有多少个孩纸失望的离开了。

思路:
模拟就好了, 判断当前的数目是否足够。

代码:

#include <cmath>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <ctime>
#include <set>
#include <map>
#include <list>
#include <stack>
#include <queue>
#include <string>
#include <vector>
#include <fstream>
#include <iterator>
#include <iostream>
#include <algorithm>
using namespace std;
#define LL long long
#define INF 0x3f3f3f3f
#define MOD 1000000007
#define eps 1e-6
#define MAXN 1000000
#define MAXM 100
#define dd {cout<<"debug"<<endl;}
#define pa {system("pause");}
#define p(x) {printf("%d\n", x);}
#define pd(x) {printf("%.7lf\n", x);}
#define k(x) {printf("Case %d: ", ++x);}
#define s(x) {scanf("%d", &x);}
#define sd(x) {scanf("%lf", &x);}
#define mes(x, d) {memset(x, d, sizeof(x));}
#define do(i, x) for(i = 0; i < x; i ++)
#define dod(i, x, l) for(i = x; i >= l; i --)
#define doe(i, x) for(i = 1; i <= x; i ++)
int n;
LL x;int main()
{LL res, child_num;scanf("%d %I64d", &n, &x);res = x;child_num = 0;LL total_num = 0;LL d;char op[2];for(int i = 0; i < n ;i ++){scanf("%s %I64d", op, &d);if(op[0] == '+')res += d;else if(op[0] == '-'){total_num ++;if(d <= res){res -= d;child_num ++;}}}printf("%I64d %I64d\n", res, total_num - child_num);return 0;
}

Problem_B(CodeForces 686B):
题意:
你能做如下操作:
[l, r]保证长度为偶数。
\[ 将(l, l+1), \cdots ,(r-1, r)交换。\]
你最后的目的是将其交换成一个非递减的数列。
请将交换过程中的l, r输出。

思路:
n<100, 可以很暴力的去冒泡, 因为最差的情况也不会超过100*100次。
而题目给的是2W次以内。
昂, 我比较傻逼的写了一个贪心。
每次去找最长的能够交换的区间, 然后进行操作, 一直到不能操作为止。

代码:

#include <cmath>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <ctime>
#include <set>
#include <map>
#include <list>
#include <stack>
#include <queue>
#include <string>
#include <vector>
#include <fstream>
#include <iterator>
#include <iostream>
#include <algorithm>
using namespace std;
#define LL long long
#define INF 0x3f3f3f3f
#define MOD 1000000007
#define eps 1e-6
#define MAXN 110
#define MAXM 100
#define dd {cout<<"debug"<<endl;}
#define pa {system("pause");}
#define p(x) {printf("%d\n", x);}
#define pd(x) {printf("%.7lf\n", x);}
#define k(x) {printf("Case %d: ", ++x);}
#define s(x) {scanf("%d", &x);}
#define sd(x) {scanf("%lf", &x);}
#define mes(x, d) {memset(x, d, sizeof(x));}
#define do(i, x) for(i = 0; i < x; i ++)
#define dod(i, x, l) for(i = x; i >= l; i --)
#define doe(i, x) for(i = 1; i <= x; i ++)
int n;
int a[MAXN];int find_(int l, int r, bool is_l)
{if(l > r) return l - 1;for(int i = l; i + 1 <= r; i +=2)if((a[i] <= a[i + 1] && is_l == false) || (a[i] > a[i + 1] && is_l == true)) return is_l ? i : i - 1;return is_l ? -1 : ((r - l + 1) % 2 == 0 ? r : r - 1);
}void move_(int l, int r)
{for(int i = l; i < r; i += 2){int temp = a[i];a[i] = a[i + 1];a[i + 1] = temp;}
}
void show()
{for(int i = 1; i <= n; i ++)printf("%d ", a[i]);printf("\n");
}void deal()
{int l = 1, r;while(true){l = find_(1, n, true);if(l == -1){l = find_(2, n, true);if(l == -1) return ;}r = find_(l + 2, n, false);if(r == -1) return;// printf("==>%d %d\n", l, r);move_(l, r);// show();// paprintf("%d %d\n", l, r);}
}   int main()
{bool flag = true;a[0] = 0;scanf("%d", &n);flag = n == 1;for(int i = 1; i <= n; i ++){scanf("%d", &a[i]);if(a[i] > a[i - 1] && n && i > 1) flag = false;}if(!flag)deal();return 0;
}

Problem_C(CodeForces 686C):
题意:
给你n, m,将其转换成对应的7进制
然后从转换后的[0, n-1]中任选一个数, 再从转换后[0,m-1]中任选一个数。
必须要保证每个数字只出现一次, 即不会有重复的数字。
问你这样的组合有多少种。

思路:
因为是7进制, 而且要保证每位都不一样, 7进制只有7个数而已, 所以如果两个数的长度超过了7, 肯定不行。
\[ 再则, 要注意:转换成对应的7进制! 比如8, 转换成7进制, 是11, 那么这8个数就成了[00, 01, 02, \cdots , 10].而不是[0, 1, 2, 3, \cdots , 10]\]
\[ 所以可以先求出它们的长度len_n, len_m, 然后判断长度。\]
枚举0~n, 0~m。 将其分解成对应的7进制后判断是否出现相同数字即可。

代码:

#include <cmath>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <ctime>
#include <set>
#include <map>
#include <list>
#include <stack>
#include <queue>
#include <string>
#include <vector>
#include <fstream>
#include <iterator>
#include <iostream>
#include <algorithm>
using namespace std;
#define LL long long
#define INF 0x3f3f3f3f
#define MOD 1000000007
#define eps 1e-6
#define MAXN 1000000
#define MAXM 10
#define dd {cout<<"debug"<<endl;}
#define pa {system("pause");}
#define p(x) {printf("%d\n", x);}
#define pd(x) {printf("%.7lf\n", x);}
#define k(x) {printf("Case %d: ", ++x);}
#define s(x) {scanf("%d", &x);}
#define sd(x) {scanf("%lf", &x);}
#define mes(x, d) {memset(x, d, sizeof(x));}
#define do(i, x) for(i = 0; i < x; i ++)
#define dod(i, x, l) for(i = x; i >= l; i --)
#define doe(i, x) for(i = 1; i <= x; i ++)
int n, m;
int left_len = 0, right_len = 0;int check(int x, int y)
{int used[MAXM] = {0};for(int i = x, k = 0; k < left_len; k ++, i /= 7)used[i % 7] += 1;for(int i = y, k = 0; k < right_len; k ++, i /= 7)used[i % 7] += 1;for(int i = 0; i < 7; i ++)if(used[i] > 1) return 0;return 1;
}int main()
{scanf("%d %d", &n, &m);left_len = right_len = 1;for(int i = 7; i < n; i *= 7)left_len ++;for(int i = 7; i < m; i *= 7)right_len ++;int ans = 0;if((left_len + right_len) <= 7){for(int i = 0; i < n; i ++)for(int j = 0; j < m; j ++)ans += check(i, j);}printf("%d\n", ans);return 0;
}

Orz 有点头痛,剩下的等明天再补。今天元气大伤

转载于:https://www.cnblogs.com/By-ruoyu/p/5674712.html

Codeforces Round #359 div2相关推荐

  1. codeforces Round#429 (Div2)

    2017-08-20 10:00:37 writer:pprp 用头文件#include <bits/stdc++.h>很方便 A. Generous Kefa codeforces 84 ...

  2. Codeforces Round#310 div2

    C题:这题说的是套娃,如果做题的时候知道是套娃,那就好理解多了 规则1:套娃A可以放到套娃B里面,当且仅当套娃B没有放在其他套娃里面 规则2:套娃A放在套娃B里面,且套娃B没有放在其他套娃里面,那么可 ...

  3. Codeforces Round #359 (Div. 2) C. Robbers' watch 搜索

    题目链接:http://codeforces.com/contest/686/problem/C 题目大意: 给你两个十进制的数n和m,选一个范围在[0,n)的整数a,选一个范围在[0,m)的整数b, ...

  4. Codeforces Round 361 div2

    雪崩,全错掉了GG.前两道题相对之前的难度大一点啊,不过A题有个循环应该是从0开始而不是1开始这样的低级错误不应该犯.B题差不多是一个BFS,但是我当时始终绕着最短路径写来写去,一直各种TLE与WA. ...

  5. Codeforces Round #360(div2)

    考完试的晚上,打了场codeforces,主要感觉由于睡眠不够,最后差了点劲啊,C题基本上都过了,但忙中出错最后把数组调小易于debug后再提交又忘记改回来了,看到Runtime Error自己竟没反 ...

  6. codeforces round 416 div2补题

    第一题,水题 A. Vladik and Courtes #include<bits/stdc++.h> using namespace std; int main() {long lon ...

  7. Codeforces Round #359 (Div. 2) C. Robbers' watch 暴力枚举

    题目链接 题意是真的烦,到最后才知道是n个m其实就是限定表的两个时区的位数,所以所当数不够填满时区的时候前边自动补零 思路:首先来说不能有重复的数字的话,小时和分钟的总位数大于7肯定不行. 7的7次方 ...

  8. codeforces round 421 div2 补题 CF 820 A-E

    A Mister B and Book Reading  O(n)暴力即可 #include<bits/stdc++.h> using namespace std; typedef lon ...

  9. codeforces round #576 div2 D Welfare State(线段树)[单点修改+区间修改]

    题意:有一些数字,以及一些操作.操作一是单点修改,输入1 b c,将位置b改成c,操作二是输入2 a,将不大于a的数全部改成a.求更改完毕后的数. tag的运用:tag是对被覆盖区间上加一个标记,那么 ...

最新文章

  1. Type Ⅰ error(false positive) Type Ⅱ error(false negative)
  2. Python 技巧篇-用print打印输出但不换行方法
  3. 神经网络中,正则化L1与L2的区别、如何选择以及代码验证
  4. 将html保存为图片,html2canvas 将html代码转为图片并保存下来
  5. 盘点物联网常用的八种通信协议
  6. 计算机一级在线解析,2016年计算机一级试题及答案解析
  7. 跨境移动互联网的魅力演绎,hao123无论成就下一个条目?
  8. SVN客户端安装与常用操作(超详细)
  9. ofd 文件发票解析
  10. Linux 线程及线程间通信
  11. libtorrent实现bt客户端程序
  12. GrabCut提取图像前景色MATLAB代码实现(含解释说明)
  13. spring5.1.3使用篇-数据访问
  14. 2023服装零售erp有哪些,5款主流服装零售erp软件真实测评!
  15. Kotlin语言中的泛型设计哲学
  16. win10计算机无法访问,如果win10系统的计算机磁盘无法打开并提示拒绝访问,该怎么办?...
  17. 【元器件】2.无源晶振
  18. 颜色偏差裙子测试软件,裙子到底是白金还是蓝黑?你的大脑在捣鬼
  19. ORA-22858 数据类型的更改无效
  20. 今日分享主题:关于抖音上抖币充值的介绍

热门文章

  1. java动画闪烁_优化Java动画编程中的显示效果
  2. python 矩阵点乘_Day276:普通乘积、矩阵点乘、克罗内克积
  3. IllegalThreadStateException
  4. 电脑技巧:如何彻底关闭电脑右下角闪烁弹窗广告?
  5. Java技术:Optional 相关用法介绍笔记
  6. 收集 48 个 JavaScript 代码片段,仅需 30 秒就可理解(值得收藏)
  7. memcached 适用的场景
  8. visio调整形状位置_VISIO绘图技巧—三相桥式全控整流电路绘制
  9. python模块下载失败_python 安装tushare模块出错的一个解决方法
  10. haproxy服务启动命令_安装haproxy和haproxy命令