飞翔的小鸟C语言小游戏
今天有些疲倦,不想学习,就去网上学习做了一个小游戏,如果你是网友,没接触过图形库,要先安装esayx库,网上有许多,在这里不贴了,素材地址: https://pan.baidu.com/s/1GWnLePCiLcxlJHOaBKEeaA 密码:pmzq 💪
成品视频: Here
希望该文章能帮助到您
不要白嫖了!!!留下您的评论吧
谁能帮我测试一下下面的赏是不是出错了😘
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413 ...
基础算法2(快速幂,二分)
发现了一些快速幂上的小问题,可以说很细节的问题了,导致我第一题巨水的一道题wrong了5次!!当时都懵了,感觉代码一点毛病都没有🐷(菜是原罪)
把这次我在快速幂模板上踩的坑说一下,看下面两段代码
12345678910111213141516代码一ll qpow(ll a,ll b){ if(b==0) return 1; ll ans=qpow(a,b>>1)%MOD; ans*=ans%MOD; if(b&1) ans*=a%MOD; return ans%MOD;}代码二ll qpow(ll a,ll b){ if(b==0) return 1; ll ans=qpow(a,b>>1)%MOD; ans=ans*ans%MOD; if(b&1) ans=ans*a%MOD; return ans%MOD;}
看着这两段代码没啥区别,就是把ans=ans*ans改成了ans*=ans,如果没有取模的话这俩没有任何区别,但是一旦取模就是AC和wrong的天壤之别,为什么?首先看ans*=an ...
PPT上例题(含倍增)
PPT上面的好多题都做不了,ACWING上的题要报名才能做,Codeforces 1000C搜不出来,就做了剩下的,不过二维差分前缀和早就掌握了
ACWING-797. 差分超级模板
Code123456789101112131415161718192021#include<bits/stdc++.h>using namespace std;const int MAXN=1e5+100;int val[MAXN],cha[MAXN];int main(){ int n,m; cin>>n>>m; for(int i=1;i<=n;i++) cin>>val[i]; while(m--){ int l,r,c; cin>>l>>r>>c; cha[l]+=c; cha[r+1]-=c; } for(int i=1;i<=n;i++){ cha[i]+=cha[i-1]; if(i!=n) cout<<val[i]+cha[i] ...
基础算法练习
A 前M大的数暴力累加每两组数,再排序输出前M个1234567891011121314151617181920212223242526272829#include<cstdio>#include<set>#include<iostream>#include<algorithm>#define ios ios::sync_with_stdio(0);cin.tie(0);cout.tie(0) using namespace std;const int MAXN=3e3+100;int v1[MAXN],v2[5000000];int main(){// ios; int n,m; while(scanf("%d %d",&n,&m)!=EOF){ for(int i=1;i<=n;i++) cin>>v1[i]; int tail=0; for(int i=1;i<n;i++){ for(int j=i+1;j<=n;j++)& ...
水果
题目
F - 水果
夏天来了~好开心啊,呵呵,好多好多水果~
Joe经营着一个不大的水果店.他认为生存之道就是经营最受顾客欢迎的水果.现在他想要一份水果销售情况的明细表,这样Joe就可以很容易掌握所有水果的销售情况了.
Input
第一行正整数N(0
codeforces div4
唯一一场每道题都有思路的比赛,感觉还行,虽然有思路不代表能AC,不过还是很开心的,因为除了E题的桶没想到外其他都是自力更生做出来的😊
A Sum of Round Numbers分析签到题,就是遍历数的每一位,求出非0的位数有几位,然后int一个v=1,之后没走一个数v*=10,然后当一位数不等于0时就乘上v就行了,这道题用字符串应该更简单,但是我想试试用while,练练手
CODE123456789101112131415161718192021222324252627282930#include<stdio.h>#include<iostream>#include<algorithm>#include<string.h>#define ios ios::sync_with_stdio(0)using namespace std;const int MAXN=1e4+100;int main(){ ios; int t,k; cin>>t; while(t--){ cin>>k; ...
全排列问题
STL next_permutation函数实现原文链接掌握了next_permutation函数的原理:smile:12345678910111213141516171819202122void inline swap(char *s1,char *s2){ char t=*s1; *s1=*s2; *s2=t;}/***反转字符串函数,s,e分别执行字符串的开始和结尾,不能反转中文 **/void reverse(char *s,char* e){ for(e--;s<e;s++,e--)swap(s,e);}bool next_permutation(char *start,char *end){ char *cur = end-1, *pre=cur-1; while(cur>start && *pre>=*cur)cur--,pre--; if(cur<=start)return false; for(cur=end-1;*cur& ...
简单三维DFS搜索
题目problem link可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验。魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的肉也能长生不老。年迈的国王正是心急如焚,告招天下勇士来拯救公主。不过公主早已习以为常,她深信智勇的骑士LJ肯定能将她救出。现据密探所报,公主被关在一个两层的迷宫里,迷宫的入口是S(0,0,0),公主的位置用P表示,时空传输机用#表示,墙用表示,平地用.表示。骑士们一进入时空传输机就会被转到另一层的相对位置,但如果被转到的位置是墙的话,那骑士们就会被撞死。骑士们在一层中只能前后左右移动,每移动一格花1时刻。层间的移动只能通过时空传输机,且不需要任何时间。Input输入的第一行C表示共有C个测试数据,每个测试数据的前一行有三个整数N,M,T。 N,M迷宫的大小NM(1 <= N,M <=10)。T如上所意。接下去的前NM表示迷宫的第一层的布置情况,后NM表示迷宫第二层的布置情况。Output如果骑士们能够在T时刻能找到公主就输出“YES”,否则输出“NO”。Sample Input15 5 14S#. ...
数状数组求逆序对&&二维树状数组
参考原文:
二维树状数组我们先来讲讲怎么去表示。数组A[][]的树状数组定义为:
C[x][y] = ∑ a[i][j], 其中,x-lowbit(x) + 1 <= i <= x,y-lowbit(y) + 1 <= j <= y.
例:举个例子来看看C[][]的组成。设原始二维数组为:1234A[][]={{a11,a12,a13,a14,a15,a16,a17,a18,a19}, {a21,a22,a23,a24,a25,a26,a27,a28,a29}, {a31,a32,a33,a34,a35,a36,a37,a38,a39}, {a41,a42,a43,a44,a45,a46,a47,a48,a49}};那么它对应的二维树状数组C[][]呢?
记:B[1]={a11,a11+a12,a13,a11+a12+a13+a14,a15,a15+a16,…} 这是第一行的一维树状数组B[2]={a21,a21+a22,a23,a21+a22+a23 ...
数学问题模板
筛选质因子1234567 for(int i=2;i*i<=k;i++){ if(k%i==0){ p[++tail]=i; //p就是储存质因子的数组 while(k%i==0) k/=i; //把k中所有i的质因子全部除去 }} if(k>1) p[++tail]=k;
判断是否为质数123456789bool isp(int n){ if(n==1||n==0) return 0; if(n==2||n==3) return 1; if(n%6!=1&&n%6!=5) return 0; for(int i=5;i*i<=n;i+=6){ if(n%i==0||n%(i+2)==0) return 0; } return 1;}
容斥原理前言:
计算1-n中m的的倍数的数量时,直接n/m
容斥原理是在互质的数的基础上实现的公式:
(A+B+C+D+E……)-(AB+AC+AD……+BC+BD)+(ABC+B ...