putchar

Codeforces Round #496 (Div. 3) C D E1 E2 F

丶灬走出姿态 提交于 2020-01-31 21:54:48
Codeforces Round #496 (Div. 3) Problem A 题意: 思路: Problem B 题意: 思路: Problem C 题意: 给出n个数,询问最少删除几个数使得剩下的每一个数总能找到对应的另一个数使得两个数的和是 2 x 2^x 2 x (x为非负整数) 思路: 枚举每个数形成 2 0 2^0 2 0 ~小于2*1e9的最大的 2 x 2^x 2 x 所需的另一个数,只要存在当前的数就是OK的,当然 要排除自身是 2 x 2^x 2 x 然后找到的另一半也是 2 x 2^x 2 x 并且是自己的情况 # include <bits/stdc++.h> using namespace std ; # define ll long long # define for1(i,a,b) for (int i=(a);i<=(b);i++) # define for0(i,a,b) for (int i=(a);i<(b);i++) # define rof1(i,a,b) for (int i=(a);i>=(b);i--) # define rof0(i,a,b) for (int i=(a);i>(b);i--) # define fi first # define se second # define pb push_back # define

蓝桥杯打印十字图

徘徊边缘 提交于 2020-01-30 23:00:01
putchar函数的作用:向终端输出一个字符。 (1)putchar函数只能用于单个字符的输出,且一次只能输出一个字符。 (2)在程序中使用putchar函数,务必牢记:在程序(或文件)的开头加上编译预处理命令(也称包含命令),即:#include " stdio.h " #include<bits/stdc++.h> using namespace std; char s[220][220]; int main() { int n; scanf("%d",&n); int o=n*4+5; int l=2,a=0; memset(s,'.',sizeof(s)); n++; while(n--) { for(int i=l; i<o-l; i++) s[a][i]=s[i][a]=s[i][o-a-1]=s[o-a-1][i]='$'; s[a+1][l]=s[l][a+1]=s[l][l]='$';//左上 s[a+1][o-1-l]=s[l][o-a-2]=s[l][o-1-l]='$';//右上 s[o-a-2][l]=s[o-1-l][a+1]=s[o-1-l][l]='$';//左下 s[o-a-2][o-1-l]=s[o-1-l][o-a-2]=s[o-1-l][o-1-l]='$';//右下 a+=2; l+=2; } for(int i=0; i<o; i++)

文件与键盘输入与输出

穿精又带淫゛_ 提交于 2020-01-25 01:45:05
之前关于getchar的使用有个误区。getchar是一句输入结束后,挨个挨个读取的。 getchar用法 int getchar(void),从标准输入中一次读取一个字符。可以从键盘读入,也可以从文件读入。 从文件读入的方法: #include<stdio.h> FILE *fp; void main(){ char c; fp=freopen("test.txt","r",stdin); while((c=getchar())!=EOF){ putchar(c); } } 注意while((c=getchar())!=0),c=getchar()两边要再加括号。判断的是c的值,c从getchar读入后的值。一开始总以为c=getchar()会返回个1什么的。 gets()从标准输入中一次读入一句。可以键盘读入,可以文件读入。 从文件读入方法: #include<stdio.h> #include<string.h> FILE *fp; void main(){ char getstr[128]; char tmpstr[128]; char matchstr[128]; fp=freopen("test.txt","r",stdin); while(gets(getstr)){ if(strcmp(getstr,tmpstr)==0){ if(strcmp(getstr

递归实现十进制向二进制的转化

大憨熊 提交于 2020-01-25 00:32:39
# include <iostream> using namespace std ; void toBinary ( unsigned long n ) { int i ; i = n % 2 ; if ( n >= 2 ) toBinary ( n / 2 ) ; putchar ( i == 0 ? '0' : '1' ) ; return ; } int main ( ) { toBinary ( 9 ) ; } 有人可能会纳闷,数字是不是倒序输出了?因为第一个i其实是最后一位数,但是在if判断之后程序使用putchar输出了i。 但实际上并不是这样的,if结构使函数进入了递归中,导致最先输出执行putchar语句的反而是递归最深层,也就是二进制第一位!!! 来源: CSDN 作者: 戎码关山 链接: https://blog.csdn.net/dghcs18/article/details/104076404

5.30模拟赛

