scanf

链表逆置合集

 ̄綄美尐妖づ 提交于 2020-02-26 02:51:19
链表逆置 #include<bits/stdc++.h> using namespace std; struct LNode { int data; LNode *next; }; void creathead(LNode *&L,int a[],int n)///尾插法 { LNode *r,*s; L=(LNode*)malloc(sizeof(LNode)); L->next=NULL; r=L; for(int i=0; i<n; i++) { s=(LNode*)malloc(sizeof(LNode)); s->data=a[i]; r->next=s; r=r->next; } r->next=NULL; } void reverse(LNode *&L) { LNode *p,*q; p=L->next; L->next=NULL; while(p!=NULL) { q=p; p=p->next; q->next=L->next; L->next=q; } } int main() { LNode *L,*B; int n,c[10000]; scanf("%d",&n); for(int i=0; i<n; i++) scanf("%d",&c[i]); creathead(L,c,n); reverse(L); while(L->next!=NULL) {

Codeforces Round #624 (Div. 3)

ぐ巨炮叔叔 提交于 2020-02-26 00:34:29
A.题意:通过加奇数减偶数的操作从a到b最少需要几步 签到题 #include <algorithm> #include <iostream> #include <cstring> #include <cstdio> #include <vector> #include <cmath> #include <queue> #include <deque> #include <map> using namespace std; typedef long long ll; const double inf=1e20; const int maxn=100005; int main(){ int n; scanf("%d",&n); for(int i=0;i<n;i++){ ll a,b; scanf("%lld%lld",&a,&b); ll c=b-a; if(c==0){ printf("0\n"); }else if(c>0&&c%2==0){ printf("2\n"); }else if(c<0&&c%2!=0){ printf("2\n"); } else printf("1\n"); } return 0; } B.题意:有一个数组p,你可以任意次交换a[p i ]和a[p i +1],问能不能把数组变成一个非严格上升的子序列。 解:很明显,如果p数组中有连续的一段

Codeforces Round #624 (Div. 3)

末鹿安然 提交于 2020-02-25 19:14:51
挺简单的 题目链接: https://codeforces.com/contest/1311 A: 白给 1 /* basic header */ 2 #include <bits/stdc++.h> 3 /* define */ 4 #define ll long long 5 #define pb emplace_back 6 #define mp make_pair 7 #define eps 1e-8 8 #define lson (curpos<<1) 9 #define rson (curpos<<1|1) 10 /* namespace */ 11 using namespace std; 12 /* header end */ 13 14 int t; 15 16 int main() { 17 scanf("%d", &t); 18 while (t--) { 19 int a, b, cnt = 0; 20 scanf("%d%d", &a, &b); 21 if (a == b) puts("0"); 22 else if (a < b) { 23 if ((b - a) & 1) puts("1"); 24 else puts("2"); 25 } else { 26 if ((b - a) & 1) puts("2"); 27 else puts("1")

2018-2019 ACM-ICPC, China Multi-Provincial Collegiate Programming Contest

 ̄綄美尐妖づ 提交于 2020-02-25 01:46:47
宁夏邀请赛的题,网络赛出锅之后来补了一下,还蛮有意思。题目地址: https://codeforces.com/gym/102222 A、给你一个栈和一堆pop、push操作,每次操作之后询问栈中的最大值,如果栈为空输出0 输入是给定的一个随机数生成器 每一次有元素进栈就把他与当前最大值比较,更新最大值之后把最大值压入另一个栈,pop时两个栈同时操作,每次输出另一个栈的栈顶即可 (这就是单调栈?) 代码: #include <bits/stdc++.h> using namespace std; typedef long long ll; int t,n,p,q,m,Case=1; unsigned int SA,SB,SC; stack<unsigned int> mx; ll ans; unsigned int rng61(){ SA^=SA<<16; SA^=SA>>5; SA^=SA<<1; unsigned int t=SA; SA=SB; SB=SC; SC^=t^SA; return SC; } void Push(unsigned int v){ if(mx.empty()) mx.push(v); else mx.push(max(mx.top(),v)); } void Pop(){ if(mx.empty()) return; mx.pop(); } void

Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2)

∥☆過路亽.° 提交于 2020-02-25 01:43:57
二进制专场,还被FST一题。 A、签到,题意是,给定a,b,c f(0)=a,f(1)=b,f(n)=f(n-1)^f(n-2) 求f(n) 稍微化简就看得出f(x)是按照a,b,a^b这样在循环出现 因为a^b^a=b,a^b^b=a 代码: #include <bits/stdc++.h> #define int long long #define sc(a) scanf("%lld",&a) #define scc(a,b) scanf("%lld %lld",&a,&b) #define sccc(a,b,c) scanf("%lld %lld %lld",&a,&b,&c) #define schar(a) scanf("%c",&a) #define pr(a) printf("%lld",a) #define fo(i,a,b) for(int i=a;i<b;++i) #define re(i,a,b) for(int i=a;i<=b;++i) #define rfo(i,a,b) for(int i=a;i>b;--i) #define rre(i,a,b) for(int i=a;i>=b;--i) #define prn() printf("\n") #define prs() printf(" ") #define mkp make_pair

数位dp

自闭症网瘾萝莉.ら 提交于 2020-02-25 00:33:28
bzoj3679 数字之积 题目大意:给定n、l、r,f(i)表示i的各位数字之积(不含前导0),求出0<f(i)<=n(l<=i<r)的个数。 思路:这是在夏令营中学长讲的题目,听到一种相对简单的方法。很显然要用1~r的个数-1~l的个数我们先用2、3、5、7(因为每一位都是0~9,所以只能有这几种质数乘起来)dfs出可能的乘积,放在一个数组num中,用f[i][j]表示i位数字(不含前导0)乘积在数组中的下表j的方案数,更新时,用能整除num[j]的k在num中的位置对应的f[i-1][pok]更新答案,然后把这个f数组做成前缀和,就表示下标对应数字<=j的个数了。然后就是数位的部分,把这个数分成一位一位的,首先把长度比这个数小的所有方案都加起来,然后考虑长度一样的,每次穷举严格小于这一位的数,找到可用的乘积在num中的位置,然后加给答案,每一位结束后,就将n除以这一位上的原数。这里有一个问题,就是0,如果这一位是0我们就直接break掉就可以了,因为后面不会有满足要求的答案了(乘起来肯定是0,不符合要求)。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define LL long long using namespace std; LL num[100000]={0},f

魔鬼PAT训练 DAY3

蓝咒 提交于 2020-02-24 21:29:56
魔鬼PAT训练 DAY3 4.4.贪心 B1023. 组个最小数(20') #include <iostream> using namespace std; int main() { int num[10], i; for(i = 0; i < 10; i++) scanf("%d", num + i); for(i = 1; i < 10; i++) if(num[i]) break; printf("%d", i); num[i]--; for(i = 0; i < 10; i++) while(num[i]--) printf("%d", i); return 0; } B2020/A10700.月饼(25') #include <iostream> #include <vector> #include <algorithm> using namespace std; struct mooncake { double cnt, price; }; vector<mooncake> v; bool cmp(mooncake mc, mooncake mc2) { return mc.price * mc2.cnt < mc2.price * mc.cnt; } int main() { double N, target; scanf("%lf %lf", &N, &target

Chapter2二分与前缀和

一世执手 提交于 2020-02-24 19:34:26
Chapter 2 二分与前缀和 +++ 二分 套路 如果更新方式写的是R = mid, 则不用做任何处理,如果更新方式写的是L = mid,则需要在计算mid是加上1。 1.数的范围 789 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> //整数二分 using namespace std; int st[100005]; int n, q; int u; int main() { scanf("%d%d", &n, &q); for(int i = 0; i < n; i++) scanf("%d", &st[i]); while(q--) { int L = 0; int R = n - 1; scanf("%d", &u); while(L < R) { int md = L + R >> 1; if(st[md] >= u) R = md;//注意边界问题 else L = md + 1; } if(st[R] == u) { cout << R << " "; R = n - 1; while(L < R) { int md = L + R + 1 >> 1;//注意边界问题 if(st[md] <= u) L = md; else R = md - 1; }

warning: ignoring return value of ‘fscanf’ in C

℡╲_俬逩灬. 提交于 2020-02-24 11:08:08
问题 I have the following code in C: (void)fscanf(fp, "%*d %*d %d %d %d\n",&z, &e, &a); I cast the call to void as the return value of fscanf is irrelevant for me. But I get the following warning when compiling: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result] (void)fscanf(fp, "%*d %*d %d %d %d\n",&z, &e, &a); Shouldn't the '(void)' have taken that warning out? 回答1: That's a nice warning, since ignoring the return value of fscanf() could lead

VSC++调试1

只谈情不闲聊 提交于 2020-02-24 04:56:17
1.scanf输入含空格字符串问题 也许很多人都会遇到这样的问题,就是用scanf以%s的格式输入字符串时,我们明明可以一直持续输入。 但是,最后真正读取的却只有第一次空格以前出现的东西。 这是因为scanf只有在遇到\n,也就是是回车时才结束输入,但是遇到空格和tab时就会停止读取。 要想将空格也输入进入,我们可以使用gets函数 来源: CSDN 作者: 沈万三gz 链接: https://blog.csdn.net/shenwansan_gz/article/details/103905462