- 博客(73)
- 收藏
- 关注
原创 csapp-第二章-p74
#include<stdio.h>#include<limits.h>int tsub_ok(int a,int b){ int x=a-b; return !(a>0&&b<0&&x<0)||(a<0&&b>0&&x>0);}int main(void){ printf("%d",tsub_ok(114514,INT_MIN)); retur
2021-04-27 19:00:31
126
原创 csapp-第二章-p69
注:因为c语言32位机器最多只能移位31位,否则位“未定义”。故x>>(w-n-1)>>1;避免特殊情况#include<stdio.h>unsigned rotate_left(unsigned x,int n){ int w=sizeof(int)<<3; return (x<<n)|(x>>(w-n-1)>>1);}int main(void){ printf("%x\n",0x123
2021-04-27 17:10:30
137
原创 csapp-第二章-p68
#include<stdio.h>int lower_mark_one(int n){ int w=sizeof(int)<<3; return (unsigned)-1<<(w-n);}int main(void){ int n; scanf("%d",&n); printf("%x\n",lower_mark_one(n)); return 0;}
2021-04-27 16:56:06
123
原创 csapp-第二章-p64
#include<stdio.h>int any_odd_one(unsigned x){ unsigned mark=0xAAAA; return !(mark&x);}int main(void){ int a=0x5555,b=0x1234; printf("%d\n",any_odd_one(a)); printf("%d\n",any_odd_one(b)); return 0;}
2021-04-27 16:00:52
161
原创 csapp-第二章-p63
#include<stdio.h>unsigned srl(unsigned x,int k){ unsigned xsra=(int) x>>k; int w=sizeof(int)<<3; int mark=(int)-1<<(w-k); return xsra&(~mark);}int sra(int x,int k){ int xsra=(unsigned)x>>k; int w
2021-04-25 20:22:49
125
原创 csapp-第二章-P62
#include<stdio.h>int int_shifts_are_arithetic(void){ int t=-1; return !(t^(t>>1));}int main(void){ printf("%d",int_shifts_are_arithetic()); return 0;}解:-1在c里以补码形式为32位的1,算术右移数值不变。...
2021-04-25 18:35:09
108
原创 csapp-第二章-p60
#include<stdio.h>size_t replace_byte(unsigned x,int n,unsigned char y){ size_t m=((unsigned)0xff)<<(n<<3); return (x&~m)|((unsigned)y<<(n<<3));}int main(void){ printf("%x\n",replace_byte(0x12345678,0,0xAB))
2021-04-25 17:03:01
101
原创 csapp-第二章-p59
#include<stdio.h>typedef unsigned char *byte_pointer;void show_bytes(byte_pointer start,size_t len){ size_t i; for(i=0;i<len;i++){ printf("%.2x",start[i]); } printf("\n");}int changenumber(size_t a,size_t b){ size_t
2021-04-25 16:29:50
116
原创 csapp-第二章-p58
#include<stdio.h>typedef unsigned char *byte_pointer;int know_litte_end(void){ int n=0x01; byte_pointer W=(byte_pointer)&n; if(W[0]=0x01) return 1; else return 0;}int main(void){ if(know_litte_end())
2021-04-25 16:02:12
138
原创 csapp-第二单元-p57
#include<stdio.h>typedef unsigned char *byte_pointer;void show_bytes(byte_pointer start,size_t len){ size_t i; for(i=0;i<len;i++){ printf("%.2x",start[i]); } printf("\n");}void show_int(int x){ show_bytes((byte_poin
2021-04-25 15:40:09
100
原创 csapp-第二章-p55
#include<stdio.h>typedef unsigned char *byte_pointer;void show_bytes(byte_pointer start,size_t len){ size_t i; for(i=0;i<len;i++){ printf("%.2x",start[i]); } printf("\n");}int main(void){ int n=12345; show_byte
2021-04-25 15:27:54
114
原创 csapp-第二章-p56
#include<stdio.h>typedef unsigned char *byte_pointer;void show_bytes(byte_pointer start,size_t len){ size_t i; for(i=0;i<len;i++){ printf("%.2x",start[i]); } printf("\n");}int main(void){ int n; scanf("%d",&
2021-04-25 15:24:57
97
原创 洛谷练习-前缀和与差分-P3397-地毯
#include<iostream>using namespace std;const int maxn=1010;int num[maxn][maxn]={0};int main(void){ int n,m; cin>>n>>m; for(int i=0;i<m;i++){ int x1,x2,y1,y2; cin>>x1>>y1>>x2>>y2; for(int x=x1;x<=
2021-04-04 20:07:13
191
原创 洛谷训练-暴力枚举-P1618-三连击
#include<iostream>#include<cstring>using namespace std;bool PD(int a,int b,int c){ int vis[10]={0}; string s=to_string(a)+to_string(b)+to_string(c); for(int i=0;i<s.size();i++){ if(s[i]=='0') return false; vis[s[i]-'0']++; i
2021-04-04 19:49:18
128
原创 洛谷练习-暴力枚举-P2089-烤鸡
#include<iostream>using namespace std;int main(void){ int n,sum=0; cin>>n; if(n<10||n>30){ printf("0"); } else{ for(int a=1;a<4;a++){ for(int b=1;b<4;b++){ for(int c=1;c<4;c++){ for(int d=1;d<4;d++){
2021-04-04 18:37:22
294
2
原创 洛谷练习-暴力枚举-P2241-统计正方形
#include<iostream>#include<algorithm>using namespace std;int main(void){ int n,m,fs=0,cs=0; cin>>n>>m; int x=min(n,m); for(int i=1;i<=x;i++){ fs+=(n-i+1)*(m-i+1); } cs=(n+1)*n*(m+1)*m/4-fs; printf("%d %d",fs,cs); re
2021-04-04 18:36:03
154
原创 CCF-2020-12-2期末预测之最佳阈值
#include<iostream>#include<algorithm>#include<vector>using namespace std;struct node{ int data,f;};vector<node> List;bool cmp(node a,node b){ if(a.data!=b.data) return a.data<b.data; else return a.f>b.f;}
2021-04-03 16:33:54
106
原创 CCF-2020-12-1期末预测安全指数
#include<iostream>#include<algorithm>using namespace std;int main(void){ int n,sum=0,x=0; cin>>n; for(int i=0;i<n;i++){ int w,v; cin>>w>>v; x+=w*v; } sum=max(sum,x); printf("%d",sum); return 0;}
2021-04-03 16:32:17
86
原创 CCF-2016-12-2 工资计算
#include<bits/stdc++.h>using namespace std;int main(void){ int n; cin>>n; if(n<=3500){ printf("%d",n); } else if(n<=4955){ int t=n-3500; t=t/97*100; printf("%d",3500+t); } else if(n<=7655){ int t=n-4955; t=t/9*10;
2021-04-02 18:00:12
106
原创 CCF-2016-12-1 中间数
#include<bits/stdc++.h>using namespace std;int main(void){ int num[1010]; int n; cin>>n; for(int i=0;i<n;i++){ scanf("%d",&num[i]); } sort(num,num+n); int z=num[n/2]; int q=0,h=0; for(int i=0;i<n;i++){ if(num[i]>z)
2021-04-02 17:17:38
89
原创 CCF-2019-12-2回收站选址
看到数据都到10的9次方了怕超时 想了一些复杂的算法来实现,后来想想官方介绍里说第一题复杂度是n 第二题是n方 索性试试n方的算法 果然一遍过 耗时15ms第二题就不能往复杂的地方去想#include<bits/stdc++.h>using namespace std;const int maxn=1010;struct node{ int x,y;}List[maxn];int N;int main(void){ cin>>N; for(int i=
2021-03-29 12:17:13
98
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