首页 > TAG信息列表 > getchar
2020年湖南省大学生计算机程序设计竞赛
A 2020 一个简单的 DP,f[i]表示前i位最多能选择的子串个数。 转移首先不选可以得到f[i] = f[i-1],其次如果当前的后缀是2020的话就f[i] = max( f[i] , f[i-4]+1) #include<bits/stdc++.h> using namespace std; const int N = 1e5+5; char s[N]; int f[N]; int32_t main() {高精度斐波那契快读代码(解决第⑩篇文章问题
相关链接:https://www.cnblogs.com/TFLSc1908lzs/p/13531804.html 满分代码: 1 #include <bits/stdc++.h> 2 using namespace std; 3 int n,tot; 4 int ans[105][1000005]; 5 void figure(int x){ 6 for(int i=3;i<=x;i++){ 7 for(int j=1;j<=tot;j++平面二维点对问题(转化一维)
【元素周期表】通过观察点对构造规律,转化成矛盾或者传递关系 平面坐标系内,给出p个点对(x,y),如果有3个同行或者同列的点对,那么他们组成的“矩形四个角”就都被覆盖,求最少添加多少点使得所有n*m区域都被覆盖。 部分分:p=0,考虑构造,发现只要靠边一行一列都填满就可以满足要求 正解:把[Editorial] Codeforces Contest 1726
A. Mainak and Array 显然如果 \([l,r]\) 不包括两端那么就不会对答案有影响,那么直接枚举包括两端的情况即可。 /* author : Gemini date : September 6th, 2022 url : https://codeforces.com/contests/1726/A */ #include<bits/stdc++.h> using namespace std; template<typenac语音键盘输入和屏幕输出
键盘输入和屏幕输出 单个字符的输入输出 getchar字符输入 putchar字符输出 缓冲区优先 每次只读一个字符 输出输入量不加引号,只有转义字符加 实践:大小写转换 注意:getchar()没有参数,函数的返回值就是从终端键盘读入的字符 使用方法 ch=getchar(); 而不是 getchar(ch); 小写比大写的Codeforces Round #818 (Div. 2) CF1717 解题报告
Codeforces Round #818 (Div. 2) CF1717 解题报告 A Description 求出满足\(1\le a,b\le N,\frac{\operatorname{lcm}(a,b)}{\gcd(a,b)}\le 3\)的二元组\((a,b)\)的数目。 \(N\le 10^8\) Sol 由\(a\times b=\operatorname{lcm}(a,b)\times \gcd(a,b)\)转化上述分式,可得 \[a\timesThe 2022 Hangzhou Normal U Summer Trials
A. Hello, ACMer! 这题就是找到hznu的个数 #include<bits/stdc++.h> using namespace std; int32_t main() { string s; cin >> s; int cnt = 0; for( int i = 0 ; i + 3 < s.size() ; i ++ ){ if( s[i] == 'h' && s[i+1]CF1710D Recover theTree
题意: 给定每个区间是不是连通块,还原这棵树。(\(n\leqslant 2000\)) 题解: 我肯定是做不出来,也不理解是怎么想的。不如直接讲做法,然后证明正确性,也是对 wc 题解的补充。 先贴个代码: #include<bits/stdc++.h> using namespace std; const int maxn=2e5+10; const int mod=1e9+7; #def[LuoGu8482]Number
Description [LuoGu8482]Number Solution 可以当作一种经典案例 给定数字后乘积如何最大 Code #include<bits/stdc++.h> using namespace std; #define N 800010 struct rec { int nxt, ver, val; } t[N]; struct Rec { int u, v, w; } e[N]; int n, m, q, cnt, tot, u, v; intC语言学习指针一
#include <stdio.h> main() { int a,b,c; int *e; int d[2]={0}; e=&a; printf("%d,%d\n",a,&a); printf("%d,%d\n",a,a); printf("%d,%d\n",b,&b); printf("%d,%d\n",c,&ARC097E题解
感觉挺一眼的啊? 众所周知如果序列 \(i\) 要通过相邻两项交换变成 \(p_i\),那么交换次数就是 \(\sum_{i<j}[p_i>p_j]\),或者说线段 \((i,p_i)\) 相交的对数。 于是一个很 naive 的想法就是枚举最终序列的黑白状态,但是这样显然行不通。 一看数据范围,\(n=2000\),是不是能在上面做点手脚A层邀请赛5
A. 赤 我本来想考虑一下当a=n或b=n的情况,就以另一个变量作为关键字排序,如果a=n就选喜欢吃豆干可能性大的前b个两种食物全给,后面的只给干脆面,结果还交了个0分…… 鉴于这道题的正解既涉及期望,又需要什么wqs二分还套两层,还是来日方长吧…… Cat只有被捕捉的份还不够去捕捉别的猫……CF1368B
题目简化和分析: 因为要求长度最小,所以我们每个字符就应该发挥最大的价值,不会有没有作用的字符。 设有 \(x_1\) 个 \(c\) ,\(x_2\) 个 \(o\) ,\(x_3\) 个 \(d\) ,\(x_4\) 个 \(e\) ,\(x_5\) 个 \(f\) ,\(x_6\) 个 \(o\) ,\(x_7\) 个 \(r\) ,\(x_8\) 个 \(c\) ,\(x_9\) 个 \(e\) ,\(x_{10}\)Coast Length——奇奇怪怪的OJ
Hi,我是OIer一枚。 我太弱了 题目链接: Kattis 官网 VJudge 镜像题 题面 问海岸的长度和。 其中,岛中湖,岛中湖中岛……不算。 思路 我们在整个图外面加一圈 $ 0 $,这样我们就能轻松处理岛了。 从最外圈遍历 $ 0 $ ,遍历到的都是海。 然后,对于每块海,看它周围有几个陆地。 每一个陆地AtCoder Beginner Contest 258
A - When? 问21:00后的第k分钟的时间 #include<bits/stdc++.h> using namespace std; const int N = 2e5+5; int n , a[N] , cnt , k; int32_t main(){ int n , h = 21 , m = 0; cin >> n; m += n; h += m / 60 ; m %= 60; printf("%02d:%02d\n" , h ,2022/8/16 总结
A.数字 第一眼以为是数论,第二眼是 \(\mathtt{DP}\); 本题又名卡常技术综合运用,如何将 30s 的大样例卡进 10s; Solution \(\mathtt{DP+BitSet}\); 如果直接 \(\mathtt{DP}\),时间复杂度最坏会到 \(10^{10}\),肯定过不了。这时就需要请出我们的 \(\mathtt{BitSet}\)了; 开一个CF1110E Magic Stones
题目链接: 洛谷 Codeforces Solution 以前做过这种题,比这题难得多,所以看到就秒了,加强版:[NOIP2021] 方差。 再来推一遍: 如果每次操作 \(a_i\),那么差分数组的变化为: \[d_i=a_i-a_{i-1}=a_{i-1}+a_{i+1}-a_i-a_{i-1}=a_{i+1}-a_i=d_{i+1}\\ d_{i+1}=a_{i+1}-a_i=a_{i+1}-a_{i-1}-a_{i+2022/8/15 总结
题单贴贴 A.Begin 这是道结论题。但令人惊奇的是我完全没往这方面想用奇怪的策略做居然得到了 \(\mathtt{80pts}\); Solution 观察样例,再结合一点数学知识,我们可以知道当每一对 \(a\) 和 \(b\) 相差尽可能小的时候,答案有最小值。考虑排序,但 \(min\) 值与 \(max\) 值这一对产生拉格朗日插值优化DP
拉格朗日插值优化DP 模拟赛出现神秘插值,太难啦!! 回忆拉格朗日插值是用来做什么的 对于一个多项式\(F(x)\),如果已知它的次数为\(m - 1\),且已知\(m\)个点值,那么可以得到 \[F(k) = \sum_{i=1}^{m} y_i \prod_{i \neq j} \frac{k-x_j}{x_i - x_j} \]所以,如果我们知道要求的东西是一个次C getchar putchar and break when press escape key
//main.c#include <stdio.h> void getPutChar(); main() { getPutChar(); } void getPutChar() { char c; while((int)(c=getchar())!=27) { putchar(c); } } Compile cc main.c -o h1 Run ./h1 //main.c #include <[复习] 暑期打板
高考完了,耍了快一个月,开始边耍边学习8.2测试
A.蓝蓝的棋盘 dp题 因为蓝蓝走过棋之后下一个人是先手,可以把问题简化为一个保证先手且不断减少的棋盘。 设计状态:dp[i]表示在第i位下,先后手最优策略下的差值,因为是先手减去后手,所以也是最大差值 从n到0倒序dp,设计转移方程为:dp[i]=max(a[y]-dp[y])\(i<y \leq i+m\) 可用单调队列来ACSX: Aug, 2022
8.1 T2数据水,只判4条边界就可以85pts,随机化2e5个非整点判断可以AC。 T2: 正解是扫描线,但是没人写。 T1 wisdom 我们采用一种贪心,假设当前已经处理完 u 的所有儿子子树,考虑把 u 染成什么颜色最优 // ubsan: undefined // accoders #include <bits/stdc++.h> #define pii pair<int2022.7.28 模拟赛
2022.7.28 模拟赛 \(\to link\leftarrow\) 目录2022.7.28 模拟赛计算器对称轴互质签到题 计算器 嗯,显然是个爆搜 算一下复杂度 设第 \(i\) 个部位装备总数为 \(cnt_i\),那么总共可能搜到的情况共有 \(\prod \max(cnt_i,1)\) 显然最坏情况下所有 \(cnt_i\) 相同 我们令它们都等于 \(【牛客网NC13221数码】题解
题目链接 题目 给定两个整数 l 和 r ,对于所有满足1 ≤ l ≤ x ≤ r ≤ 10^9 的 x ,把 x 的所有约数全部写下来。对于每个写下来的数,只保留最高位的那个数码。求1~9每个数码出现的次数。 思路 显然数论分块 然后统计一下每一块内1到9出现的情况乘上 \(n/l\) 即可 Code // Problem: