目录

P2181 对角线 - 数学

P1009 [NOIP1998 普及组] 阶乘之和 - 越界

P1217 [USACO1.5]回文质数 Prime Palindromes - 超时

P5729 【深基5.例7】工艺品制作 - 三维数组


P2181 对角线 - 数学

对于一个 n 个顶点的凸多边形,它的任何三条对角线都不会交于一点。请求出图形中对角线交点的个数。

例如,6 边形:

输入格式

输入只有一行一个整数 n,代表边数。

输出格式

输出一行一个整数代表答案。

直接背公式:n * (n-1) * (n-2) * (n-3) / 4!

同时为了防止爆掉,但又不想写高精,

我们可以采用一种化简的技巧

于是原式可以化为:

n * (n-1) / 2 * (n-2) / 3 * (n-3) / 4

#include<bits/stdc++.h>
using namespace std;
unsigned long long n,ans;
int main()
{scanf("%lld",&n);ans=n * (n-1) / 2 * (n-2) / 3 * (n-3) / 4;printf("%lld\n",ans);return 0;
}

P1009 [NOIP1998 普及组] 阶乘之和 - 越界

正常做法:高精度

#include<iostream>
#include<cstdio>
using namespace std;
int n,a[101]={0},s[101]={0};
void change(int x)
{int g=0;for(int i=100;i>=0;i--){a[i]=a[i]*x+g;g=a[i]/10;a[i]=a[i]%10;}
}
void qh()
{int g=0;for(int i=100;i>=0;i--){s[i]=s[i]+a[i]+g;g=s[i]/10;s[i]=s[i]%10;}
}
void sc()
{int w;for(int i=0;i<=100;i++){if(s[i]!=0){w=i;break;}}for(int i=w;i<=100;i++)printf("%d",s[i]);
}
int main()
{scanf("%d",&n);s[100]=a[100]=1;for(int i=2;i<=n;i++){change(i);qh();}sc();return 0;
}

遇到高精度直接python走起

打表

具体思路

先用python打表,然后以字符串形式存入c++代码中

实现

python代码

f=open(r'point.txt','w') #存入文件
sum=1
i=2
last=1
n=int(input())
while i<=n:last*=isum+=lasti+=1                 #主函数f.write('"')         #上引号f.write(str(sum))  #具体值f.write('",')        #下引号与逗号
f.close               #关闭文件写入

存入cpp后代码

#include<iostream>
using namespace std;
string a[60]={"0","1","3","9","33","153","873","5913","46233","409113","4037913","43954713","522956313","6749977113","93928268313","1401602636313","22324392524313","378011820620313","6780385526348313","128425485935180313","2561327494111820313","53652269665821260313","1177652997443428940313","27029669736328405580313","647478071469567844940313","16158688114800553828940313","419450149241406189412940313","11308319599659758350180940313","316196664211373618851684940313","9157958657951075573395300940313","274410818470142134209703780940313","8497249472648064951935266660940313","271628086406341595119153278820940313","8954945705218228090637347680100940313","304187744744822368938255957323620940313","10637335711130967298604907294846820940313","382630662501032184766604355445682020940313","14146383753727377231082583937026584420940313","537169001220328488991089808037100875620940313","20935051082417771847631371547939998232420940313","836850334330315506193242641144055892504420940313","34289376947494122614363304694584807557656420940313","1439295494700374021157505910939096377494040420940313","61854558558074209658512637979453093884758552420940313","2720126133346522977702138448994068984204397080420940313","122342346998826717539665299944651784048588130840420940313","5624964506810915667389970728744906677010239883800420940313","264248206017979096310354325882356886646207872272920420940313","12678163798554051767172643373255731925167694226950680420940313","620960027832821612639424806694551108812720525606160920420940313","31035053229546199656252032972759319953190362094566672920420940313"};
int main()
{int n;cin>>n;cout<<a[n];
}

P1217 [USACO1.5]回文质数 Prime Palindromes - 超时

