信息学奥赛
Turing.school
这个作者很懒,什么都没留下…
展开
-
途灵编程•01背包问题
有n件物品,每件物品有一个重量和一个价值,分别记为wi和vii1...n。现在有一个背包,其最大承重为t。要从n件物品种任取若干件,要求:(1) 重量之和小于或等于t。(2) 价值之和最大。原创 2024-02-14 15:22:02 · 365 阅读 · 0 评论 -
途灵编程•组合总和 III•解题报告
(1)枚举范围要写对!变量n的意思混乱了,这里的n是和,不是个数。把n改成9,就是满分啦!(2)可以考虑不用a数组和c数组,因为通过b数组,就可以输出正解。i原创 2023-12-25 10:41:31 · 292 阅读 · 0 评论 -
途灵编程•目标和•解题报告
给你一个整数数组 a 和一个整数 t。向数组中的每个整数前添加 ‘+’ 或 ‘-’ ,然后串联起所有整数,可以构造一个 表达式 :例如,a = {2, 1} ,可以在 2 之前添加 ‘+’ ,在 1 之前添加 ‘-’ ,然后串联起来得到表达式 “+2-1”。输出 通过上述方法构造的、运算结果等于 t 的不同 表达式 的数目。第一行,n第二行,数组 a 的 n 个整数第三行,t结果等于 t 的 表达式 数目5样例解释: 一共有 5 种方法让最终目标和为 3。原创 2024-01-10 23:23:54 · 438 阅读 · 0 评论 -
途灵编程•第k个字符串•解题报告
给定两个整数n和k。用n−2个a和2个b来构成一个字符串,则一共可以构成nn−1/2个不同的字符串。将这nn−1/2个字符串按照字典序进行排序。请输出排好序后,排在第k个的字符串。例如,当n5k2时,共可以生成10其中,排在第 2 个的字符串为 aabab。第一行包含整数 T,表示共有 T 组测试数据。每组数据占一行,包含两个整数 n 和 k。每组数据输出一行结果,表示答案。30% 测试点满足1≤T≤103≤n≤201。原创 2023-12-24 19:29:33 · 824 阅读 · 0 评论 -
途灵编程•全国二级(2022年3月)解题报告
请编写一个程序实现以下功能:从一个字符串中,提取出所有的数字字符即 0-9,并作为数求和。一行字符串,长度不超过 100,字符串中不含空格。字符串中所有数字字符作为数的和样例输入样例输出17。原创 2023-12-24 17:04:48 · 919 阅读 · 0 评论 -
途灵月赛•基础组(2023年11月)解题报告
1、计算每位同学的饮料毫升数:t/n2、计算需要的杯子总数:2*n。原创 2023-12-04 17:49:29 · 399 阅读 · 0 评论 -
切蛋糕 [NOI Online 2021 入门组]
题目要求题目解析abc分情况处理:有两个为0,则输出0;只要1个0,则分两种子情况(另外两个相等,则输出1;否则输出2);全不为0,也分两种子情况(两个相等,或两个之和等于第三个,则输出2,否则输出3)。下面程序已通过测试。#include <bits/stdc++.h>using namespace std;int main(){ //freopen("cake.in", "r", stdin); //freopen("cake.out", "w", stdout)原创 2022-04-12 10:06:35 · 406 阅读 · 0 评论 -
数学游戏 [NOI Online 2022 入门组]
题目要求题目解析假设x和y的最大公约数为t,则x/t和y/t是互质的,因此,x2x^2x2和z/xz/xz/x的最大公约数为t2t^2t2。下面程序已通过官方测试数据。#include <bits/stdc++.h>using namespace std;long long gcd(long long x,long long y){ long long t; while((t=x%y)!=0) { x=y; y=t; } return y; }in原创 2022-04-10 21:57:23 · 3943 阅读 · 0 评论 -
字符串 [NOI Online 2022 入门组]
题目要求题目解析先根据大臣的答案统计每一道题的预测答案,然后再把预测的答案和真正的答案比较。下面程序已通过官方测试数据。#include <bits/stdc++.h>using namespace std;int a[1000];int main() { int n,m; cin>>n>>m; //列n,行m int x; for(int i=0;i<m;i++) { for(int j=0;j<n;j++)原创 2022-04-10 21:46:58 · 299 阅读 · 0 评论 -
国王比赛 [NOI Online 2022 入门组]
题目要求题目解析先根据大臣的答案统计每一道题的预测答案,然后再把预测的答案和真正的答案比较。#include <bits/stdc++.h>using namespace std;int a[1000];int main() { int m, n; cin >> m >> n; int x; for (int i = 0; i < m; i++) { for (int j = 0; j < n;原创 2022-03-28 16:12:09 · 1057 阅读 · 2 评论 -
插入排序[CSP-J 2021]
原创 2022-03-10 18:04:48 · 492 阅读 · 0 评论 -
栈[NOIP2003 普及组]
原创 2022-03-09 12:44:44 · 117 阅读 · 0 评论 -
数字游戏[NOIP2003 普及组]
原创 2022-03-09 12:41:06 · 4111 阅读 · 0 评论 -
乒乓球[NOIP2003 普及组]
原创 2022-03-09 12:01:37 · 190 阅读 · 0 评论 -
产生数[NOIP2002 普及组]
原创 2022-03-09 11:58:41 · 150 阅读 · 0 评论 -
级数求和[NOIP2002 普及组]
题目要求题目解析一重循环求和。#include <bits/stdc++.h>using namespace std;int main() { int k; cin >> k; int n = 0; double s = 0; while (s <= k) { n++; s = s + 1.0 / n; // cout<<n<<" "<<s&原创 2022-03-09 11:55:50 · 161 阅读 · 0 评论 -
求先序排列[NOIP2001 普及组]
原创 2022-03-09 11:53:13 · 120 阅读 · 0 评论 -
数的计算[NOIP2001 普及组]
原创 2022-03-09 11:49:11 · 110 阅读 · 0 评论 -
税收与补贴问题[NOIP2000 普及组]
题目要求题目解析原创 2022-03-09 11:43:08 · 222 阅读 · 0 评论 -
计算器的改良[NOIP2000 普及组]
原创 2022-03-09 11:33:10 · 268 阅读 · 0 评论 -
导弹拦截[NOIP1999 普及组]
原创 2022-03-09 11:30:08 · 143 阅读 · 0 评论 -
回文数[NOIP1999 普及组]
题目要求题目解析为了便于判断回文数,把数字按位放入数组中。注意相加之后,要进行进位处理。#include <bits/stdc++.h>using namespace std;int a[401], len;//判断回文数 bool is_PN() { int t = len/2; for (int i = 0; i <= t; i++) if (a[i] != a[len - i]) return false;原创 2022-03-08 20:39:19 · 375 阅读 · 0 评论 -
幂次方[NOIP1998 普及组]
题目要求题目解析典型的递归问题。tran是递归函数,计算最接近m的2的幂次i,并递归调用tran(i),直到幂次为0或者1。注意函数返回时去掉第一个+号。#include <bits/stdc++.h>using namespace std;string trans(int n){ string s=""; int m = n; while (m != 0) { int x=m; int i; for (i=0; (x=x>>1)>0; i+原创 2022-03-08 20:29:12 · 380 阅读 · 0 评论 -
金币[NOIP2015 普及组]
目录题目要求题目解析题目要求题目解析用变量i来表示某天发放的金币数目,t表示累计发放的天数,b表示骑士累计获得的金币数,n表示给定发放的天数。下面示例给出了n=13的情况,当发放的金币数i<=4时(即前10天),可以直接使用b=b+i*i计算累计获得的金币数。当发放的金币数=5时(由于n=13,天数不够累加5天),则使用b=b+(n-t)*i计算。代码如下(示例):#include <iostream>using namespace std;int main(){原创 2021-08-25 14:23:05 · 333 阅读 · 0 评论 -
赛题解析[CSP2020 J2]
目录一、优秀的拆分一、优秀的拆分解题思路:给定正整数a,计算不超过a的最大2的正整数次幂h,返回剩余部分a-h,直到返回部分为0。代码如下:#include<bits/stdc++.h>using namespace std;int f(int a){ int h=(int)(log(a)/log(2)); h=(1<<h); cout<<h<<' '; return a-h;}int main(){ freop原创 2020-11-30 20:23:32 · 1760 阅读 · 0 评论