首页 > TAG信息列表 > PUTCHAR

LGP6305题解

笑死,细节问题直接把自己送走了,100pts->0pts。 个人认为是模拟赛最简单的一道题 可能是因为我倒开 如果 \(a\) 中元素互不相同很好做,排序然后变成 \(i\) 应该去到 \(p_i\) 的位置,直接连接 \((i,p_i)\) 然后输出每个环即可。 但是可能出现不相同的元素。 考虑对于排序后的序列,一段区

c语音键盘输入和屏幕输出

键盘输入和屏幕输出 单个字符的输入输出 getchar字符输入 putchar字符输出 缓冲区优先 每次只读一个字符 输出输入量不加引号,只有转义字符加 实践:大小写转换 注意:getchar()没有参数,函数的返回值就是从终端键盘读入的字符 使用方法 ch=getchar(); 而不是 getchar(ch); 小写比大写的

P8444 题解

前言 题目传送门! 更好的阅读体验? 普及组月赛第二题。特殊数据好恶心啊,考试差点丢分了。 思路 贪心题,先给 \(a\) 数组排个序。 首先,肯定是买小于等于 \(w\) 的最大价格的物品。如果买不到,直接输出 \(0\)。 上面一点可以使用二分实现,速度快一点(直接用 STL 就行)。 然后,按价格从小到

CF1715D 题解