看起来很简单,但我赌你不可能一遍AC

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const int N = 1e5 + 10;
typedef long long LL;int zs(int n)
{if(n<2) return 0;for(int i=2;i<=sqrt(n);i++)if(n%i==0) return 0;return 1;
}int hw(int n)
{int sum=0;int k=n;while(n){sum=sum*10+n%10;n/=10;}if(sum==k) return 1;else return 0;
}int main()
{int n,m;cin>>n>>m;for(int j=n;j<=m;j++){if(j==9989900)  //打表找到最大质数9989899break;if(hw(j)&&zs(j))    //先判回文,超时1个点//if(zs(j)&&hw(j))   先判断质数再判断回文,直接超时3个点printf("%d\n",j);}return 0;
}

超时总结:

1、将 cin 改为 scanf ,cout 改为 printf (当数据大于1e7时快十多倍)

2、将特殊的先判断(循环判断顺序由特殊到一般)

3、利用打表法观察数的边界,强行剪枝

4、超时绝大多数情况出在循环

P5729 【深基5.例7】工艺品制作 - 三维数组

好像三维数组比较少见...

首先由于是立方体,那么肯定要构造立方体的模型,也就是三维数组,然后总的大体积就是长宽高相乘,也就是wxh,然后看了半天题目也看不懂是怎么减去的,但根据题目的分析可得(1,1,1) (2,2,2)刚好减去了8的体积,那么就可以姑且认为这是减去的是三维排列
例如:(1,1,1),(1,1,2),(1,2,1),(1,2,2),(2,1,1),(2,1,2),(2,2,1),(2,2,2)刚好为八个,如果这样理解的话,这题就清晰了;

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
typedef long long LL;
const int N=1e5+10;
using namespace std;
//int a[N][N][N];  三维数组就是不能这样定义,不知道为什么
int a[21][21][21];
int w, x, h, q;
int x1, z1, x2, y2, z2,sum ;
int y1;
int main() {int y1; //只能在局部取名y1 cin >> w >> x >> h;cin >> q;for (int i = 0; i < q; i++)//循环n趟{cin >> x1 >> y1 >> z1 >> x2 >> y2 >> z2;for (int i = x1; i <= x2; i++){for (int j = y1; j <= y2; j++){for (int k = z1; k <= z2; k++){a[i][j][k] = 1;}}}}for (int i = 1; i <= w; i++){for (int j = 1; j <= x; j++){for (int k = 1; k <= h; k++){if (a[i][j][k] == 0)sum++;}}}cout << sum << endl;return 0;
}

我就不理解那些题解为啥这么花里胡哨的...

离奇事件:

1、c++中不能在全局取名y1(????为什么为什么??)

2、可能是有的编译器不支持const int N=1e5+10;   int a[N][N][N]; 这样的操作

(有懂的大佬快来评论)

洛谷 - 一些好玩的问题相关推荐

  1. 洛谷 - 一些好玩的问题 3

    目录 P5731 [深基5.习6]蛇形方阵 - 输出格式 P5732 [深基5.习7]杨辉三角 - 经典数学 P1957 口算练习题 小知识1:sprintf函数的用法 P1308 [NOIP2011 ...

  2. 洛谷 - 一些好玩的问题 2

    目录 P5730 [深基5.例10]显示屏 - 字符表问题 P2141 [NOIP2014 普及组] 珠心算测验 - 数组去重法 P1553 数字反转(升级版)- 细节​​​​​​​ P1205 [U ...

  3. 洛谷· [AHOI2008]紧急集合 / 聚会

    初见安~这里是传送门:洛谷P4281紧急集合/聚会 题目描述 欢乐岛上有个非常好玩的游戏,叫做"紧急集合".在岛上分散有N个等待点,有N-1条道路连接着它们,每一条道路都连接某两个 ...

  4. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

  5. 洛谷 P1142 轰炸

    洛谷 P1142 轰炸 题目描述 "我该怎么办?"飞行员klux向你求助. 事实上,klux面对的是一个很简单的问题,但是他实在太菜了. klux要想轰炸某个区域内的一些地方,它们 ...

  6. 洛谷 P1387 最大正方形

    P1387 最大正方形 题目描述 在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长. 输入输出格式 输入格式: 输入文件第一行为两个整数n,m(1<=n,m<=10 ...

  7. 洛谷P2763 试题库问题

    题目:https://www.luogu.org/problemnew/show/P2763 题目描述 «问题描述: 假设一个试题库中有n道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性. ...

  8. 动态规划——洛谷_P1057传球游戏

    题目: 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏.游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球, ...

  9. 洛谷P1417 烹调方案

    洛谷P1417 烹调方案 如果是一般的01背包的话 选的先后是没关系的 但是这题选的先后是有关系的,因为他的价值是随着时间而变化的, 而你的01背包是做不到先选2再选1的 那么我们就跟国王游戏一样 用 ...

最新文章

  1. SystemCenter2012SP1实践(24)【录像】创建私有云
  2. WPF 第一个创建的窗体会作为Application.Current.MainWindow
  3. camtasia studio 8.2使用技巧集锦
  4. 上机考试系统 commons-fileupload 上传与下载 压缩为 zip 文件 删除文件夹下所有内容...
  5. for循环中一个不容小觑的问题
  6. Powerline专用字体安装_PowerFonts字体库安装_Meslo LG字体安装
  7. Windows DDK要点指南
  8. SAP License:ERP系统会计凭证中的那些必填项
  9. ftp://hxtech.com
  10. Android之Adobe AIR本地扩展
  11. 爱奇艺全国高校算法大赛初赛A
  12. [渝粤教育] 厦门工学院 逻辑与批判性思维 参考 资料
  13. 5999卖999!是噱头还是颠覆
  14. 首次主持春晚,她因太漂亮登上热搜
  15. 联想电脑的计算机,联想笔记本系统按F几下|联想计算机的系统按钮是什么?
  16. 按键精灵在帖吧的引流代码
  17. 小程序源码:登录接口已修复梦想贩卖机V2 2.0.4 修复版
  18. TypeScript进阶 之 重难点梳理
  19. 解决CentOS7 Development Tools 包不存在问题
  20. 男人应该做的50件事(17-33)

热门文章

  1. jquery动态添加带有样式的HTML标签元素
  2. BeanUtils.populate()封装bean属性为null的四种失效原因
  3. Linux服务器与Windows服务器的区别。
  4. Cacheable、CacheEvict、Caching使用示例
  5. 在调试器下理解RK3588和LINUX5.10
  6. Kubernetes CSI(一):介绍
  7. Justified Jungle
  8. 【安全测试】数据安全性
  9. Hadoop第三天--linux指令
  10. MAC下的Sublime Text关闭自动更新提示,关闭更新检查,适用于Sublime 3和Sublime 4