泪湿孤枕 提交于 2020-01-20 10:06:14
  5.30了 我...我不知道我究竟该干什么。考试一塌糊涂 我只是不想思考么我想并不是我只是缺乏一些品质罢了吧,只会刷题算什么我要做考试的王者。 今天的失败是下次我的蜕变 ! 我瞧不起那些弱的人。 我的妈妈和爸爸以及姐姐对我很好 我有什么理由再去胆怯。 我的爷爷和奶奶都等着我去上一个好大学,我有什么理由丧失斗志。 我的自己还有很多能力,我有什么理由不去奋斗。 今天是数论专题尽管是这样我也是近乎倒数,我这是怎么回事明明有能力却发现不出题目的性质,原因?用心啊。 首先N==1 时我们很显然的发现了答案应该是5吧。。这个样例使我爆零了,我算服了。 以后注意 想不出来样例就一直想 想不出正解很正常。样例是我和石神探讨下的得出的结论是这样的图: 观察中间的两条边发现我们看成重叠的但是却是有两条这样的边。 首先把中间的边删掉 然后这样的生成树有8种。然后对半删 也就是中间仍有连线 这样方案数是16种 4*4 然后删掉中间的一条边 知道要说什么了吧 下次我们删掉中间的另外一条边 16 刚好 答案为40. 实话 这道题没有样例解释且题目描述不清晰 生成树不同在此题的定义是指什么我怎么知道?所以我爆零了感觉很不错!不是我不会是这道题出的不好。 我不怪我自己。现在分析一下这道题怎么写 30分好像是可以爆搜的但是及其难写 50分矩阵树定理回去我补一下这个知识点。

print multiple lines by getchar and putchar

别说谁变了你拦得住时间么 提交于 2020-01-14 10:39:40
问题 Im a beginner learning The C Programming language and using Microsoft visual C++ to write and test code. Below program in C from text(section 1.5.1) copy its input to its output through putchar() and getchar(): #include <stdio.h> int main(void) { int c; while ((c = getchar()) != EOF) putchar(c); return 0;} The program print characters entered by keyboard every time pressing ENTER.As a result,I can only enter one line before printing. I can't find a way to enter multi-line text by keyboard

【AtCoder】ARC067

一世执手 提交于 2020-01-08 00:48:30
ARC067 C - Factors of Factorial 这个直接套公式就是,先求出来每个质因数的指数幂,然后约数个数就是 \((1 + e_{1})(1 + e_{2})(1 + e_{3})\cdots(1 + e_k)\) #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define pb push_back #define space putchar(' ') #define enter putchar('\n') #define eps 1e-10 #define MAXN 100005 //#define ivorysi using namespace std; typedef long long int64; typedef unsigned int u32; typedef double db; template<class T> void read(T &res) { res = 0;T f = 1;char c = getchar(); while(c < '0' || c > '9') { if(c == '-') f = -1; c = getchar(); } while(c >=

Are getchar() and putchar() functions or macros?

不羁岁月 提交于 2020-01-05 00:49:40
问题 I referred to two reliable sources for the information and both seems to have different definitions of the same thing: http://www.cplusplus.com/reference/clibr%E2%80%A6 http://www.ocf.berkeley.edu/~pad/tigcc/doc/html/stdio_fputchar.html The first source says putchar() is a function, as is getchar() , but in the second link it says putchar() is a macro. My book says getchar() is a macro. Which is correct? 回答1: getchar and putchar are functions, but may additionally be defined as macros.

Are getchar() and putchar() functions or macros?

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-05 00:48:58
问题 I referred to two reliable sources for the information and both seems to have different definitions of the same thing: http://www.cplusplus.com/reference/clibr%E2%80%A6 http://www.ocf.berkeley.edu/~pad/tigcc/doc/html/stdio_fputchar.html The first source says putchar() is a function, as is getchar() , but in the second link it says putchar() is a macro. My book says getchar() is a macro. Which is correct? 回答1: getchar and putchar are functions, but may additionally be defined as macros.

点分治

依然范特西╮ 提交于 2019-12-30 02:21:56
点分治是个好东西 学长说今年省选day2 T3 有40分可以是点分治 有点难受如果我当初学了点分治该有多好啊。 所谓点分治就是在树上搞一些分治操作让复杂度大大降低。 这道题询问树上是否有任意两点之间的距离为k 考虑暴力 m指询问数 暴力枚举 加dfs跑距离 所以复杂度是mn^3 期望得分 30 由于是一棵无根树所以考虑以1位根节点提前预处理出树上任意点距根的距离。 然后 暴力枚举两个端点 求出LCA 然后 d[x]+d[y]-(d[LCA]<<1)判断即可。 复杂度 mn^2logn期望得分60 很不错了~ 正解释点分治:其实点分治是一种另类的分治方法基于树上的分治。 先处理过根的边 然后分治处理根的子树这样递归处理 考虑每次选根都是树的重心处。 所以总递归层数为logn 在每一层中暴力判断和过根的边的联系的边然后进行判断复杂度O(n) 总复杂度mnlogn 期望得分:100;这样巧妙的利用了分治思想和不断的选择重心 使复杂度骤降。 因为一些小细节打挂了所以浪费了点时间来检查。 首先是对于树的重心的处理 然后是分治点 然后在每个点中进行答案的统计即可。 复杂度mnlogn 可以AC。 //#include<bits/stdc++.h> #include<iostream> #include<cstdio> #include<iomanip> #include<cstring>