前言 题目传送门! 更好的阅读体验? 感觉挺不错的一道图论转化题。(其实也和图论关系不大。) 思路 对于每个条件 \(a_u \mid a_v = x\),二进制拆掉 \(x\)。如果 \(x\) 的二进制位 \(j\) 是 \(1\),说明 \(a_u\) 和 \(a_v\) 中,当前位也肯定有至少一个为 \(1\)。标记一下 \(f_{u, j} = f_{v

实际参数和形式参数的区别

实际参数是出现在函数调用圆括号中的表达式. 形式参数是函数定义的函数头中声明的变量. #include<stdio.h> #define LIMIT65 void starbar(void)// 函数定义 { int count; for (count=1;---) putchar('*'); putchar('\n'); } 函数头: #include<stdio.h> #de

暑假集训四[打地鼠, 竞赛图, 糖果, 树]

暑假集训4 打地鼠 这个题是个人也会吧?二维前缀和暴力碾压硬扫就行了,就是注意好边界,别爆就行 here #include <bits/stdc++.h> #define LL long long #define Re register int #define LD long double #define mes(x, y) memset(x, y, sizeof(x)) #define cpt(x, y) memcpy(x, y,

c语言中返回无符号整数以二进制位表示的形式

  001、 #include <stdio.h> int count_1(unsigned x) //此处定义一个统计unsigned int型数据用二进制位表示时所有1的个数 { int count = 0; while(x) { if(x & 1U) { count++; } x >>= 1; } retur

CF1712B Woeful Permutation 题解

题目传送门 题目简介 给定一个正整数 \(n\),构造一个数列 \(p\),使 \(1\) 到 \(n\) 中每一个数都出现且只出现 \(1\) 次。 求最大的 \(\sum\limits_{i=1}^n\operatorname{lcm}(i, p_i)\),并输出取得最大值时的数列。 思路 基础知识:\(\operatorname{lcm}(a,b)=\dfrac{a\times b}

P8468 [Aya Round 1 C] 文文的构造游戏

[Aya Round 1 C] 文文的构造游戏 题目背景 众所周知,射命丸文和琪露诺是好朋友。但是文是大妖怪,非常聪明,而琪露诺是个笨蛋。为了提升琪露诺的智商,文便给琪露诺出了一道简单的题目。 题目描述 对于一个长度为 \(l\) 的数列 \(p\),定义 \(S(p)\) 为所有元素的异或和,其中 \(\oplus\) 指

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 <

关于getchar和putchar的学习

getchar--指的是获取一个字符; putchar--指的是输出一个字符。 下面将以一个问题来展示getchar和putchar: 问题一:利用getchar输入一个字符,并使用putchar和printf输出这个字符。 #include<stdio.h> int main() { printf("请输入一个字符:> "); int a = getchar(); printf("%c\n",a)

关于getchar和putchar的学习

getchar--指的是获取一个字符; putchar--指的是输出一个字符。 下面将以一个问题来展示getchar和putchar: 问题一:利用getchar输入一个字符,并使用putchar和printf输出这个字符。 #include<stdio.h> int main() { printf("请输入一个字符:> "); int a = getchar(); printf("%c\n",a)

C语言处理英文字符

前面我们多次提到了字符串,字符串是多个字符的集合,它们由" "包围,例如"http://www.baidu.com"、"岳麓书院"。字符串中的字符在内存中按照次序、紧挨着排列,整个字符串占用一块连续的内存。 当然,字符串也可以只包含一个字符,例如"A"、"6";不过为了操作方便,我们一般使用专门的字符类型来

【题解】【CF2B The least round way】

我已经菜得连绿题都不会了。。。 Solution 首先要注意矩阵中有可能是0,因此要特判是否有0,最后跟不经过0的最优解进行比较。 要使尾0最少,发现只有质因子2和5的个数有贡献,因此可以设f[i][j][k]表示从(1,1)到(i,j)在有k个质因子2的情况下(若5的质因子多于2,则令k为负数,让下标加上一个M即

4、字符串分隔

描述 •输入一个字符串,请按长度为8拆分每个输入字符串并进行输出; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。   输入描述: 连续输入字符串(每个字符串长度小于等于100) 输出描述: 依次输出所有分割后的长度为8的新字符串 示例1 输入: abc 输出: abc00000

欧拉序

欧拉序,就是按照 dfs 的顺序遍历整棵树的时候绕回原点时所有点的顺序。 写法就是在 dfs 遍历到某个点时加进欧拉序中,遍历完当前的子树之后再次加进欧拉序中。 #include <bits/stdc++.h> #define V e[i].v using namespace std;int rd(){ int w=0,v=1;char c=getchar();while(c<'0'

c++初步探索

输出 This is a C program. //#include <stdio.h>                         //这是编译预处理指令 //int main()                                //定义主函数 //{                                        //函数开始的标志

[DarkBZOJ3514] Codechef MARCH14 GERALD07加强版

前言 当数据结构题考起思维。。。 题目 DarkBZOJ 讲解 总之这道题初看怎么都不可做,光是连通块个数就不太会,还区间,还强制在线? 好吧,我是想不到做法的,直接讲正解: 首先我们想连通块个数怎么算?维护树边,树边会对答案产生 \(-1\) 的贡献,初始显然为节点数 \(n\)。 按标号从小到大加边,然后

扫描线

扫描线 焯,我tm以为这玩意很高深,看了半天,tm很简单 核心就是我们要求一堆矩形的面积并or周长和,直接标记vis的话,我们的数组得开到 \(10^9 \times 10^9\) 但是我们发现,其实我们可以找一条竖直方向的线从左侧扫到右侧,那么我们就不需要考虑那么多了,我们只需要知道当前段是否为1,等于是把

快读快写

template<class T> inline void read(T &x){ x = 0; register char c = getchar(); register bool f = 0; while(!isdigit(c)) f ^= c == '-', c = getchar(); while(isdigit(c)) x = x * 10 + c - '0', c = getchar(); if(f)

操作系统真象还原实验记录之实验三十:fork的实现,增加read、putchar、clear系统调用

操作系统真象还原实验记录之实验三十:fork的实现,增加read、putchar、clear系统调用 1. fork原理与实现 fork是叉子,作用是将父进程克隆给子进程,并返回父进程pid。 父进程先调用fork系统调用中断进入内核态,完成了拷贝父进程给子进程,并将子进程设置为就绪态后,中断返回父进程pid,执

编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替

/*编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替*/#include<stdio.h>int main(){ int c; int kg = 0; for (; (c = getchar()) != EOF;) { if (c != ' ') { putchar(c); } else if (kg != ' ') /*遇到第一个空格,则执行执行else if 里的putchar(c),因为

Solution - P7204

题目传送门 Solution. 我们首先发现答案是具有单调性的:砸的雪球越多构成「完美单词」的机率就越大。所有我们可以进行二分答案。 然后在 check 里面进行的操作有如下几种: 统计单词序列中每个单词出现的次数 删除位置在 \(1 \sim x\) 的字母( \(x\) 为二分的咋的雪球数量) 判断区间

紫书习题3-6纵横字谜的游戏

题目:https://www.luogu.com.cn/problem/UVA232 看题目直接点链接 。。想了好多办法结果都有问题,在这张的题里面主要用数组,,思维太差了。。 #include<iostream> #include<cstring> using namespace std; // 行号,列号,样例号,字母序号,行下标,列下标,用于临时遍历的列下标,上一个单词

打开两个文件,交替打印文件的同一行

即打印第一个文件的第一行后,打印第二个文件的第一行。直到将拥有较多行数的文件打印完,程序结束。 采用了命令行的方式。 关键的打印部分,采用do while()循环内嵌while()循环的方式,以便在第一个文件所有行数打印完成后,完成对第二个文件剩下行数的打印任务。 希望大佬们指正。谢谢。