freopen

20191017

一个人想着一个人 提交于 2019-12-01 17:30:55
T1 100pts (我不会告诉你我**考试时推了40分钟的错式子) 找规律。 发现这些数是 \(9,279,4779,67779,877779,10777779,127777779\cdots\) ? 结果考完试都说是等差 \(\times\) 等比 \(\cdots\) (mdzz我要学高中数学) #include<bits/stdc++.h> #define R register int #define ll long long using namespace std; namespace Luitaryi { inline int g() { R x=0,f=1; register char ch; while(!isdigit(ch=getchar())) f=ch=='-'?-1:f; do x=x*10+(ch^48); while(isdigit(ch=getchar())); return x*f; } const int M=233333,Inv=25926; inline int qpow(int a,int b) { R ret=1; for(;b;b>>=1,a=1ll*a*a%M) if(b&1) ret=1ll*ret*a%M; return ret; } int T,n,ans; inline void main() { freopen("bug

10 15

耗尽温柔 提交于 2019-12-01 15:22:41
考挂了 中午和某位强者去吃饭他说他状态不好 可能会挂 结果又是快Ak 了 然后我挂了 这就是 强者定律吧说着我要挂了 然后别人挂了... 今天得分 64 分T1 52 分 T3 12 分。丢人 and 很难受 也让我看清了生活的真相。世界上只有一种英雄主义就是 认清生活的真相之后依然还热爱生活。 有m个括号坏掉了 考虑组合 16分 爆搜 32 分dp 如何dp?这个dp 和普通的 括号匹配方案数即卡特兰数n^2递推不一样因为不需要记录还有多少个右括号已经用过了。 但是m个括号坏掉了 所以右括号也要记录个数 怎样能把整个括号序列都表达出来呢? 很有趣的问题 可以设 f[i][j][k] 表示已经形成了j个匹配 有效左括号为j 还剩下k个右括号的方案数。 //#include<bits/stdc++.h> #include<iostream> #include<queue> #include<iomanip> #include<cctype> #include<cstdio> #include<deque> #include<utility> #include<cmath> #include<ctime> #include<cstring> #include<string> #include<cstdlib> #include<vector> #include<algorithm>

10.16 考试解题报告

北城余情 提交于 2019-12-01 12:27:00
T1 #题目描述 : 对于给定的一个正整数n, 判断n是否能分成若干个正整数之和 (可以重复) , 其中每个正整数都能表示成两个质数乘积。 #输入描述: 第一行一个正整数 q,表示询问组数。 接下来 q 行,每行一个正整数 n,表示询问。 #输出描述: q 行,每行一个正整数,为 0 或 1。0 表示不能,1 表示能。 #样例输入: 5 1 4 5 21 25 #样例输出: 0 1 0 1 1 #数据范围: \(30\%\) 的数据满足: \(q\leq20, n\leq20\) \(60\%\) 的数据满足: \(q\leq10000, n\leq5000\) \(100\%\) 的数据满足: \(q\leq10^5, n \leq 10^{18}\) 解题思路: 看到这个奇葩的数据范围,我先看到了 \(100\%\) 的 \(n \leq 10^{18}\) 然后我就不知道怎么想的,写了一个不知道能不能跑过60分的完全背包? code: #include <bits/stdc++.h> #define N 5010 #define ll long long #define M 1010 #define _ 0 using namespace std; map<int, int> mp; bool vis[N], b[N]; int q, m, mx, mi = 99999999

2019.10.15考试解题报告

£可爱£侵袭症+ 提交于 2019-12-01 10:09:54
总结 期望得分: \(30 + 30 + 0\) 实际得分: \(30 + 0 + 0\) 炸了,这次考试完全炸了, \(T1\) 只会打暴力, \(T2\) 神奇大 \(DP\) , \(T3\) 概率期望迷 \(T1\) 想不出 \(70\) 分来,只能默默 \(orz\ cgp\) 大佬 \(T2\) 打错了…… \(awsl\) \(T3\) 是个鬼…… \(毒\) 不懂 思路 T1 先打 \(30\) 分暴力,这个很好打 然后 \(70\) 分 \(O(n\log^2)\) 怎么写呢 考虑二分答案 二分的左端点为 \(0\) ,右端点为整整两个序列中的最大值 \(maxn\) , \(len\) 先计算出取出的区间长度的中间值,然后进行二分,用 \(upper\_bound\) 计算出 \(A\) 序列中在 \(mid\) 左边的数的个数 \(now1\) ,以及 \(B\) 序列中在 \(mid\) 左边的数的个数 \(now2\) ,若他们两个的长度大于 \(len\) 就缩小范围到 \(mid\) 左边,相应的缩小 \(r1\) 和 \(r2\) 的范围,反之则缩小范围到 \(mid\) 右边,相应扩大 \(l1\) 和 \(l2\) ,最后输出 \(ans\) 就好了 满分咋做? ( \(from\ solution\) ) 实际上我们可以进行一波分类讨论

Codeforces Round #592 (Div. 2)

那年仲夏 提交于 2019-12-01 08:25:09
传送门 A. Pens and Pencils 签到。 Code #include <bits/stdc++.h> #define MP make_pair #define fi first #define se second #define sz(x) (int)(x).size() #define all(x) (x).begin(), (x).end() // #define Local using namespace std; typedef long long ll; typedef pair<int, int> pii; const int N = 1e5 + 5; int a, b, c, d, k; void run() { cin >> a >> b >> c >> d >> k; for(int x = 1; x < k; x++) { int y = k - x; if(x * c >= a && y * d >= b) { cout << x << ' ' << y << '\n'; return; } } cout << -1 << '\n'; } int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cout << fixed << setprecision(20);

2019 China Collegiate Programming Contest Qinhuangdao Onsite

☆樱花仙子☆ 提交于 2019-12-01 08:11:25
传送门 D - Decimal 题意: 询问 \(\frac{1}{n}\) 是否为有限小数。 思路: 拆质因子,看是不是只包含2和5即可,否则除不尽。 Code #include <bits/stdc++.h> #define MP make_pair #define fi first #define se second #define sz(x) (int)(x).size() using namespace std; typedef long long ll; typedef pair<int, int> pii; const int N = 1e5 + 5; int t,n; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); #ifdef Local freopen("../input.in", "r", stdin); freopen("../output.out", "w", stdout); #endif cin>>t; while(t--){ cin>>n; while(n%2==0){ n/=2; } while(n%5==0){ n/=5; } if(n!=1)cout<<"Yes\n"; else cout<<"No\n"; } return 0; } E - Escape

1008 模拟赛

◇◆丶佛笑我妖孽 提交于 2019-12-01 07:12:30
写在前面 \(Day1\) ,这场考试难度适中,我觉得海星 \(T1\) 有理树 \((SBT)\) 链接 \(Idea\) \(Stern-Brocot\ Tree \to SBT\) 容易发现在每一行都存在 \(\displaystyle \frac{m}{n} \lt \frac{m+m'}{n+n'} \lt \frac{m'}{n'}\) 根据图还发现,当 \(\displaystyle\frac{a}{b}\) 小于当前节点时,向左走 \((L)\) ;大于当前节点时,向右走 \((R)\) 并且发现题目中不存在向下走的情况,去掉多余点后,发现这是一颗完全二叉树(然而并没有什么卵用 ,请忽略这行话 设当前节点为 \(\displaystyle \frac{m}{n}\) ,则 当 \(\displaystyle \frac{a}{b} \gt \frac{m}{n}\) 时, \(a \times n>b \times m\) ; 当 \(\displaystyle \frac{a}{b}<\frac{m}{n}\) 时, \(a \times n<b \times m\) ; 根据这个条件进行判断 什么时候结束呢? 当 \(a \times n=b \times m\) 时。原因很简单 结束时 \(\displaystyle \frac{m}{n} = \frac{

模拟赛小结:2015-2016 ACM-ICPC, NEERC, Northern Subregional Contest

大城市里の小女人 提交于 2019-12-01 07:03:56
2015-2016 ACM-ICPC, NEERC, Northern Subregional Contest 2019年10月11日 15:35-20:35(Solved 8,Penalty 675) 这两天好像回寝室太早了,导致早早地就躺在床上吸引蚊子。到睡觉的点的时候,蚊子们就已经嗷嗷待哺地聚集到了我的床边。凌晨2:00~4:00的时候被烦得,只能下床喷个六神+开个空调QwQ。早上起不来导致很多东西都咕咕咕了( 比如今日中午的市中心觅食计划 )。 以后不出意外的话,我们队应该每周三&周六的这个时间打一场模拟赛吧。虽然没有传闻中咖啡鸡一天一套题那么恐怖,不过强度感觉差不多。有没有小伙伴要一起打的呀?(就是你,我的僵尸粉) 昨天这场感觉离金只差一口气了。不过最后还是落在银区前面的部分。 A:00:06(+)Solved by Dancepted 开场 翻翻题册 看到A题题面很短,读了一下发现是个签到。 代码: #include <bits/stdc++.h> #define fast ios::sync_with_stdio(false), cin.tie(0), cout.tie(0) #define N 100005 #define M 100005 #define INF 0x3f3f3f3f #define mk(x) (1<<x) // be conscious if

10.11 模拟赛(QBXT国庆Day3)

六眼飞鱼酱① 提交于 2019-12-01 04:58:47
DAY 3 QBXT T1 像个SB题, 不过出了点小锅; 我的思路就是 把一个字符串的答案字符串的长度赋成 \(len-1\) , 然后每一位都赋成 \(a\) ; 记录一个 \(add(len)\) 表示先前出现过多少长度为 \(len\) 的不同字符串; 处理当前字符串时, 先从map里扒, 扒不到就把他的答案赋为 \(len-1个a\) , 然后再加上 \(add(len)\) ; (在考场上没想到把 \(add(len)\) 变为26进制分别加)。。。。。 给的正解是无损压缩(没错我也没听说过); 就是把所有的字符串sort一遍挨个赋 \(a, b, c, d, e.....\) , #include <iostream> #include <cstdio> #include <algorithm> #include <string> #include <cstring> #include <map> #define ull unsigned long long const ull base = 2333; using namespace std; map<ull , int> mp; int n, id; struct node { char a[55], ans[55]; int len, id; }e[1005]; int add[55]; void solve

AtCoder Regular Contest 098

一个人想着一个人 提交于 2019-12-01 04:55:56
传送门 C - Attention 前后缀搞一搞即可。 Code #include <bits/stdc++.h> #define MP make_pair #define fi first #define se second #define sz(x) (int)(x).size() //#define Local using namespace std; typedef long long ll; typedef pair<int, int> pii; const int N = 3e5 + 5; int n; char s[N]; int pre[N], suf[N]; void run() { cin >> s + 1; for(int i = 1; i <= n; i++) { pre[i] = pre[i - 1]; if(s[i] == 'W') ++pre[i]; } suf[n + 1] = 0; for(int i = n; i >= 1; i--) { suf[i] = suf[i + 1]; if(s[i] == 'E') ++suf[i]; } int ans = n + 1; for(int i = 1; i <= n; i++) { ans = min(ans, pre[i - 1] + suf[i + 1]); } cout << ans << '