- 博客(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
148
原创 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
149
原创 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
137
原创 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
188
原创 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
138
原创 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
120
原创 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
117
原创 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
124
原创 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
157
原创 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
122
原创 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
137
原创 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
113
原创 洛谷练习-前缀和与差分-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
205
原创 洛谷训练-暴力枚举-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
157
原创 洛谷练习-暴力枚举-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
315
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
168
原创 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
116
原创 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
99
原创 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
123
原创 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
109
原创 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
109
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