曲麻菜公司网站建设,万网虚拟主机wordpress,国外的做的比较优秀的网站有哪些,wordpress前端上传图片前言
今天题目比较水and我进了C组#xff0c;不过太太太太太太太太太太太太太太太太绝望了QAQ。所以我也没有做C组的题。写完博客我就做O(∩_∩)O。
正题 题1#xff1a;奇数统计#xff08;jzoj1547#xff09;
就是输入n个数#xff0c;输出出现次数为奇数的一个数不过太太太太太太太太太太太太太太太太绝望了QAQ。所以我也没有做C组的题。写完博客我就做O(∩_∩)O。
正题 题1奇数统计jzoj1547
就是输入n个数输出出现次数为奇数的一个数只有一个。 输入
第一行是N下一行有N个正整数。
输出
出现了奇数次的数。
样例输入
9 3 1 2 2 17 1 3 17 3
样例输出
3 桶不解释 代码
#includecstdio
#includeiostream
using namespace std;
int n,a[10001],x,ans;
int main()
{//freopen(count.in,r,stdin);//freopen(count.out,w,stdout);scanf(%d,n);for (int i1;in;i){scanf(%d,x);a[x];} for (int i1;i10000;i) if (a[i]%21) {printf(%d,i);return 0;}
}
相信我不加批注你们也懂不O(∩_∩)O 题2有理逼近jzoj1548 输入
输入文件的第一行为P、N其中 P、N30000。
输出
输出文件只有一行格式为“X/Y U/V”。注意答案必须是既约的也就是说分子、分母的最大公约数必须等于1。
样例输入
2 5
样例输出
4/3 3/2 暴枚好像会超时所以我们先枚举分子然后从中间开始向两边扩展的搜分母。 在这里感谢朋友提供思路这里是他的博客http://blog.csdn.net/sugar_free_mint 代码
#includecstdio
#includecmath
#includeiostream
#includealgorithm
using namespace std;
double p,s1,s2,ss1,ss2,j,k;
int w,n,u;
int main()
{//freopen(rational.in,r,stdin);//freopen(rational.out,w,stdout);scanf(%d%d,w,n);psqrt(w);//开方un/p;//确定中间值s1-214748364;s21;ss1214748364;ss21;//初始化for (double i1;in;i){ju;k0;while (jkn j-k1){if (p-i/(jk)0 p-i/(jk)p-s1/s2)//判断{s1i;s2(jk);}if (p-i/(j-k)0 p-i/(j-k)p-s1/s2){s1i;s2(j-k);}if (i/(jk)-p0 i/(jk)-pss1/ss2-p){ss1i;ss2(jk);}if (i/(j-k)-p0 i/(j-k)-pss1/ss2-p){ss1i;ss2(j-k);}k;}//扩展}s1int(int(s1)/__gcd(int(s1),int(s2)));s2int(int(s2)/__gcd(int(s1),int(s2)));//约分ss1int(int(ss1)/__gcd(int(ss1),int(ss2)));ss2int(int(ss2)/__gcd(int(ss1),int(ss2)));//约分printf(%.lf/%.lf %.lf/%.lf,s1,s2,ss1,ss2);//输出
} 题目3活动安排jzoj1549
有n n100 个活动每个活动开始时间si结束时间fi。每个活动需要一个会场求需要的最小会场数。水题。 输入
第一行是活动数n1≤n≤100。 以后的n行每行两个整数分别表示n个活动的开始时间si和结束时间fi(1≤i≤n)si
输出
一个整数表示需要的最少会场数。
样例输入
4 1 8 2 5 7 15 5 9
样例输出
3 判断当前有没有空的会场如果有就把活动安排进去不然就开一个新的。 代码
#includecstdio
using namespace std;
int s[101],f[101],n,t,w,wf[101];
int main()
{//freopen(meet.in,r,stdin);//freopen(meet.out,w,stdout);scanf(%d,n);for (int i1;in;i) scanf(%d%d,s[i],f[i]);for (int i1;in;i)for (int ji1;jn;j)if (s[i]s[j]){ts[i];s[i]s[j];s[j]t;tf[i];f[i]f[j];f[j]t;}//看我连快排都懒得用了for (int i1;in;i){for (int j1;jw;j)if (s[i]wf[j])//有空会场{wf[j]f[i];f[i]-1;break;}if (f[i]!-1)//安排新会场{w;wf[w]f[i];//活动结束时间}}printf(%d,w);//输出
} 题目4最小步数jzoj1550
一条路长n每走到一个格会获得Ai元-10000Ai10000你也可以选择花100元跳过该格金币不可以为负数。求到终点最小的步数 输入
共有两行。 第一行为整数N0N100。 第二行有N个整数第K个数为A[K]-10000A[K]10000。
输出
一个整数表示需要走的最少步数。若无法走到终点输出-1。
样例输入
6 30 30 30 30 30 30
样例输出
5 这里dp其实记搜也可以过不过不重要。然后用f[i][j]来表示到达第i格用j步并且最后一步是跳过的最大金币然后用f[i][j]来表示到达第i格用j步并且最后一步是走过的最大金币。 动态转移方程f[i][j]max(f[i-1][j],f2[i-1][j])-100 跳过该步 f2[i][j]max(f[i-1][j-1],f2[i-1][j-1])a[i] 走过该步 代码
#includecstdio
#includeiostream
using namespace std;
int a[101],f[101][101],n,ans,f2[101][101];
int main()
{//freopen(steps.in,r,stdin);//freopen(steps.out,w,stdout);scanf(%d,n);for (int i1;in;i){scanf(%d,a[i]);} for (int i1;in;i)for (int j0;ji;j) {f2[i][j]-214748364;f[i][j]-214748364;}//初始化 for (int i1;in;i){for (int j1;ji;j){if (max(f[i-1][j],f2[i-1][j])-1000 i!n) f[i][j]max(f[i-1][j],f2[i-1][j])-100;//跳if (max(f[i-1][j-1],f2[i-1][j-1])a[i]0) f2[i][j]max(f[i-1][j-1],f2[i-1][j-1])a[i];//走}}for (int i0;in;i) if (f2[n][i]0) {printf(%d,i);return 0;}//查找printf(-1);//不能到达
}